永发信息网

单片机c语言,设计一个计数器,中断一次,数码管数字从0起加1, 4位的数码管

答案:2  悬赏:80  手机版
解决时间 2021-02-18 21:38
单片机c语言,设计一个计数器,中断一次,数码管数字从0起加1, 4位的数码管
最佳答案
我直接拿一个现成的例子吧。这个是用定时器中断的,你可以改成外部中断。这是8位的数码管,对4位稍加修改就行了。
#include <reg52.h> //包括一个52标准内核的头文件
#include<intrins.h>

void x8led(unsigned long ddd);
void delay882us(void);

sbit P20=P2^0;
sbit P21=P2^1;
sbit S16=P3^0;
sbit S15=P3^1;
sbit S14=P3^2;
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
bit f=0;//位变量

timer2() interrupt 5
{
static unsigned char t;
TF2=0;
t++;
if(t==30) //T2的预置值0x1000,溢出30次就是1秒钟,晶振22118400HZ
{
t=0;
f=1;//每次长时间的溢出,就置一个标记,以便主程序处理
}
}

void x8led(unsigned long ddd)
{
unsigned char q,r=0;
unsigned char l[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f};
//0-9的字段码
unsigned char xx[8]={0,0,0,0,0,0,0,0};
unsigned char y[8]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1};
xx[0]=ddd%10;
xx[2]=ddd/10%10;
xx[1]=ddd/100%10;
xx[3]=ddd/1000%10;
xx[4]=ddd/10000%10;
xx[6]=ddd/100000%10;
xx[5]=ddd/1000000%10;
xx[7]=ddd/10000000;//求出八位数,分别放在八个变量中
for(q=0;q<8;) //循环扫描
{
q++;
r++;
if(r==8)r=0;
P1=y[r];
P21=1;
delay882us();
P21=0;
P20=1;
P1=l[xx[r]];
delay882us();
P1=0xff;
P20=0;
}
}

void delay882us(void)
{
unsigned char i;
for(i=0;i<255;i++)
{
_nop_();
}
}

void main(void)
{
unsigned long a=0;
RCAP2H =0x10; //赋T2的预置值0x1000,溢出30次就是1秒钟
RCAP2L =0x00;
TR2=1; //启动定时器
ET2=1; //打开定时器2中断
EA=1; //打开总中断
while(1)
{
if(f)//发现标记进入处理
{
f=0;//清除标记
a++;
if(a>99999999)a=0;
}
x8led(a);//将a的值送到数码管显示
}
}
全部回答
定义一个数组存放0-9的字型码 code unsigned char led[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f}; //0-9 unsigned char i=0; int0() interrupt 0 //外部中断0 { i++; if(i==10)i=0; p1=led[i]; } void main(void)// 主程序 { it0=1; //外中断跳变产生中断 ex0=1; ea=1; //打开总中断 while(1) //主程序循环 { ; } } 这样可以一个数码管0-9循环显示。 多位数码管的话,有点麻烦。 见你另一个问题。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么玩lol打自定义好好的一匹配就掉线了?
上古卷轴5怎么卸载overwrite
殷都区148工伤调解劳动者保护法律服务站在哪
周黑鸭善堂总店在什么地方啊,我要过去处理事
江西卫视张婷的老公是谁
为什么老是出现 INSERT 语句与 COLUMN CHECK
同春堂医药连锁总店仁康大药房地址在什么地方
【2013元旦晚会】2013元旦晚会主题四个字记住
新时代眼镜地址在什么地方,想过去办事
有没有听别人诉苦,赚钱的软件,就是听别人说
日语城市的罗马音
场坝上我想知道这个在什么地方
美都花苑站自行车租赁点地址在哪,我要去那里
有了嫂子,父母一点也不疼我了,疼媳妇超过自
有关强迫的句子
推荐资讯
形容小孩玩水的情景的一段话
带了牙套如果换城市了怎么办?
请问去房地局调档案查自己在当地有没有房子需
嘉辉楼地址在什么地方,想过去办事
你要能把人看准了,你就到家了如何回复
九宫阁KTV地址在哪,我要去那里办事
我是1973年农历十一月十六出生,是什么星座
莫文在什么地方啊,我要过去处理事情
如何做好学生心理问题的预防和干预工作
惠民大药房地址在什么地方,想过去办事
兴达火锅在哪里啊,我有事要去这个地方
重庆读哪个轨道管理学校好就业
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?