大家好,用单片机定时器程序做一个99小时的定时器,怎么用程序实现。单片机定时器程序的定

单片机中使用一个定时器,如何通过软硬件结合实现较长时间的定时_百度知道
单片机中使用一个定时器,如何通过软硬件结合实现较长时间的定时
我有更好的答案
如果单片机不断电的话使用软件就完全可以做到,不管多长时间都可以。如果有可能会有断电过程的话,加上时钟芯片就可以了。
采纳率:31%
定时器50ms中断一义, 20次计为1 秒。60秒为1分钟,60分钟为1 小时。这样就可长时间定时了。
本回答被网友采纳
为您推荐:
其他类似问题
定时器的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。查看: 1527|回复: 2
怎样用一个单片机定时器来完成两个功能?程序怎么改?求大神!
【例3.5.2】在TX-1C单片机实验板上完成如下功能:用定时器0的方式1实现第一个发光管 以200ms间隔闪烁,用定时器1的方式1实现数码管前两位59s循环计时。新建文件part2.1 一5x, 程序代码如下:
#include &reg52.h& //52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6; //申明U1锁存器的锁存端
sbit wela=P2^7; //申明U2锁存器的锁存端
sbit led1=P1^0;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint);
void display(uchar,uchar);
uchar num,num1,num2,shi,
void main()
TMOD=0x11; //设置定时器0为工作方式1(M1M0为11)
TH0=()/256; //装初值11.0592M晶振定时50ms数为45872
TL0=()%256;
TH1=()/256; //装初值11.0592M晶振定时50ms数为45872
TL1=()%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
ET1=1; //开定时器1中断
TR0=1; // 启动定时器0
TR1=1; // 启动定时器1
while(1); //程序停止在这里等待中断中断发生
display(shi,ge);
void display(uchar shi,uchar ge) //显示子函数
P0=table[shi]; //送段选数据
P0=0 //送位选数据前关闭所有显示,防止打开位选锁存时
wela=1; //原来段选数据通过位选锁存器造成混乱
P0=0 //送位选数据
delayms(5); //延时
P0=table[ge];//送段选数据
P0=0 //送位选数据前关闭所有显示,防止打开位选锁存时
wela=1; //原来段选数据通过位选锁存器造成混乱
P0=0 //送位选数据
delayms(5); //延时
void delayms(uint xms)
for(i=i&0;i--) //i=xms即延时约xms毫秒
for(j=110;j&0;j--);
void T0_time() interrupt 1
TH0=()/256; //重装初值
TL0=()%256;
if(num1==4) //如果到了4次,说明200ms时间到
num1=0; //然后把num1清0重新再计4次
led1=~led1; //让发光管状态取反
void T1_time() interrupt 3
TH1=()/256; //重装初值
TL1=()%256;
if(num2==20) //如果到了20次,说明1秒刷新时间到
num2=0; //然后把num2清0重新再计4次
if(num==60) //这个数用来送数码管显示,到60后归0
shi=num/10; //把一个2位数分离后分别送数码管显示
ge=num%10; //十位和个位
你贴出来的这个代码不就是实现的这个功能么?
本帖最后由 zl2168 于
21:38 编辑
对200ms计数,200ms*5*59=59s。
Powered by51单片机的定时器怎么做延时 汇编_百度知道
51单片机的定时器怎么做延时 汇编
51的主程序和定时器是并行执行的,但是我想使主程序中每到一秒钟才往下执行,也就是类似于延时,但我不想用delay,用定时器怎么实现。我会用定时器做个一秒中断程序,但是主程序还是在不停地执行,无法做到一秒后才往下执行。如果用sjmp $,中断完了还是在循环...
我有更好的答案
3)这个标记就由延时中断例程来赋值;其实,如果你的主程序能够在1秒内完成,由没有其他任务的话,完全可以放在中断例程里运行的,还是继续空循环;2)主程序放在一个循环内,并设置一个标记,以判断是否触发执行主程序1)你的主程序必须在1秒内完成一个过程,然后等待下一秒的到来
采纳率:73%
MOV A,主程序里判断这标志,#3CHMOV TL0,#20SETB EASETB ET0SETB TR0MAIN0:MOV TMOD,#01MOV TH0,#01HMAIN1定时器中断里1S时,作个标志,#3CHMOV TL0。 给你一个流水灯的例子参考。ORG 00HAJMP MAINORG 0BHAJMP T0INTORG 30HMAIN:MOV TMOD:MOV P1,AJNB F0,MAIN1CLR F0RL AINC AAJMP MAIN1 T0INT,#0B0HMOV R0,#01HMOV TH0
本回答被提问者采纳
?貌似想到的方法和复杂,不知你要这样干什么,#00H然后在定时器内使R1置1或其他值,这样做很麻烦;
,MOV R1;/ 执行语句
&#47,就是每个语句前都用CJNE R1,#00H
为您推荐:
其他类似问题
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。基于51单片机编写C语言,在一个完整的秒表正计时程序中,如何插入一个从59:99的倒计时的程序._百度知道
基于51单片机编写C语言,在一个完整的秒表正计时程序中,如何插入一个从59:99的倒计时的程序.
#include&reg52.h&。。。。
sbit kaishi=P1^0;sbit qingling=P1^2;这里加入 sbit daojishi=P1^3;
// 加一个开关用来切换到倒计时功能,按一次进入倒计时59.99,再按一次,回到正倒计时00.00。
void delay(ui k)//有参延时{....}
void init()//中断函数的初...
我有更好的答案
加一个按键,程序里,加一个倒计时子程序一秒数值减一,当倒计时按键按下是调用这个子程序,并且显示就可以了啊
道理都懂...能详细些么
详细程序吗
现在已经解决了,不过这悬赏给你吧。毕竟只有你一个人回答。
采纳率:28%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用汇编语言编写一个51单片机程序,实现电子秒表功能_百度知道
用汇编语言编写一个51单片机程序,实现电子秒表功能
序控制4个数码管的显示,最大计时9分59.9秒、停止、清零!!跪求!所有得分了,求大仙!!(7279键盘显示器的输出编程),求程序,画出系统的电路原理图,重点,通过按钮可控制秒表启动,秒表精度为0.1秒
我有更好的答案
;================================================================;功能:本程序实现P0口的对数码管动态显示秒表的分、秒、1/100秒;;
计时程序由中断服务程序实现,采用定时计数器T0工作方式1;;
P2口实现对数码管的片选功能;================================================================;==========================初始化================================
P2定义P0口为输出口
P1定义P2口为片选口
20H.0;======================系统程序开始==============================
;========================时间子程序=============================;输入:&30H、31H、32H&;输出:无;实现的功能:分、秒、百分之秒的计算。;===============================================================
R2,TIAOCHU
R3,#100,TIAOCHU
R3,#60,TIAOCHU
R3,#60,TIAOCHU
TIAOCHU:RET;========================显示子程序=============================;输入:&A&;输出:&P2口&;实现的功能:显示秒、分、百分之妙;===============================================================
DISPLAY:MOV
SHUZI,MIAO0
SHUCHU,A显示十位
PIANXUAN,#10H片选
PIANXUAN,#00H
SHUCHU,A显示个位
PIANXUAN,#20H片选
PIANXUAN,#00H
SHUZI,MIAO
SHUCHU,A显示十位
PIANXUAN,#04H片选
PIANXUAN,#00H
SHUCHU,A显示个位
PIANXUAN,#08H片选
PIANXUAN,#00H
SHUCHU,A显示十位
PIANXUAN,#01H片选
PIANXUAN,#00H
SHUCHU,A显示个位
PIANXUAN,#02H片选
PIANXUAN,#00H
RET;========================计算子程序=============================;输入:30H;输出:&A和B&;实现的功能:把33H中的数据十位和个位分离出来;===============================================================
JISUAN:MOV
A,SHUZI数据放在A中
B,#10除数放在B中
AB商放在A中,余数放在B中
RET;====================复位中断服务程序============================;输入;无;输出: 无;实现的功能:把30H、31H、32H中的数据清零。;================================================================
RESET:PUSH ACC
RETI;====================启停中断服务程序============================;输入;无;输出: 无;实现的功能:关闭定时器;================================================================
ON_OFF:CPL
RETI;====================定时中断0服务子程序========================;输入:无;输出:无;实现的功能:实现定时20MS,影响标中断志位C_0;===============================================================
TL0,50H设置定时初值
C_0定时标志位清0
RETI;========================中断设置子程序=========================;输入:无;输出:无;实现的功能:初始化设置定时器,设置初值,开中断0、中断1,定时器0.;===============================================================
TMOD,#01H定时器0工作方式1
TL0,50H设置定时初值
IE,#87H开定时器中断0
RET;======================延时程序==================================;输入;无;输出: 无;实现的功能:延时一段时间;================================================================
L8:DJNZ R5,$
DJNZ R6,L7
RET;======================共阳查表数据==============================
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;===========================结束=================================
采纳率:80%
来自团队:
MOV TMOD,#01H
MOV TH0,#40H
MOV TL0,#98H
MOV FENWEI ,SHIMIAO
MOVC A,@A+DPTR
LCALL DELY1MS
LJMP K1TIME0: INC
A,#2H,OVER
INC HAOMIAO
MOV SHIMIAO,#0FBH
MOV DPTR,#TABLE
MIAOWEI,OVER
JB P1,#0FFH
SETB EAK1,#TABLE1
MOV A,#6,OVER
SHIMIAO,#0
MOV A,FENWEI
MOV A,HAOMIAO
SHIMIAO,#0
SHIMIAO,MIAOWEI
MOVC A,@A+DPTR
LCALL DELY1MS
LCALL XIANSHI
LCALL DELY1MS
MOV P2,#0FDH
DJNZ R7,K3
LCALL DELY1MS
P1.1,STOPK3.0:
LCALL XIANSHI
JB P1.0,K2
LCALL DELY1MS
MOV DPTR,#TABLE
MOV A,LOOP3
RETXIANSHI:
MOV DPTRHAOMIAO EQU
31HMIAOWEI EQU
32HSHIMIAO EQU
AJMP START
ORG 0030HSTART,STARTK2:
DJNZ R6,@A+DPTR
RETIDELY1MS: MOV R7,#4
MOV R6,#125 LOOP2,HAOMIAO
CJNE A,#10,OVER
HAOMIAO,#0
MOV A,MIAOWEI
A,#10,OVER
MIAOWEI,#0
MOV A,SHIMIAO
LCALL DELY1MS
0C0H, 0F9H ,0A4H, 0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH
LCALL DELY1MS
JNB P1.2,CLEAR
LJMP K1 START:
LJMP K1STOP:
LJMP K2CLEAR.1,@A+DPTR
MOV HAOMIAO,#0
MOV MIAOWEI ,#0
MIAOWEI,#10,FENWEI
MOVC A,LOOP2 LOOP3,#0
本回答被网友采纳
城....,似乎没有人鸟.
自己试验吧。
鬼城,似乎没人鸟......的╮(╯_╰)╭
想是想帮你,可是不知道7279是什么东东
其他3条回答
为您推荐:
其他类似问题
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 单片机定时器实验报告 的文章

 

随机推荐