永发信息网

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

答案:1  悬赏:50  手机版
解决时间 2021-01-06 11:23
  • 提问者网友:相思似海深
  • 2021-01-06 07:07
单数码管循环怎么显示0到9?
最佳答案
  • 五星知识达人网友:思契十里
  • 2021-01-06 08:29
方法如下:
#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。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯