永发信息网

单数码管循环怎么显示0到9?

答案:1  悬赏:50  手机版
解决时间 2021-01-06 11:23
单数码管循环怎么显示0到9?
最佳答案
方法如下:
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
uchar code table_numberP[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};    
uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uint n;
uint ge;
void main()
{
ge = 0;
TMOD = 0x01;
TH0 = (65536-45872)/256;
TL0 = (65536-45872)%256;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1);
}
void T0_time()interrupt 1
{
TH0 = (65536-45872)/256;
TL0 = (65536-45872)%256;
n++;
if(n%20 == 0)
{

if(ge<=9){

P1 = table_numberP[0];
P0 = table[ge];
ge++;
if(ge == 10){
ge = 0;
}
}
}
}
主函数中的P2 = LED_CODE[led];led++;可以删去,没有任何的意义
,因为定时和循环显示都在中断函数里面完成了,主函数只是起了一个初始化的作用,led++影响LED_CODE[led]的值,它使LED_CODE[10] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }数组中的10个值依次赋给P2,依次显示0--9的数字,即当led = 0时,P2接受0xC0,对应数码显示0,当led = 1时,P2接受LED_CODE[1]=0xF9,对应显示1,依次类推,从而显示0--9。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
华东7省是哪7省?
烟台大悦城现在有什么小孩玩的东西
读鲁滨孙漂流记有感
《同事三分亲》里面的插曲
单选题关于平抛运动,以下说法中正确的是A.平
老兵旅馆(威海文登市)地址在哪,我要去那里办
一下子赚了很多钱可以用什么成语形容
其实,我们孤独,但都不是孤身一人对吗?
一个三角形有两边长分别为1与2,若它的第三边
怎么做二手车生意?去哪弄二手车货源...
利凡诺尔有什么用处 用于外部创伤有没副作用
显卡GT22和GT210哪个好些
中学教师的等级分类
是清莱的签证在清迈机场可以办回头签吗
银行卡余额显示47,270.37是多少钱?
推荐资讯
初一两道因式分解
一般公司的代理记账是怎么收费的
列竖式计算23.4÷0.04
象拔蚌怎么做好吃,白灼象拔蚌的家常做法
每个月交409.9社保单位交多少
写对了吗?
我保证好好学习的英语怎么说?
解一元二次(44-x)(20+5x)=1600
现在怎么都不要破了一点点的纸币,只是一点点
MC小刀---活出精彩的伴奏音乐歌名
理性得让人发指,感性得令人崩溃…
vivoy31是高配还是低配?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?