根据51单片机的厨房定时器(可预置分秒倒计时装置)

合集下载

51单片机定时器 66页PPT文档

51单片机定时器 66页PPT文档
(2) 当GATE=1时, “与门”的输出信号K由INTx输入 电平和TRx位的状态一起决定(即此时K=TRx·INTx),
当且仅当TRx=1且INTx=1(高电平)时,计数启动; 否则,计数停止。
返回
27
5.3 定时器的工作方式——方式1
5.3.2 方式1
M1、M0=01,为16位的计数器,除位数外,其他与方式0相同。
缺点: 只有8位计数器,定时时间短、计数范 围小。其定时时间为: (28-初值)×振荡周期×12
若晶振频率为12MHz,则最长的定时时间为 (28-0)×(1/12)×12us=0.256ms
方式2工作过程图 (x=0, 1) 。
30
5.3 定时器的工作方式——方式3
5.3.4 方式3 只适用于定时器/计数器T0。T1不能工作在方式3。 如果将T1置为方式3,则相当于TR1=0,停止计数 (此时T1 可用来作串行口波特率产生器) 。
5.3.1 方式0 5.3.2 方式1 5.3.3 方式2 5.3.4 方式3
5.4 定时器的编程和应用
5
第5章 定时器/计数器及其应用
5.1 定时器的结构及工作原理
6
5.1 定时器的结构及工作原理
8051
内 部 结定 构时 框器 图
组成:两个16位的定时器T0和T1,以及他们的工作方式寄存器 TMOD和控制寄存器TCON等组成。内部通过总线与CPU相连。
当TL1的低5位计数溢出时,向TH1进位。而TH1计 数溢出时,则向中断标志位TF1进位(即硬件将TF1 置1),并请求中断。
可通过查询TF1是否置“1”或考察中断是否发生来判 定定时器T1的操作完成与否。
25
5.3 定时器的工作方式——方式0

51单片机倒计时报警器程序

51单片机倒计时报警器程序
MOV MIN,#0 ;分初始化
MOV HOUR,#0 ;时初始化
MOV MSEC,#0 ;毫秒初始化
MOV TH0,#0DAH ;T0置初值
MOV TL0,#64H
MOV TMOD,#01H
SETB ET0 ;允许T0申请中断
JZ MM ; 为零则继续判断分钟
LJMP CLOCK2 ;不为零则继续计时
MM: MOV A,MIN ;判断分钟是否为零
JZ SS ; 为零则继续判断秒
CJNE A,#01,CLOCK2 ;判断分位是否为1,不为1则蜂鸣器流水灯工作在模式一
SETB P2.7
CLR P2.7
CLR P2.6
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
MOV A,B
CLR P2.7
MOV P0,#0F7H
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
;显示秒
MOV A,SEC
MOV B,#10
DIV AB
CLR P2.7
MOV P0,#0FBH
SETB P2.7
CLR P2.7
CLR P2.3
MOV A,MIN;
CJNE A,#60,J3 ;分满60清0
MOV MIN,#0
LJMP J3
J3: JB K3,A1
LCALL DISPLAY1
LJMP J3
S4: LCALL DELAY
JB K4,A1
AK4:INC HOUR

基于C51的倒计时器设计

基于C51的倒计时器设计

广州理工学院《单片机原理与应用》课程设计报告设计课题:基于C51的倒计时器设计学院:电气与电子工程学院班级:姓名:学号:指导教师:日期:2020.11.6---2020.11.19评分:摘要本系统采用STC89C52单片机,设计一款可调倒计时器,该倒计时器数字可以通过按键加KEY1/减KEY2自由设定数字,4位数码管显示计时数字,可选择倒计时范围在(1-9999),设定时间后,按下按键KEY3开始倒计时,当倒计时为0时,蜂鸣器接收到信号,发出警报声。

关键词:STC89C52;数码管显示;可控倒计时器A B S T R AC TS TC89C52m i c ro c on t rol l er i s ap pl i e d i n t hi s s ys t e m, de s i gn ana d j u s t ab l e t i m e r, t h ec ou nt do wn t i m er n um b er c a n f r e el y t h r ou gh t h eb ut t o ns t o a dd KEY1/m i n us K E Y2N u m b e rs, t h e fo ur d i gi t a l t u b e d i s pl a y t i m i n g Nu m b e r s,c an ch oo s e t he c o unt do w n r a n ge i n (1-9999), s e t t i n g t i m e,p r ess t h e b ut t on K EY3s t ar t t h e c ou nt do wn,wh e n t h e c o un td ow n t o z er o, b uz ze r t o re c e i v e si gn al s, s e nd s out t he a l a r m.K E Y W O R DSSTC89C52; Digital tube display; Controlled countdown timer目录概述 (1)一、方案设计 (2)1.1设计任务及其要求 (2)1.2器材选定 (2)二、硬件设计 (3)2.1复位电路 (3)2.2按键电路 (3)2.3时钟振荡电路 (4)2.4单片机最小系统模块电路 (4)三、软件设计 (5)3.1程序流程图 (5)3.2设置数值加减程序 (6)3.3设置倒计时程序 (6)3.4设置蜂鸣器程序 (7)3.5总程序 (7)四、调试与实现 (11)4.1实物连线 (12)4.2连线步骤 (13)4.3模块测试 (14)4.4功能实现 (14)五、课程设计体会与总结 (15)5.1总结 (15)参考文献 (15)附录 (16)附录表1 倒计时器元件清单 (16)概述本项目是由单片机通过执行设定设定的程序,设计的一款可调倒计时器,该倒计时器数字可以通过按键加KEY1/减KEY2自由设定数值,由4位数码管显示计时数值,选择在(1-9999)的倒计时范围内,设定时间,按下按键KEY3开始倒计时,当倒计时为0时,蜂鸣器接收到信号,发出警报声。

毕业设计(论文)基于51单片机的9999秒倒计时器设计[管理资料]

毕业设计(论文)基于51单片机的9999秒倒计时器设计[管理资料]

郑州科技学院专科毕业设计(论文)题目_基于51单片机的9999秒倒计时器设计学生姓名陈利丹专业班级 10计通学号 201019009所在系信息工程学院指导教师邢烥岩完成时间 2013 年3月 5 日目录一引言 (3)二.总体设计方案 (4): (4)三、硬件设计 (5) (5)89C52单片机 (5)四.复位电路工作原理 (8) (8) (9)五.数码管显示电路 (11)显示电路 (11)LED数码显示器的介绍与结构 (12) (12)七.软件设计 (17)程序设计 (18)原理图 (25)PCB图 (26)元件清单 (27)八.结束语 (28) (29)基于51单片机的9999秒倒计时器设计信息工程学院通信技术陈利丹(201019009)指导老师:邢烥岩摘要倒计时器应用十分广泛,在制作倒计时器时多采用纯数字电路和模拟电路,电路复杂功能单一。

如今微控技术应用十分广泛,采用单片机控制器制作倒计时器电路十分简单,功能齐全并且可以扩展其它功能。

气短数码显示电路采用直接与单片机接口连接方式更加节省电路。

成本低、功能灵活、使用方便等优势,更加巩固了单片机技术在电子产品制作中的不可替代的作用。

本论文针对倒计时系统的设计的需求,介绍了MCS-51单片机的部分基本原理,如51单片机的接口功能、中断、定时器等等。

倒计时系统需要用到锁存器、LED 数码显示器等主要模块,通过不同的模块之间相互作用,完成倒计时的初步硬件结构。

对于倒计时器中的LED数码显示器来说,采用以软件为主的接口方法,即采用Keil uVision4软件程序进行译码。

【关键词】倒计时器单片机矩阵键盘 Keil uVision3 LED数码显示器9999 seconds countdown timerdesign based on 51 single chip microcomputer Name:Chen Lidan No. :201019009 Teacher: Xing Chenyan (Institute of information engineering network technology)Countdown timer is widely used, the pure digital circuit and analog circuit in the countdown timer, complex functions of a single circuit. Now micro control technology is widely used, using single chip microcomputer controller making countdown timer circuit is very simple, complete functions and can be extended to other functions. Shortness of breath and digital display circuit is directly connected with the microcontroller interface mode more saving circuit. Low cost, flexible functions, convenient use and other advantages, consolidate the single-chip technology plays an irreplaceable role in the production of electronic productsIn this paper, aiming at the requirement of the countdown system design, introduces the basic principle of MCS-51 SCM, such as interface function, 51 SCM interrupt, timer and so on. The countdown system needs to use latch, LED digital display module, through interaction between different modules, complete the countdown to the initial hardware. For LED digital display timer in the interface, the method based on software, which uses Keil uVision4 software decoding.[keyword] countdown timer Singlechip keyboard matrix Keil uVision3 LED digital display一.引言单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

51单片机厨房定时器

51单片机厨房定时器

定时器/计数器硬件结构框图
概述
MCS-51单片机可提供2个16位的定时器/计数
器:T0和T1。它们均可用作定时器和(或) 计数器,为单片机系统提供精确定时和计数 功能。
问题:定时器和计数器有什么区别?
我最喜欢的一张图
计数值范围
计数工作方式时,计数值的范围为1~
65536 (216)。 定时工作方式时,定时时间为:
可以开始用定时器了?
可以。 不过呢? 这样开始,会教给您一种不太合理的方法。 还是再等等…… 还要给您介绍一个概念,她就是 (要是用他或它,都不足以表达我对Ta的感情)

中断
— Interrupt
从日常生活开始说吧
中断请求(中断标志)
中断响应 中断返回 中断允许(中断屏蔽) 中断优先级
4、LED动态显示
动态显示是按位轮流点亮 各位数码管的显示方式。 在任一时段,只有一位数 码管显示,其它的数码管都处 于熄灭状态。
LED动态显示
//功能:在六位数码管动态显示“012345” #include <reg51.h> void delay1ms(void) { while(1) { w=0x01; //位选码初值为01H
T=(216-计数初值)×晶体振荡器周期×12 问题: 那要定时1分钟或1秒钟怎么够啊?
现在该看那些乱七八糟的信号了
工作方式寄存器TMOD
工作方式选择位

定时器/计数器有4种工作方式:
工作方式 方式0 方式1 方式2 方式3 功 能 说 明 13位定时器/计数器 16位定时器/计数器 可自动重新载入计数初值的8位定时器/计数器 T0用作2个8位定时器/计数器,关闭T1
1、LED数码管结构及字型编码

基于STC89C52的厨房定时器设计报告

基于STC89C52的厨房定时器设计报告

单片机原理课程设计报告题目:基于STC89C52的厨房计时器专业:班级:学号:姓名:指导教师:一.设计报告概述本设计报告中的厨房定时器,是YL-39开发板(含按键开关和蜂鸣器等),单片机(STC89C52),LCD1602组成的综合设计系统电路。

1、基本要求采用单片机实现实现厨房定时器功能。

设计指标:1)按键设定功能:通过MIN,SEC按键进行计时时间的设定,最大值为99分59秒。

通过START/STOP按键,开启与暂停倒计时功能。

2)LCD显示功能:显示设定时间、倒计时时间。

格式为“XX:XX”。

分钟在前,秒在后。

3)时间设定:在计时开启前,需对“分、秒”进行设定。

按“MIN”键一下,设定分钟的数值加1。

可在0~99 间循环。

按“SEC”键一下,设定秒数的数值加1。

可在0~59 循环。

当设定的计时时间大于0 时,按“START/STOP”键,倒计时开始。

倒计时过程中,按“START/STOP”键,倒计时暂停,再次按下,继续倒计时。

4)报警功能:倒计时时间到,蜂鸣器响10秒报警。

报警过程中按“START/STOP”键,报警停止,系统停止进入低功耗待机状态。

2、扩展要求低功耗功能:通过按键中断或1秒计时中断唤醒。

连续10秒无操作时,自动进入低功耗状态。

二.图1 系统结构图所用到模块:MCU主控模块;按键;液晶显示模块本系统组成如图1 系统设计结构图所示,主要由五个部分组成。

1).时钟振荡电路晶振部分产生时钟信号XTAL1(19脚):单芯片系统时钟的反向放大器输入端。

XTAL2(18脚):系统时钟的反向放大器输出端;一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入30PF的小电容,可以使系统更稳定,避免噪音干扰而死机。

图2晶振电路2).复位电路如图所示,只要按K1键就能完成单片机的重置(复位复位电路,即上电复位和按键复位)。

图3复位电路3)显示电路如图所示,LCD1602显示电路RS RW E分别接在P0^7,P0^6,P0^5图4LCD1602显示电路4)按键电路图示5 按键电路5)报警电路图6报警电路三.软件设计1.设计流程图:图7 设计流程图2.程序设计: # include <reg52.h> # include <intrins.h> typedef unsigned char uchar; typedef unsigned int uint; typedef bit BOOL;sbit rs=P0^7;// sbit rw=P0^6;// sbit ep=P0^5;// sbit START=P3^5;sbit MIN=P3^4;//分加1 ; sbit SEC=P3^3;//秒加1; sbit beep=P0^4;//蜂鸣器uint second=0;uchar beepset=10;uint num=0;void delay(uint z)//延时1ms函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}BOOL lcd_bz(){BOOL result;rs=0; // 读忙信号rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();result = (BOOL)(P2&0x80);ep=0;return result ;}void lcd_wcmd (uchar cmd){while (lcd_bz());rs=0;rw=0;ep=0;_nop_();_nop_();P2=cmd ;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;}void lcd_pos (uchar pos) {lcd_wcmd (pos|0x80); }void lcd_wdat (uchar dat) {while (lcd_bz());rs=1;rw=0;ep=0;_nop_();_nop_();P2=dat ;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;}void lcd_init (){lcd_wcmd (0x38);lcd_wcmd (0x0c);lcd_wcmd (0x06);lcd_wcmd (0x01);}//LCD显示子函数void xianshi(){uint m1;uint m;uint s1;uint s;lcd_init ();lcd_pos (0);lcd_wdat('t');lcd_wdat('i');lcd_wdat('m');lcd_wdat('e');lcd_wdat(':');lcd_pos (0x40); //第二行m1=second/600;lcd_wdat(m1+0x30);m=second%600/60;lcd_wdat(m+0x30);lcd_wdat(':');s1=second%600%60/10;lcd_wdat(s1+0x30);s=second%600%60%10;lcd_wdat(s+0x30);}//键盘扫描子函数void key_scan(){if(P3!=0xff)//判断是否有按键按下{delay(1); xianshi();//延时处理,进行键盘消抖;if(P3!=0xff)//再次判断按键{if(START==0){ while(!START);//按键K3,功能为开始计时TR0=1;EX0=1;}else if(MIN==0){ while(!MIN); //按键K4,功能为加1Minsecond=second+60;if(second>5999) second=0;EX0=1;}else if(SEC==0){ while(!SEC);//按键K5,功能为加1Ssecond=second+1;if(second>5999) second=0;EX0=1;}}}}void main (){num=0;beepset=0;EA=1;IT0= 1;ET0=1;EX0=1;TMOD=0x01;//使用定时器T0,工作模式1TH0=0x3c;//定时器高八位赋初值TH0=(65536-50000)/256,即50ms TL0=0xb0;//定时器低八位赋初值TH0=(65536-50000)%256while(1){if(TR0==0){key_scan();xianshi();}else if(TR0==1){if(num==20)//20*50ms,定时时间为1秒{num=0;if(second!=0){ second--;}if(second==0){ beepset++;beep=0;if(START==0){ while(!START);beepset=0;beep=1;TR0=0;}else if(beepset==10){beepset=0;beep=1;TR0=0;PCON=0x01; //让单片机处于低功耗}}}xianshi();}}}void T0_time()interrupt 1{TH0=0x3c;TL0=0xb0;num++;if(START==0){while(!START);TR0=0;}PCON=0x00; //唤醒单片机}void Ex()interrupt 0{TR0=0;PCON=0x00; //唤醒单片机}五.使用说明1.打开电源2.K1:复位键K3:START/STOP,K4:设定分+1,K5:设定秒+1;六.调试过程及实验结果1.通过KEIL写出代码,运行成功生成HEX文件图7 KEIL写出代码,生成HEX文件2.通过STC-ISP将生成的HEX文件烧入单片机图8 烧录生成的HEX文件这里有几点注意的地方,一是芯片要选STC89C52RC,二是串口要选对,三是注意冷启动(先下载,再开电源),还有特别提醒的就是,笔记本电脑没有串口,必须用USB转串口程序!3.打开开发板电源,查看结果图9 实验结果七.课设体会开始我以为挺简单的,没想到一个简单的定时器都需要好好思考,实时是一个问题!能学会更好的利用中断,更加了解了单片机的工作原理。

本科毕业设计之基于51单片机控制的60秒倒计时系统设计

本科毕业设计之基于51单片机控制的60秒倒计时系统设计

摘要最近几年来随着运算机在社会领域的渗透,单片机的应用正在不断地走向深切,同时带动着传统控制检测日新月异的更新。

由于单片机具有体积小,易于产品化、面向控制、集成度高、功能强、靠得住性高、价钱低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中取得了普遍的应用。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来利用。

可是仅单片机方面知识是不够的,还应按照具体硬件结构,和针对具体应用对象特点的软件结合,以作完善。

本次设计采用C语言编程,通过倒计时子程序模块、矩阵键盘扫描模块、中断等子程序的正确挪用,完成了能够随时设置初值的基于51单片机控制的60秒倒计时系统。

关键词:倒计时单片机KeiluVision3 LED数码显示器目录1 MCS-51 单片机硬件结构及原理 (1)MCS-51系列单片机结构 (1)1.1.1 MCS-51单片机的大体组成 (1)1.1.2内部大体结构 (3)MCS-51单片机存储器安排 (6)1.2.1存储器空间安排 (6)1.2.2片内存储器 (6)单片机秒表课程设计的概述 (9)课程设计思路及描述 (9)课程设计任务和要求 (10)系统硬件方案设计 (11)软件方案设计 (11)生“HEX”文件的步骤 (12)源程序及注释 (15)原理图分析 (16)课程设计效果 (18)总结 (19)致谢 (20)参考文献 (21)1 MCS-51 单片机硬件结构及原理 MCS-51系列单片机结构 1.1.1 MCS-51单片机的大体组成 1 整体结构图1-1单片机的整体结构2. MCS-51单片机外部引脚及其说明最多见的封装形式是40引脚双列直插式DIP(Dual In-line Package) 尚有44引脚的无引线芯片载体封装PLCC(Plastic Leaded Chip Carrier)图1-2 MCS-51单片机外部引脚及说明其中两条电源线,两条外接晶体,4条控制或作电源复用,32条I/O 引线。

单片机设计倒计时器

单片机设计倒计时器

单片机设计倒计时器在我们的日常生活中,倒计时器有着广泛的应用,比如体育比赛、烹饪、考试等等。

通过单片机来设计倒计时器,不仅能够实现精准的计时功能,还能根据不同的需求进行灵活的定制和扩展。

接下来,让我们一起深入了解一下如何用单片机设计一个实用的倒计时器。

首先,我们需要明确倒计时器的基本功能和要求。

一般来说,倒计时器应该具备以下几个主要功能:1、设定倒计时的时间,时间范围可以根据实际需求进行调整,比如从几分钟到几小时。

2、能够清晰地显示剩余的时间。

3、具有启动、暂停和复位等操作按钮。

4、在倒计时结束时,能够发出提示信号,比如声音或者灯光提示。

为了实现这些功能,我们选择合适的单片机作为核心控制单元。

常见的单片机如 51 系列、STM32 系列等都可以满足需求。

以 51 单片机为例,它具有价格低廉、编程简单、资源丰富等优点。

在硬件设计方面,我们需要以下几个主要的组件:1、单片机最小系统:包括单片机芯片、晶振电路、复位电路等,为单片机的正常运行提供必要的条件。

2、显示模块:可以选择数码管或者液晶显示屏(LCD)来显示倒计时的时间。

数码管显示简单直观,适用于对显示效果要求不高的场合;LCD 显示屏则能够提供更丰富的信息显示,比如同时显示时间、日期等。

3、按键模块:用于输入操作指令,如设置时间、启动、暂停、复位等。

4、报警模块:可以使用蜂鸣器或者发光二极管(LED)在倒计时结束时发出提示信号。

下面我们来详细介绍一下各个模块的设计和实现。

单片机最小系统的设计是整个硬件系统的基础。

晶振电路为单片机提供时钟信号,保证其正常运行的时序。

复位电路则在系统出现异常时,能够将单片机恢复到初始状态。

对于显示模块,如果选择数码管,需要通过驱动芯片(如74HC595)来控制数码管的显示。

如果选择 LCD 显示屏,则需要根据显示屏的接口类型(如并行接口或串行接口)来进行相应的连接和编程。

按键模块可以采用独立按键或者矩阵按键的方式。

51单片机秒表定时器

51单片机秒表定时器
sbit a138 = P2^2; //定义译码器输入端A 在 P2.2 管脚上
sbit b138 = P2^3; //定义译码器输入端B 在 P2.3 管脚上
sbit c138 = P2^4; //定义译码器输入端C 在 P2.4 管脚上
sbit scl=P2^0; //24C02串行时钟
sda=write_data&0x80;
scl=1;
nop5;scl=0;nop5;
write_data<<=1;
}
sda=1; //释放sda,等待24c02将其拉高确定写入
scl=1; //在scl上升沿中检测sda
nop5;
ack=sda;
scl=0; //完成写操作的第九个时钟周期
switch(site)
{
case 1: numcode=0;a138=1;b138=1;c138=1;break;
// case 2: numcode=0;a138=0;b138=1;c138=1;break;
case 3: numcode=0;a138=1;b138=0;c138=1;break;
while(temp!=0xff)
{
temp=alonekeyboard;
switch(temp)
{
case 0x7f:alonekeynum=8;break;
case 0xbf:alonekeynum=7;break;
case 0xdf:alonekeynum=6;break;
}
}
}
return alonekeynum;
}
void main ()

51单片机倒计时源程序

51单片机倒计时源程序

51单片机倒计时源程序#include<reg52.h> //51头文件//#include<472405468.h>//51头文件#define uchar unsigned char //宏定义#define uint unsigned int //宏定义#define s0 P2^0 // 时加键#define s1 P2^1 // 分加键#define s2 P2^2 // 倒时加键//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6F #define s3 P2^3 // 倒分加键#define s4 P2^4 // 倒秒加键#define s5 P2^5 // 开始倒计时键总共6个按键uint tt1,tt0;uchar num=0;uchar biaozhi=11;uchar up;uchar z,han,jun,qiang,cishu,count,num1; //函数变量声明char shi,fen,miao,pao_miao; //定义有符号变量声明chardao_shi=23,dao_miao=59,dao_fen=59,dao_paomiao=99;sbit sky1=P1^0; //断控sbit sky2=P1^1; //位控sbit feng=P1^2; //控蜂鸣器const uchar code TAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极显示代码//****************** 函数声明 *****************************void feng_ming_qi(uchar); //报时函数void init(); //定时器的初始化(T1)void fenjie(); //函数声明void delay(uchar); //延时函数声明void dao_fenjie(); //倒计时显示函数uchar key_scan(); //按键调试函数//************************************************************void delay(uchar z) //一毫秒延时函数{uchar x,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}void init()//TR1初始化{TMOD=0x22; // TMOD=0x20; 开定时 1TH1=0x06; //T1 250微妙TL1=0x06; //装初值EA=1; //打开总中断TR1=1; ////初始化先打开定时器1ET1=1;feng=0;///////////////////////////////////////////////TH0=0x06; //T0 也是 250 微妙中断一次TL0=0x06; //装初值//EA=1; //打开总中断TR0=0; //初始化先关闭定时器0ET0=1; // IEIP=0x20;}/////////////////////////////////////////////////////////////////// /////////////////////////void dao_fenjie() //分解倒秒,倒分,倒时。

51、52单片机定时器 T0 的应用---9.9 秒计时设计

51、52单片机定时器 T0 的应用---9.9 秒计时设计
*********************************************************************/
void t0(void) interrupt 1 using 0 //定时中断服务函数
{
tcnt++; //每过250ust tcnt 加一
if(tcnt==400) //计满400 次(1/10 秒)时
*********************************************************************/
void KEY() //按键扫描程序
{
uchar i,j;
if(P3_0==0)
{
delay(20);
if(P3_0==0)
{
keycnt++;
#include<reg52.h> //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
/********************************************************************
sec=0;
while(1)
{
KEY();
Led(sec);
}
}
/********************************************************************
结束
主函数
*********************************************************************/

基于51单片机能实现任意时间倒计时。

基于51单片机能实现任意时间倒计时。

倒计时器只要修改此文档15页源程序的(如下图)的到计时初值即可实现想要的倒计时。

比如30分钟倒计时修改分钟十位和各位即可。

一、设计要求:由单片机接收小键盘阵列设定倒计时时间,倒计时的范围最大为60分钟,由LED 显示模块显示剩余时间,显示格式为 XX(分):XX(秒).X,精确到0.1s的整数倍。

倒计时到,由蜂鸣器发出报警。

绘制系统硬件接线图,并进行系统仿真和实验。

画出程序流程图并编写程序实现系统功能。

二、设计的作用目的:此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。

本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

三、具体设计:1.问题分析:在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。

如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?单片机的引入就是一个很好的例子。

单片机又称单片微型计算机,也称为微控制器,是微型计算机的一个重要分支,单片机是20世纪70年代中期发展起来的一种大规模集成电路芯片,是集CPU,RAM,ROM,I/O接口和中断系统于同一硅片上的器件。

用单片机制作的厨房定时器

用单片机制作的厨房定时器

用单片机制作的厨房定时器家庭做饭,有许多东西需要有个时间限制,如腌个肉吧,十几分钟;煲个简单的汤吧,文火1小时等,这些都不需要精确的定时,只要大约知道时间就可,但一定需要提醒,市场上五花八门的厨房定时器应运而生,小巧精致而且实用。

市售的各类厨房定时器作为电子爱好者,笔者热衷制作,用单片机做一个简单有趣的厨房定时器,既解决了实际的问题,又满足了爱好实践的愿望,于是就有了本文的这个制作。

这个电路十分简单,可以使用洞洞板直接焊接电路,制作用不了半天,无需调节,非常适合初学者练手制作。

该制作以5分钟为一个计时单位,最多计时1小时,3V电池做电源,有蜂鸣器报警,工作时功耗为6mA左右(使用AT89C2051),可以使用3V钮扣电池,具有自动关机功能,不运行时耗电量可以忽略不计,单键操作,简单方便。

电路图各种元件简单规划元件排布和走线焊接正面图焊接背面图制作完成后的定时器VT1为PNP的9012,当电路不工作时VT1的B极由R4得到高电平,VT1截止,AT89C2051无法从VT1的E极得到电源。

当 SW1按下时,VT1的B极通过VD2和SB1接地,由高电平转为低电平,VT1导通。

此时AT89C2051得电,同时通过C1,R4复位。

复位成功后 P3.7升为高电平,使得VT2导通,从而使VT1的B 极保持低电平状态,这时就算松开SB1,VT1也不会截止而导致MCU失电。

当AT89C2051 有关机指令时,P3.7引脚会被拉低,此时VT2截止,VT1的B极电压因此升高,VT1也截止,AT89C2051失电。

SB1起到了开关电源和设置的作用。

在AT89C2051没有得电时,SB1和VD2组成电源启动电路,AT89C2051得电后SB1和VD1组成功能键电路。

VD1、VD2的作用是防止在3V 的VCC接通时的瞬间电路自动开机。

R8~R19是LED限流电阻。

R6~R7是针对P1.0、P1.1增加的上拉电阻。

C1复位电容可以选择4.7~22μF的电解电容。

MCS-51单片机的定时器计数器

MCS-51单片机的定时器计数器
器工作方式。 (2)预置定时计数器中计数的初值——直接写入TH和
TL; 如:任务中的MOV TH0,#00H 两条指令,设定计数初
值。 MOV TL0,#00H
Copyright 2006
(3)根据需要开放定时器/计数器的中断——对IE位赋值; (4)启动定时器/计数器; 如:任务中的SETB TR0 指令 初值的计算方法 X=M-计数值 M是定时器的最大计数值。视工作方式不同而不同。
判断中 断的次 数

CPL P1.0
;定时到,输出取反

NO:RETI
;中断返回
END
注意:此程序的#20和#60这两个立即数后面没 有加H表示是十进制数。
思考:能否利用定时器来实现一个电子钟?
Copyright 2006
测量每1秒钟之内的按键按下次数
工作方式0: 13位定时/计数方式,因此,最多可以计到2的13 次方,也就是8192次。
工作方式1: 16位定时/计数方式,因此,最多可以计到2的16 次方,也就是65536次。
工作方式2和工作方式3:都是8位的定时/计数方式,因此, 最多可以计到2的8次方,也说是256次。
Copyright 2006
;开中断 ;开T0中断 ;运行T0 ;等待中断 ;定时到,输出取反 ;重新加载初战值
;中断返回
中断程序的主 程序和中断服 务程序的布局
定时器初始化
开定时器中断
Copyright 2006
实例二:利用方式1定时
题目:用定时器T1,使用工作方式1,在单片机的P1.0输出一个周期为2分钟、占 空比为1:1的方波信号。
Copyright 2006
MCS-51单片机的定时器/计数器(二)

基于单片机的厨房定时器可预置分秒倒计时装置

基于单片机的厨房定时器可预置分秒倒计时装置

基于51单片机的厨房定时器设计报告学院:信息光电子科技学院专业:光电信息科学与工程年级:姓名:学号:一、设计报告概述日常生活中熬个汤、煮个蛋……都需要预定一定的时间,设计一个厨房定时器,用户预设倒计时的时长,启动后系统开始倒计时,当时间为0后,启动蜂鸣器报警。

本设计报告中的厨房定时器,是以单片机(STC89C52),四位七段数码管、按键开关和蜂鸣器等组成的综合设计系统电路。

上电,电源指示灯点亮,数码管显示为0000,用户可以通过按键开关预设定时时间,启动后系统开始倒计时,当时间为0后,蜂鸣器报警。

数码管显示分、秒,计时时间上限为99分钟,按键开关以10分钟或1分钟单位调整时间。

图1 系统设计结构图本系统组成如图1 系统设计结构图所示,主要由五个部分组成。

报警电路 (蜂鸣器)1.AT89C52单片机——控制芯片AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。

AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。

图2 AT98C52引脚图2.时钟震荡电路AT89C52中有一个用于构成内部振荡器的高增益反相放大器,与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

如果使用石英晶体,电容使用30pF ±10pF,而如使用陶瓷谐振器建议选择40pF±10pF,可以使系统更稳定,避免噪音干扰而死机。

此设计采用的是12MHz的石英晶振。

设计论文基于51单片机的定时控制系统设计

设计论文基于51单片机的定时控制系统设计

目录摘要 (1)第1章方案设计 (2)第2章硬件设计 (3)2.1 单片机最小系统 (3)2.2 DS1302时钟电路 (4)2.3 按键电路 (4)2.4 中断触发电路 (5)2.5 LCD1602液晶显示电路 (5)2.6 继电器控制电路 (5)2.7 报警电路 (6)2.8 整机工作原理 (6)第3章软件设计 (7)第4章系统仿真测试 (8)4.1 仿真测试方法 (8)4.2 仿真测试结果 (8)总结 (9)致谢 (10)参考文献 (11)附录1 主要程序代码 (12)附录2 整机原理图 (29)摘要在这个智能社会,对以往的很多设备都进行了智能化改进,比如降温系统等都从手动改进到了自动控制。

在这里我们将常见的做饭工具电饭煲也进行了智能化控制,这里主要运用51单片机对原有非智能化电饭煲进行智能化控制,该系统具有定时功能,并且当时间到达定时时间时会自动报警,并且在报警一分钟后如果没有人操作电饭煲,会通过继电器将电饭煲的电源切断让并点亮绿灯提示它的工作完成。

关键词AT89C51;DS1302;继电器第1章方案设计采用51单片机可以实现一些功能不多的控制环境,即节约经济又达到了我们所需的职能化控制。

本课题主要从以下三个方面入手:一是实现时间显示功能,可以查看日期时间星期;二是实现定时功能,当时间到达设定值时可以报警提示,并通过继电器控制电饭煲的电源,并通过指示灯提示任务的完成;三是考虑时间的准确性,在这里主要使用DS1302芯片进行时间计时。

设计的总体方案如图1-1所示,由单片机最小系统、LCD1602液晶显示、继电器、DS1302时钟电路、报警电路、按键电路及5V直流供电电路组成。

为了实现智能控制和简化设计,选用了AT89C52、DS1302等集成芯片。

图1-1 基于51单片机的定时控制系统框图第2章硬件设计2.1 单片机最小系统1.振荡电路AT89C51是内部具有振荡电路的单片机,只需在18脚和19脚之间接上石英晶体,给单片机加工作所需直流电源,振荡器就开始振荡起来。

51单片机定时器设置

51单片机定时器设置

51单片机定时器设置51单片机,也被称为8051微控制器,是一种广泛应用的嵌入式系统。

它具有4个16位的定时器/计数器,可以用于实现定时、计数、脉冲生成等功能。

通过设置相应的控制位和计数初值,可以控制定时器的启动、停止和溢出等行为,从而实现精确的定时控制。

确定应用需求:首先需要明确应用的需求,包括需要定时的时间、计数的数量等。

根据需求选择合适的定时器型号和操作模式。

设置计数初值:根据需要的定时时间,计算出对应的计数初值。

计数初值需要根据定时器的位数和时钟频率进行计算。

设置控制位:控制位包括定时器控制寄存器(TCON)和中断控制寄存器(IE)。

通过设置控制位,可以控制定时器的启动、停止、溢出等行为,以及是否开启中断等功能。

编写程序代码:根据需求和应用场景,编写相应的程序代码。

程序代码需要包括初始化代码和主循环代码。

调试和测试:在完成设置和编程后,需要进行调试和测试。

可以通过观察定时器的状态和输出结果,检查定时器是否按照预期工作。

计数初值的计算要准确,否则会影响定时的精度。

控制位的设置要正确,否则会导致定时器无法正常工作。

需要考虑定时器的溢出情况,以及如何处理溢出中断。

需要考虑定时器的抗干扰能力,以及如何避免干扰对定时精度的影响。

需要根据具体应用场景进行优化,例如调整计数初值或控制位等,以达到更好的性能和精度。

51单片机的定时器是一个非常实用的功能模块,可以用于实现各种定时控制和计数操作。

在进行定时器设置时,需要注意计数初值的计算、控制位的设置、溢出处理以及抗干扰等问题。

同时需要根据具体应用场景进行优化,以达到更好的性能和精度。

在实际应用中,使用51单片机的定时器可以很方便地实现各种定时控制和计数操作,为嵌入式系统的开发提供了便利。

在嵌入式系统和微控制器领域,51单片机因其功能强大、使用广泛而备受。

其中,定时器中断功能是51单片机的重要特性之一,它为系统提供了高精度的定时和计数能力。

本文将详细介绍51单片机定时器中断的工作原理、配置和使用方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机的厨房定时器设计报告学院:信息光电子科技学院专业:光电信息科学与工程年级:姓名:学号:一、设计报告概述日常生活中熬个汤、煮个蛋……都需要预定一定的时间,设计一个厨房定时器,用户预设倒计时的时长,启动后系统开始倒计时,当时间为0后,启动蜂鸣器报警。

本设计报告中的厨房定时器,是以单片机(STC89C52),四位七段数码管、按键开关和蜂鸣器等组成的综合设计系统电路。

上电,电源指示灯点亮,数码管显示为0000,用户可以通过按键开关预设定时时间,启动后系统开始倒计时,当时间为0后,蜂鸣器报警。

数码管显示分、秒,计时时间上限为99分钟,按键开关以10分钟或1分钟单位调整时间。

图1 系统设计结构图本系统组成如图1 系统设计结构图所示,主要由五个部分组成。

报警电路 (蜂鸣器)1.AT89C52单片机——控制芯片AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。

AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。

图2 AT98C52引脚图2.时钟震荡电路AT89C52中有一个用于构成内部振荡器的高增益反相放大器,与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

如果使用石英晶体,电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10pF,可以使系统更稳定,避免噪音干扰而死机。

此设计采用的是12MHz的石英晶振。

图3 晶振震荡电路图3.按键控制电路本设计共有5个按键,功能依次为复位、启动、增加10分钟定时时间、增加1分钟定时时间、减少1分钟定时时间,由于按键较少,故直接连接I/O口。

复位键原理:当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。

随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。

根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。

单片机系统自动复位。

图4 复位电路图图5 按键电路图4.数码管显示电路数码管主要有共阴极和共阳极两种型号,共阴极的数码管就是公共端接地,共阳极的数码管就是公共端接电源。

此设计采用的是4位一体共阳数码管。

数码管显示分为静态显示与动态显示,此设计中采用的是动态显示。

动态显示是按位轮流点亮各位数码管的显示方式。

在多位显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个8位I/O口实现控制,形成段选线的多路复用。

而各位的共阳极分别由相应的I/O口线控制,实现各位的分时选能,在任一时段,只有一位数码管显示,其它的数码管都处于熄灭状态。

图6 数码显示电路图5.蜂鸣器报警电路蜂鸣器有无源蜂鸣器和有源蜂鸣器两种类型,区别在于有源蜂鸣器只需加入一个触发电平就可以发声,而无源蜂鸣器需要输入一定频率的脉冲才可以发声。

此设计中采用的是有源蜂鸣器,从而选择简单高效的有源蜂鸣器。

图7 蜂鸣器报警电路图三、设计图示1.整体仿真电路2.实物展示四、源程序(C语言)#include<reg52.h>//定义函数变量int sec;unsigned char beepset;unsigned char num;unsigned char n;unsigned char minu10;unsigned char minu;unsigned char sec10;unsigned char num;//定义数组,共阳数码管的段位码Unsigned char codetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbit start=P3^4; //将start定义为P3.4 启动计时sbit min1=P3^5; //将min1定义为P3.5 分加10 sbit min2=P3^6; //将min2定义为P3.6 分加1 sbit min3=P3^7; //将min3定义为P3.5 分减1 sbit beep=P3^0; //将beep定义为P3.0sbit led=P3^1; //将led定义为P3.1sbit min11=P2^0; //控制位选码sbit min22=P2^1;sbit sec33=P2^2;sbit sec44=P2^3;//预先定义显示子函数void disp();void delay(unsigned int ms){unsigned int i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}//键盘扫描子函数void key_scan(){if(P3!=0xff)//判断是否有按键按下{delay(2); disp();//延时处理,进行键盘消抖delay(2);disp();delay(2);disp();delay(2);disp();delay(2); disp();if(P3!=0xff)//再次判断按键{if(min1==0){ while(!min1);//按键2,功能为加10分钟sec=sec+600;if(sec>5940) sec=0;}else if(min2==0){ while(!min2); //按键3,功能为加1分钟sec=sec+60;if(sec>5940) sec=0;}else if(min3==0){ while(!min3);//按键4,功能为减1分钟sec=sec-60;if(sec<60) sec=0;}else if(start==0){ while(!start);//按键1,功能为开始倒计时TR0=1;}}}}//数码管扫描显示子函数void disp(){minu10=sec/600;//对计数值进行预处理,分别得出每个数码管显示的值minu=sec%600/60;sec10=sec%600%60/10;num=sec%600%60%10;switch(n)//扫描显示,分别选中位选码之后显示段选码,再熄灭跳出{case 0x01:min11=1;P0=table[minu10],delay(1);min11=0;break;case 0x02:min22=1;P0=table[minu],delay(1);min22=0;break;case 0x03:sec33=1;P0=table[sec10],delay(1);sec33=0;break;case 0x04:sec44=1;P0=table[num],delay(1);sec44=0;break;}if(n==0x04) { n=0; }else n++;}//主函数void main(){sec=0; //设置初值num=0;n=0;beepset=0;EA=1;ET0=1;EX0=1;TMOD=0x01;//使用定时器T0,工作模式1TH0=0x3c;//定时器高八位赋初值TH0=(65536-50000)/256,即50ms TL0=0xb0;//定时器低八位赋初值TH0=(65536-50000)%256while(1){if(TR0==0){key_scan();disp();}else if(TR0==1){if(num==20)//20*50ms,定时时间为1秒{num=0;if(sec!=0){ sec--; }if(sec==0){ beepset++;beep=0;if(beepset==10){beepset=0;beep=1;TR0=0;}}}}disp();}}void T0_time()interrupt 1 {TH0=0x3c;TL0=0xb0;num++;}void Ex()interrupt 0 {TR0=0;}附:电子元件个别说明(以下元件焊接要注意引脚的正确与否)(1)四位共阳数码管SR420561K :4位一体数码管,其内部段已连接好,引脚如图所示(正面朝自己,小数点在下方)。

a、b、c、d、e、f、g、dP为段引脚,1、2、3、4分别表示四个数码管的位。

1 a f23 b。

e d dp c g 4(2)PNP三极管:(3)其他:一般两脚的电子元件,正极一端较长。

相关文档
最新文档