|
单片机通过74LS245驱动数码管显示的仿真原理图(proteus仿真工程文件可到本帖附件下载):
74LS245驱动芯片的相关资料下载:http://www.51hei.com/chip/3507.html
单片机与74LS245数码管显示源代码:
- #include<reg51.h>
- #define uchar unsigned char
- uchar data dis_buf[6]; //显示缓冲区
- uchar code table[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00};
- void dl_ms()
- { unsigned int j;
- for(j=0;j<125;j++) ;}
- void display(void)
- { uchar bitcode, i;
- bitcode=0xfe;
- for(i=0;i<6;i++)
- { P0=table[dis_buf[i]];
- P3=bitcode;
- dl_ms( );
- P3=0xff;
- bitcode=bitcode<<1;
- bitcode=bitcode|0x01;
- }
- } /*
- void main(void) //随机调用
- { dis_buf[0]=1;
- dis_buf[1]=2;
- dis_buf[2]=3;
- dis_buf[3]=4;
- dis_buf[4]=5;
- dis_buf[5]=6;
- while(1)
- { display( );
- }
- } */
- void main(void) //定时调用
- { TMOD=0x01;
- TH0=-20000/256; TL0=-20000%256;
- EA=1;ET0=1;
- TR0=1;
- dis_buf[0]=1;
- dis_buf[1]=2;
- dis_buf[2]=3;
- dis_buf[3]=4;
- dis_buf[4]=5;
- dis_buf[5]=6;
- while(1) ;
- }
- void time0_int( ) interrupt 1
- { TH0=-20000/256;
- TL0=-20000%256;
- display( );
- }
复制代码
该系列源码包含有很多非常经典,代码风格十分规范,而且注释详细的单片机例程,还带仿真,对于MCU学习特别是初学者是很有帮助的,全部源码下载(共几十个项目):http://www.51hei.com/bbs/dpj-80575-1.html
本例程下载(含proteus仿真工程文件与源码):
单片机通过74LS245驱动数码管显示.rar
(15.54 KB, 下载次数: 82)
|
|