数码管显示数字(单片机-动态数码管)
Posted
篇首语:聪明在于勤奋,天才在于积累。本文由小常识网(cha138.com)小编为大家整理,主要介绍了数码管显示数字(单片机-动态数码管)相关的知识,希望对你有一定的参考价值。
数码管显示数字(单片机-动态数码管)
#include "REG52.H"
typedef unsigned int u16;
typedef unsigned char u8;
#define SMG_A_DP_PORT P0
sbit HCA=P2^2;
sbit HCB=P2^3;
sbit HCC=P2^4;
u8 gsmg_code[]=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;
void delay_10us(u16 ten_us)
while(ten_us--);
void smg_display(u16 LOCATION,NUMBER)
switch(LOCATION)
case 8:HCC= 0;HCB= 0;HCA= 0;break;
case 7:HCC= 0;HCB= 0;HCA= 1;break;
case 6:HCC= 0;HCB= 1;HCA= 0;break;
case 5:HCC= 0;HCB= 1;HCA= 1;break;
case 4:HCC= 1;HCB= 0;HCA= 0;break;
case 3:HCC= 1;HCB= 0;HCA= 1;break;
case 2:HCC= 1;HCB= 1;HCA= 0;break;
case 1:HCC= 1;HCB= 1;HCA= 1 ;break;
SMG_A_DP_PORT=gsmg_code[NUMBER];
delay_10us(100);
SMG_A_DP_PORT=0x00;
void main()
while(1)
smg_display(1,0);
这里用到了单片机的p0口,8位数码管显示自己想要输出的数字。
注意
void main()
while(1)
smg_display(1,0);
这里我只是在第一个数码管输出了数字0,以我目前的硬件设备,能做到同时显示8位数字,大家可自行复制。

上面的程序不知道还有啥可以简便些的,有大佬希望可以指导一下。

相关参考