打印

请教74ls164问题

[复制链接]
1107|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
keny616|  楼主 | 2008-11-17 15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h> 
#include<intrins.h> 
#define uchar unsigned char 
#define uint unsigned int 
sbit P2_7=P2^7; 

uchar code seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,   
                  0x7d,0x07,0x7f,0x6f,0x40,0x00}; 

uchar code disbuf[]={1,2,3,4,5,6}; 
/******************************************************************/ 
void delay_10us(uchar n) 

 do 
 { 
 _nop_(); 
 _nop_(); 
 _nop_(); 
 _nop_(); 
 _nop_(); 
 } 
 while(n--); 


void delay_ms(uint n) 

do 
delay_10us(131); 
while(n--); 




void display_led(uchar t) 

 uchar i,temp; 
 P2=0x00; 
 temp=0x7f;                                //led显示 
 SBUF=temp; 
 while(!TI);TI=0; 
 for(i=0;i<6;i++) 
 { 
 P2=seg[disbuf]; 
 delay_ms(t); 
 if(temp==0xfd) break; 
 P2=0x00; 
 temp=temp<<7|temp>>1; 
 SBUF=temp; 
 while(!TI);TI=0; 
 } 
  
  } 
main() 

while(1) 
display_led(5); 


上面程序,Proteus  可以仿真,可是硬件实现不了 
第一次用到164,请高手指点 

相关帖子

沙发
xhtxzxw| | 2008-11-17 16:27 | 只看该作者

嘿嘿

读死书,死读书的典型.
你那个10us延时函数,很丑陋.
代码应该有适当的格式(行首缩进,注释等等,你的LED16451之间怎么连接的根本就没有说明!)

使用特权

评论回复
板凳
keny616|  楼主 | 2008-11-17 23:25 | 只看该作者

话虽如此

呵呵,说的是,死读书的
没做过什么项目

是啊,这个只是一个项目中的一部分程序
想搞清楚,怀疑74ls164这块出了毛病

如果你知道的话,不如直接告诉我啊,呵呵
别太打击我咯,嘿嘿

使用特权

评论回复
地板
xhtxzxw| | 2008-11-19 01:12 | 只看该作者

嘿嘿

数码管,164,51相互之间怎么接的?
详细说说

使用特权

评论回复
5
keny616|  楼主 | 2008-11-19 10:11 | 只看该作者

谢谢

呵呵,搞出来,是程序出了问题
 

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

6

帖子

0

粉丝