51单片机使用switch语句来实现用一个开关启动的4位数码管计时器,要动态扫描显示,不使用延迟。

各位巨佬帮帮忙 小弟初学者 像看着参考下

void t1isr() interrupt 3 //显示
{
TH1=0xec;
TL1=0x78;
switch(scanled)
{
case 0:
P2=0x01;
P0=0xff;
//P0=~ledtab[disdat[3]];
break;
case 1:
P2=0x02;
P0=~ledtab[disdat[2]];
break;
case 2:
P2=0x04;
P0=~(ledtab[disdat[1]])&0x7f;
break;
case 3:
P2=0x08;
P0=~ledtab[disdat[0]];
break;
default:break;
}
scanled++;
scanled%=4;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

用51单片机控制4位一体数码管实现1234轮流显示的程序代码是什么,求!pro...
include <reg51.h> \/\/ 数码管显示字型码表 unsigned char code LEDDisplay[] = { 0x3F, \/\/ 0 0x06, \/\/ 1 0x5B, \/\/ 2 0x4F \/\/ 3 };sbit DIO = P1^0; \/\/ 串行数据输入 sbit RCLK = P1^1; \/\/ 数据锁存时钟 sbit SCLK = P1^2; \/\/ 串行数据时钟 unsigned char...

利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开...
利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开始每1秒钟加1。  我来答 5个回答 #活动# 参与造句大挑战,答题瓜分万元豪礼 zlzskddj2602 推荐于2017-09-27 知道答主 回答量:19 采纳率:0% 帮助的人:0 我也去答题访问个人页 关注 展开全部 没有定时器的不过有数字钟的...

运用51单片机实现4位8段LED数码管的动态数字显示,写出C语言程序_百度...
EA=1;while(1);}

求由51单片机控制4x4键盘输入,4个数码管(采用动态扫描)显示 C语言编...
可以这样写,先计算按了几下了,按下若小于4次,让四个段选端前几个端导通,按下数超过或等于4次你就可以用扫屏的方式来显示就好了。比如第一下按的是8你就可以设置if和else语句组合啊!先有个数组d[]={0xf7;0xfb;0xfd;0xfe}\/\/段选,按了几下设为变量uint a\/\/无符号字符型,if(a<4...

用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器...
用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。用proteus做的时钟 可以显示年月日时分秒 可调整时间 有图 \/ includereg52.h

利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开...
TR0=1;ET1=1;TR1=1;} void delay (uchar x){ uchar y;for ( ;x>0;x--)for (y=50;y>0;y--);} void display (){ uchar shu ,j,zi;wei=1;P0=temp;wei=0;duan=1;P0=table[zi];delay(2);duan=0;P0=0xff;shu++;if (shu==6) {shu=0 ;} switch (shu){ case 0 :...

求救,单片机c51 用四位七段数码管动态显示一个数字,怎么不行呢???
程序错了吧。看看这个程序,可以参考一下。include<reg51.h>#define uchar unsigned charuchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; \/\/0到9uchar num;uchar led[]={1,2,3,4};void t0isr() interrupt 1{TH0=(65536-5000)\/256;TL0=(65536-5000)...

51单片机怎样设按键切换数码管显示时间和日期?
你要设置一个标志变量,如flag,在进入按键程序后,flag++;然后加个控制判断语句 if(flag>3)flag=0;这样,在显示模块中再加入开关语句;switch(flag){ case 0:...显示时间..case 1:...显示日期。。.case 2:...显示温度。。。}

51单片机,动态数码管,如下代码,为什么switch函数是1ms刷新一次...
因为定时器每毫秒溢出一次if (TF0 == 1) 成立一次, switch函数执行一句 并且 i的值加1;因此执行的语句下一次溢出数码管显示的位也变化了 数值也变化了 例如由 P0=LedBuff[0] 变化 P0=LedBuff[1];这样,大约5ms 五个数码管轮流显示一次 五个数码管高速轮流显示 ,看上去是同时显示的 但数码管...

51单片机C语言程序4个独立按键实现对数码管数字显示的加减清零等
P1是LED.P2是按键sbit KEY_OUT_1 = P2^3;sbit KEY_OUT_2 = P2^2; sbit KEY_OUT_3 = P2^1;sbit KEY_OUT_4 = P2^0;#define uchar unsigned char#define ulint unsigned long#define Frequency 10\/\/定时器中断时间 = f*T#define Time 1\/\/一个周期1ms#define TubeNumber 6\/\/数码管个...

相似回答