我是个菜鸟,自己做着练习的,帮忙看一下,只要看看74ls164这边的就好啦,谢谢啦 |
貌似楼上是乱回答的 。所有的程序都要结合电路图来看。单拿出程序没有意义 |
葛新华 发表于 2014-3-16 09:51 用164的时候是不是要把它的table表的每个数的高位和地位互换? |
葛新华 发表于 2014-3-16 09:49 P0=table[num]; 还有这个 io=0; P0=1^0; io=1; 看不懂是干什么的? |
段选位选,控制P2 6、7位。还有循环for函数里,应该是>号。应为i、j <0;在for里死循环。 |
#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--); } |