利用51单片机动态显示0-60秒表

作者&投稿:易温 (若有异议请与网页底部的电邮联系)
求51单片机语言用动态显示设计0-60秒的计时器程序,原理图如图。~

红圈是有问题,改如下:
w1=1;w0=1;delay(1);
w1=0;P0=table(shi);delay(2);
w1=1;w0=0;P0=table(ge);delay(2);

你如果要做这个实验就联系我好了。我有现成的PCB电路板,送给你一块。
前提是,我只送给积极向上,努力学习的人。

#include<reg52.h>
unsigned int s;
unsigned char key;
sbit d1=P3^7;

void delay() //动态显示延时
{
int k;
for(k=0;k<100;k++);
}

void delay1() //去抖动延时
{
unsigned char code table[] = {
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
P2=table[s%10]; P3=0xf8; delay(); P3=0xf0;
P2=table[s/10%10]; P3=0xf4; delay(); P3=0xf0;
P2=table[s/100%10]; P3=0xf2; delay(); P3=0xf0;
P2=table[s/1000]; P3=0xf1; delay(); P3=0xf0;
}

void main()
{

TMOD = 0x01;
TH0 = (65536 - 10000) / 256;//初值,每10ms中断一次
TL0 = (65536 - 10000) % 256;
ET0=1;
EA=1;
while(1) {
delay1();
if(!d1) {
delay1();
if(!d1) { //去抖动
while(!d1) delay1();//等待释放
key++;
if(key == 4) key = 1;
}
}
if(key == 1) TR0 = 1;//开始计时
else if(key == 2) TR0 = 0;//停止
else s = 0;
}
}

void time0() interrupt 1 //内部中断
{
TH0 = (65536 - 10000) / 256;
TL0 = (65536 - 10000) % 256;
s++;
if(s == 10000) s = 0;
}


51单片机数码管静态显示和动态显示原理及实验
静态显示方式中,每个数码管的段选和位选都是独立控制的。通常情况下,每个数码管对应一组位选线和一组段选线,分别由单片机的I\/O口控制。这种方式的优点是显示稳定,不受刷新频率的影响,但需要较多的I\/O口资源,且成本较高。动态显示方式则通过轮流切换显示状态,使得每个数码管的显示信息能够在短时...

51单片机动态显示0—10000
您好,51单片机动态显示0-10000是这样的。1.多位数码管是扫描显示,也就是同一时刻只有一个数码管显示 2、视觉暂留效果:第一个数码管显示完,第二个数码管接着显示,接着后面数码管一次显示,当显示(扫描)足够快的时候,人眼是看不到闪烁的,就认为多个数码管是同时显示的 3、多位数码管只能同时...

51单片机4位数码管显示数字
1、静态显示:对于静态显示,可以直接利用IO口将对应的数字编码发送到数码管的段选引脚上。将P0口设置为0x3f,可以显示数字0。2、动态显示:对于动态显示,有两种常见的方法。一种是提高刷新频率,使得人眼无法分辨,产生显示的效果。另一种是利用锁存器件,先显示一个数字,锁定到一个数码管上,再显示...

51单片机控制数码管显示hello和动态显示123456
端口接动态数码管原理。P0端口接动态数码管的字形码笔段,P2端口接动态数码管的数位选择端,P1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。

keil51数码管动态显示学号后四位
该动态显示学号后四位方法如下:1、定义一个包含四位学号后四位的段码表table。2、使用display函数来选通不同的数码管,并发送对应的段码,实现动态显示效果。在main函数中,使用一个无限循环来不断调用display函数,实现连续的动态显示。3、增加一个索引变量index,用于控制循环显示学号后四位的顺序。当...

51单片机 动态显示为什么亮度会比较低?
是由于人眼的暂留特性。动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。提高亮度方法:1提高扫描频率 2增大亮时的占空比 3合理提高电源电压 4...

51单片机中不用锁存器怎么显示动态数码管
AT24C02是EEPROM芯片,与数码管毫无关系。要组成动态显示电路,可以不用锁存器,是数码管驱动电路是必须用的。如果,要是仿真,数码管的段控和位控是可以直接用单片机引脚的,不用锁存器,也不用驱动,真的可以做到不用74芯片,如下仿真图。但是,要是做实物,可以不用锁存器,但驱动必须用,不用74...

运用51单片机实现2位8段LED数码管的动态数字显示,写出汇编程序(C程序...
动态显示的是有固定格式的,赋值,开显示,延时,关显示,假设P0口接数据显示位,P2口低4位接片选,P2=TAB[1]; \/\/赋值 P3_0=0; \/\/开第一位显示 FOR(I=0;I<200:I++);\/\/延时 P3_0=1; \/\/关第一位显示 P2=TAB[2];P3_1=0; \/\/开第二位显示 FOR(I=0;I<200:I++);...

51单片机如何利用4个七段数码管采用动态显示显示4位数字,如2035?_百度...
2035”,而不是单个的数字。比如说吧:...P1=num[2]; \/\/假设num[2]是0x5b,即"2"P20=1; \/\/假设使能端是高有效,按实际情况来。delay(); \/\/延长50ms应该可以把,不能太长(过0.1秒就能看出来了),最好也不要太短P1=num[0];P21=1;delay();......

利用51单片机控制3个LED数码管在3个数码管上显示字符LED,怎样编写程序...
用动态显示的方法来做 在定时中断中,分别对每个数码管显示一次,也可以用延时来做,你若只是单单看个效果那就用延时来做吧 亮第一个数码管(这里当他为共阳极数码管):P2^0=1;P1=XXX;\/\/自己写出L的字形码 delay_ms(1);\/\/延迟1ms这个时间越小越好拉 P2^0=0;\/\/关掉第1个数码管显示 P2^1=...

鄂尔多斯市15134955299: 用51单片机设计一个秒表,计时范围从00:00 - 59:59. -
鲜菡甲硫: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ...

鄂尔多斯市15134955299: 51单片机多位led显示秒表.00 - 59. -
鲜菡甲硫: #include<reg52.h>/*定时器方式:晶振为11.0592M*/ int t=0,s=0; //s 为1秒 void main() { TMOD=0x01; //设置定时器0为工作方式1 TH0=(65536-46080)/256; TL0=(65536-46080)%256; EA=1; //开总中断. ET0=1; //开定时器0中断. TR0=1; //...

鄂尔多斯市15134955299: 任务要求 用数码管显示60秒的秒表设计(单片机AT89C51) -
鲜菡甲硫: 1.要求从0-60秒计时,到60后LED发光,当从新计时是LED熄灭.--60,保持不变?--何时重新计时?2.用定时计数器定时,用按键控制启停.--刚开机时,是启动,还是停止?3.若启动后计时没到60秒,按键停止后,则重新计时.--按键停止后,立即就重新计时?--是不是保持显示,等待再次按键,再重新计时?--否则,按键的作用,就不是停止了,而是重新计时了.4.要求用汇编语言 --这个可以办到.

鄂尔多斯市15134955299: 用51单片机做秒表设计 -
鲜菡甲硫: 遇到懒学生了,这个不就是一个定时器加显示吗,有什么难的,自己翻翻微机原理书就可以做 了,也就四五十行汇编语言就行了,用C就更加简单,具体的方法:用定时器定时0.2ms,定时到了就给固定的一个变量加1,然后判断这个变量是不是到了500,到了就清零然后把秒的变量加1,就是1s了,(分和时也是如此,秒为60,秒清零,分加1);主程序就只管显示和按键,按键随便用中断还是查询,我建议你查询,因为程序简单,显示程序就是查个表,自己把数码显示的断码表编好就可以了,把秒的数值查表对应显示,完了就查询按键,按键累加,值为0是没按,1是按1次,2是按2次,3是按3次,同时清零,很简单的

鄂尔多斯市15134955299: 51单片机设计一个秒表,用两个数码管(任意相邻的两个)显示. -
鲜菡甲硫: ORG 0000H JMP BEGIN ORG 000BH LJMP T0INT ORG 001BH LJMP T1INT LEDD EQU 30H LEDC EQU 36H SECC EQU 37H TCNT EQU 3AH ORG 0030H;--------------------------------------- TABLE: ; 共阴极数码管显示代码表 DB 0FCH ;"0" ...

鄂尔多斯市15134955299: AT89S51单片机制作秒表需要的材料 -
鲜菡甲硫: 4个数码管——显示秒表数字(也可以用lcd来代替) 锁存器(74hc573)——实现数码管的动态显示 功能按键——用按键实现秒表的开始、停止、清0的功能 晶振(12MHZ 6MHZ)——给51提供脉冲 电容若干(视电路所需) 电阻若干(视电路所需)5V电压源——应该有吧,要不然要另做一个 剩下的就是软件方面的编程了,祝你成功

鄂尔多斯市15134955299: 51单片机如何使外部中断显示60秒倒计时求程序,谢谢. -
鲜菡甲硫: ORG 00H ; SJMP STAR ; ORG 1BH; SJMP TIS; 转T1中断服务程序 ORG 30H; STAR: MOV R2,#60H; 倒计时初值 MOV R4,#20H; 定时中断溢出计数器 MOV IE,#88H; 开中断 MOV TMOD,#10H; MOV TH1,#3CH; 定时初值 MOV TL1,#0B0H...

鄂尔多斯市15134955299: 51单片机完成简易秒表的设计 -
鲜菡甲硫: 设计思路:1.定时器计时 设置秒表最小单位(如ms)设置定时器的寄存器初始值,定时器溢出显示等.2.键盘扫描 可设置中断也可直接键盘扫描,因键较少可以不必接成矩阵.可以只用三个键来实现. 键1:功能选择,包括功能设置、准备计时等 键2:计时开始,向上调整时间 键3:计时停止,向下调整时间3.显示 看单片机引脚多少,可以直接静态显示,可以用移位寄存器增加管脚功能.

鄂尔多斯市15134955299: 用51单片机做秒表,按键按下停止计时,再按一次接着计时 -
鲜菡甲硫: 让定时器停止计时,只要TRx = 0这句就行,要让它继续,再TRx = 1; 例如,我的按键是P0.0,按一下停止,按一下继续,用定时器0,可以这样写:if(P0_0 == 0) {TR0 = ~TR0;while(P0_0 == 0); } 我只是提供个例子,实际运用中按键要记得加滤波

鄂尔多斯市15134955299: 单片机秒表功能设计 -
鲜菡甲硫: 采用51的单片机即可实现.用定时器计时,每秒进位,输出到LED数码管上显示即可.利用一个外部中断,按键决定何时显示秒和分(也可在LED上同时显示分和秒).

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网