![]() |
發(fā)布時間: 2014-3-15 18:12
正文摘要:#include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char uchar byte; sbit io=P3^0; void deply(uchar z); sbit clk=P3^1; uchar table[]={0x03,0x9f,0x25, ... |
我是個菜鳥,自己做著練習的,幫忙看一下,只要看看74ls164這邊的就好啦,謝謝啦 |
貌似樓上是亂回答的 。所有的程序都要結合電路圖來看。單拿出程序沒有意義 |
葛新華 發(fā)表于 2014-3-16 09:51 用164的時候是不是要把它的table表的每個數的高位和地位互換? |
葛新華 發(fā)表于 2014-3-16 09:49 P0=table[num]; 還有這個 io=0; P0=1^0; io=1; 看不懂是干什么的? |
段選位選,控制P2 6、7位。還有循環(huán)for函數里,應該是>號。應為i、j <0;在for里死循環(huán)。 |
#include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char uchar byte; sbit io=P2^6; sbit clk=P2^7; void deply(uchar z); uchar table[]={ 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 0x39 , 0x5e , 0x79 , 0x71 }; void sendbyte(byte) { uchar num,c; num=table[byte]; for(c=0;c<16;c++) { clk=0; io=num&0x01; clk=1; num=_cror_(num,1); P0=table[num]; deply(1000); } } void main() { io=0; P0=1^0; io=1; while(1) { sendbyte(1); deply(1000); } } void deply(uchar z) { uchar i,j; for(i=z;i>0;i--) for(j=500;j>0;j--); } |