还不会用锁存器,直接用一排口控制位选,一排口控制段选。用的共阳数码管,实际使用前要先判断好,类型和程序、接线方式都有区别,注意。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
代码:
- #include <reg52.h>
- #define uchar unsigned char
- #define smgd P2 //定义段选为P2总线 段段
- #define smgw P0 //定义位选为P0总线 位位
- uchar code tabled[]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
- uchar code tablew[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,
- 0x80}; //共阳极数码管,高电平点亮
- //如果是共阴极的,要低电平,求反
- // 7seg-mpx1-ca。ca是共阳,cc是共阴
- void delay(uchar i) //C0
- {
- uchar j,k;
- for(j=i;j>0;j--)
- for(k=125;k>0;k--);
- }
- /*演示主程序*/
- void main(void)
- {
- unsigned int a;
- while(1)
- {
- for(a=0;a<8;a++)
- {
- smgw=tablew[a];
- smgd=tabled[a];
- delay(5);
- }
-
-
- }
- }
Keil代码与Proteus仿真下载:
仿真.7z
(36.06 KB)
(下载次数: 19, 2021-12-22 23:13 上传)
下载积分: 黑币 -5