请问单片机C编程中的定时器秒表数码管显示-小知识
话题:请问单片机C编程中的定时器秒表数码管显示
问题详情:请问单片机C编程中的定时器秒表数码管显示#include#define
回答:TH0=(65536-36)/256;TL0=(65536-36)%6;这个是由于TL0跟TH0都是位寄存器,组合在一起就是16为寄存器,那么2^16=65536;赋值的时候减去36,是因为定时器溢出的时候是达到计数65536的时候,那么减去这个数就是相当于你想计数器计数36个时钟CLOCK后溢出;即从0到36,共计36个时钟CLOCK;当达到36后TH已经到了65536溢出了,因为你赋的初值为65536-165536=4000;计数器实际 是从4000开始的, 至于软件延时 void delay(uchar x){ int i,j; for(i=x;i0l;i--) for(j=255;j0;j--);} 这个是执行一条指令有不同的CLOCK数的,赋值是一个CLOCK,for可能是两个,而且跟单片机的晶振也有
话题:急求一个程序:用单片机上的定时器/计数器设计一个秒表,
回答:SECOND EQU 30H TCOUNT EQU 31H KCOUNT EQU 32H KEY BIT P3. 00H SJMP START 0BH LJMP INT_T0 START: MOV DPTR,#TABLE MOV P0,#3FH MOV P2,#3FH; 开始,数码管显示"00" MOV SECOND,#00H MOV TCOUNT,#00H MOV KCOUNT,#00H MOV TMOD,#01H; 定时器0 在方式1 MOV TL0,#(65536-50000)/256 MOV TH0,#(65536-50000) MOD 256 K1: JB KEY,$; 等待按键 LCALL DELAY JB KEY,$ MOV A,KCOUNT CJNE A,#00H,K2; 判断按键次数 SETB TR0; 第1次按键,启动定时器 MOV IE,#2H JNB KEY,$ INC KCOUNT; 按键抬起,按键次数值加1 LJMP K1 K2: CJNE A,#01H,K3
话题:51单片机 秒表编程(使用定时计数qi,晶振12mhz)上电显示
问题详情:51单片机 秒表编程(使用定时计数qi,晶振12mhz)上电显示“0
回答:计时到24秒后又如何?是停下?还是清0重来?
话题:51单片机的定时器程序,c语言编写,使用内部定时器设计一
问题详情:可以实现数字的循环。基本功能实现,可以考虑添加键控实现停表
回答:方法:首先:要学会数码管的显示程序 然后:按键的 作,注意软件的消抖(具体的是延时,10ms左右)。 假设有k1~停表,k2~复位,k3~继续运行 先说停表和继续运行的 停表:如果k1按下,TR0=0; 继续运行:如果k3按下,TR0=1; 复位:直接用硬件复位单片机或者k2按下,数据清。要实现数据的循环:只要定时器计数到最大值时,再把最小值赋给它!
参考回答:到我的空间找找,有这样的实例。
话题:单片机的秒表设计的程序
问题详情:用单片机定时器T0中断方式,实 用键盘处理程序实现秒表的启动
回答:#includereg51.hsbit k1=P2^0;sbit k2=P2^1;sbit k3=P2^2;sbit k4=P2^3;sbit key1=P3^0;sbit key2=P3^1;sbit key3=P3^2;bit b;unsigned int miao,fen,a;unsigned char code xs_w[]={0xc0,0xf,0xa4,0xb0,0x,0x2,0x2,0xf,0x0,0x0};void yanshi(unsigned int y){ unsigned int i,j; for(j=0;jy;j++) for(i=0;i125;i++); }void T0_int()interrupt 1 { TH0=(65535-5000)/256; TL0=(65535-5000)%256; a++; if(a1) {a=0; {if(key1==0){b=1;while(key1==0);} if(b==1){miao++;if(miao=){miao=0;fen++;if(fen=)fen=0;}} if(key2==0){b=0;while(key2==0);} 保持 if(key3==0){miao
参考回答:#include ATX51.Hunsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0xd,0x0, 0xf,0x6f,0x,0xc,
话题:求单片机 秒表程序、
回答:#includereg52.h 包含头 ,一般情况不需要改动,头 包含特殊功能寄存器的定义code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0xd,0x0,0xf,0x6f}; 共阴数码管 0- unsigned char Dis_Shiwei; 定义十位unsigned char Dis_Gewei; 定义个位void delay(unsigned int cnt){ while(--cnt);}main(){TMOD |=0x01; 定时器设置 10m
参考回答:秒表1/100秒显示单位,也就是10毫秒,用单片机的话你用定时器10毫秒中断一次就OK了,以下是部分程序,显示部分没做。second
话题:单片机的秒表设计的程序
问题详情:实现1秒定时,实现秒计时。 用键盘处理程序实现秒表的启动
回答:#include ATX51.Hunsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0xd,0x0,0xf,0x6f,0x,0xc,0x3,0x5e,0x,0x1,0x00};unsigned char second;unsigned char keycnt;unsigned int tcnt;void main(void){unsigned char i,j;TMOD=0x02;ET0=1;EA=1;second=0;P0=dispcode[second/10];P2=dispcode[second%10];while(1){if(P3_5==0){for(i=20;i0;i--)for(j=24;j0;j--);if(P3_5==0){keycnt++;switch(keycnt){case 1:TH0=0x06;TL0=0x06;TR0=1;break;case 2:TR0=0;break;case 3:keycnt=0;second=0;P0=dispcode[second/10];P2=dispcode[second%10];break;}while(P3_5==0);}}}}void t0(void) int
参考回答:这个程序本身思路都已经非常清晰了呀,主要就是再把流程优化下即可了。定时器T0只负责产生秒信号,用两个计数单元来计数需要显
话题:单片机 秒表程序
问题详情:简单点的! 一个初 ,谢谢啦!!!
回答:以下程序使用定时器1计数,定时10ms,60H为妙计数单元,4FH单元为秒标示位,一秒时间到,置位4FH *********************************************************************************************************************** 0000H ;程序从0 开始 LJMP MAIN ;跳到STRAT处执行 001BH LJMP JIA1 0030H MAIN:MOV TMOD,#01H ;设置T1 在模式1 MOV TH1,#06H ;赋初值,定时10ms MOV TL1,#0F0H MOV IE,#H ;开CPU中断,开定时器1中断 SETB TR1 ;启动T1定时器 MOV 60H,#100 ;给60H单元赋初值 CLR 4FH ;清4FH单元 DISPLAY: ;显示子程序 MOV DPTR,#TAB ;DPTR指向编码表位置 MOV A,R3 ;将R3的
话题:单片机 秒表程序
问题详情:求一个单片机 程序 用0C51单片机 秒表的程序 五个按键 两个
回答:#includereg52.hsbit led1=P1^3;sbit led2=P1^2;sbit led3=P1^1;sbit led4=P1^0;sbit key1=P3^5;sbit key2=P3^4;sbit key3=P3^3;bit Clear=0;unsigned char n=1;unsigned char p=0,s=0,m=0; unsigned char sss,ssg,pps,ppg;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0xd,0x0,0xf,0x6f}; 显示程序示程序void display(unsigned char mm,unsigned char ss,unsigned char pp) { unsigned char sss,ssg,pps,ppg; sss=ss/10; ssg=ss%10; pps=pp/10; ppg=pp%10; P3=~mm; 数码管显示分 if(n==1){led3=led2=led1=1;P0=table[sss];led4=0;} 秒十位 if(n==2){led4=led2=led1=1;P0=table[ssg];led3=0;} 秒个位
参考回答:有100分的话就找 353512
话题:单片机 秒表程序
问题详情:求一个单片机 程序 用0C51单片机 秒表的程序 三个按键 两个
回答:0x06;0; unsigned char sec,0x6f}; /个位选通定义sbit shiwei=P2^; /每过250ust tcnt加一if(tcnt==400) /,0xd;/重新再计 sec++; if(P3^0==0) { for(i=20;第一次按下 TH0=0x06;/计满400次(1/请注意写程序时的格式 范,此处是为了节省纸 void t0(void) interrupt 1 using 0 /100; / P0=table[sec%10]; Delay(5);10]; /计数重新从开始 break,0x4f; }}void LED() / for(i=0;/延时程序{ while( tc ; if(sec==100) / P0=table[sec/ /0;reg52;十位选通定义void Delay(unsigned int tc) /, 0x6d; gewei=0; i键值判断sbit gewei=P2^6;/,0x66; unsigned int tcnt;定时结束 break;LED显示函数{ shiwei=0; unsigned char code table[]={0x3f;定时器 在方式2ET0=
参考回答:好好上课去,这倒霉孩子
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-

















































