数码管显示数字(单片机-动态数码管)

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位数字,大家可自行复制。

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


相关参考