1-8单片机数码管显示
//为了使不同数码管显示不同字符,本例使用的是集成式多位数码管常用的动态扫描显示技术,
//它利用了人的视觉暂留特征,选通第1只数码管时,发送1的段码;选通第2只数码管时,//发送2的段码:选通第3只数码管时,发送3的段码。每次仅选通一只数码管,发送对应的段码,
//每次切换选通下一数码管并发送相应段码的时间间隔非常短,视觉惰性使人感觉不到字符是一个
//接一个显示在不同数码管上的,而会觉得所有字符很稳定地同时显示在不同数码管上。
//可见,这种设计方法和上一案例类似的是仍然是在数码管不同位置上逐个显示不同字符,只
//是切换速度大大增加了,在控制切换延时的时候,要注意全屏的扫描频率要高于视觉暂留频率
//16~20Hz。对于代码中的最后一行语句DelayMS(2)。
//通过网盘分享的文件:1-8数码管显示 链接: https://pan.baidu.com/s/1PAXBI2ABVE2la7xj-iANog 提取码: 54iu
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//使用共阳数码管
uchar code shi_zi[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XFF};//code用于指定变量
//延时程序
void dealy(uchar ms)//延时1MS
{
uchar i,j;
for(i=0;i<ms;i++)
for(j=0;j<110;j++);
}
//主程序
void main()
{
uchar x,y=0X80;
P2=0XFF;//数码管是低电压点亮,这里相当于复位。
while(1)
{
for(x=0;x<8;x++)
{
y=_crol_(y,1);//左移一位
P3=y;//数码管对应的位。
P2=shi_zi[x+1];//显示数字
dealy(2);//移时2MS
}
}
}








最新发布