单片机30秒倒计时
推荐-单片机的课程设计-30秒定时器

目录一、篮球计时器作用 (1)二、设计的具体实现 (1)1.系统概述 (1)1.1总体设计思路及方案 (1)1.2流程图 (2)1.3计数原理 (3)1.4定时器工作方式 (5)2.单元电路设计 (7)2.1 8051单片机 (7)2.2两个基本电路 (9)2.3八段数码管的驱动方式 (12)3.软件程序设计 (13)单片机的定时器设计一、篮球计时器的作用在篮球比赛中,规定了球员的持球时间不能超过24秒,否则就视为犯规。
本课程设计的“篮球竞赛24秒定时器”,可用于篮球比赛中对球员持球时间作24秒时间限制。
一旦球员的持球时间超过了24秒,它自动报警,从而判定此球员犯规。
二、设计的具体实现1.系统概述1.1总体设计思路及方案图1.1.1 总设计图流程图:最小系统,就是最简单的输出/输入构成,并且能实现最基本的运行条件,如应有供电、时钟附属电路等。
单片机的最小系统包括晶振电路复位电路和电源,这时最小系统基本组成当然还可以添加矩阵键盘数码管等。
此实验的原理是,利用单片机的最小系统,通过锁存器74HC573控制数码管,来实现30秒定时器的功能。
图1.1.2最小系统1.2计数原理80C51单片机内部设有两个16位的可编程定时器/计数器。
在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。
1.2.1定时器/计数器的结构16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。
每个寄存器均可单独访问。
这些寄存器是用于存放定时或计数初值的。
此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。
这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。
1.2.2定时计数器的原理当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,显然,定时器的定时时间与系统的振荡频率有关。
30秒倒数计时器设计课件

一.实验目的理解倒计时器工作原理,实现以中小规模集成电路设计计时器的方法,它是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
它是由时钟脉冲产生电路、计数电路、译码驱动及显示电路、报时电路及电源电路组成。
时钟脉冲采用555定时器构成多谐振荡电路产生,通过EDA软件Multisim10绘制了电子电路仿真原理图,并进行仿真,同时用万能板焊接制作了硬件实现电路。
二.系统原理框图图1系统原理框图一.1秒脉冲发生器:秒脉冲信号发生器需要产生一定精度和幅度的矩形波信号。
实现这样矩形波的方法很多,可以由非门和石英振荡器构成,可由单稳态电路构成,可以由施密特触发器构成,也可以由555点哭构成等。
不同的电路队矩形波频率的精度要求不同,由此可以选用不同电路结构的脉冲信号发生器。
本实验中由于脉冲信号作为计数器的计时脉冲,其精度直接影响计数器的精度,因此要求脉冲信号有比较高的精度。
一般情况下,要做出一个精度比较高的频率很低的振荡器有一定的难度工程上解决这一问题的办法就是先做一个频率比较高的矩形波震荡器,然后将其输出信号通过计数器进行多级分项,就可以得到频率比较低精度比较高的脉冲信号发生器,其精度取决于振荡器的精度和分级项数。
2.30秒减法计数器: 30秒减法计数器采用74LS192设计,74LS192是十进制同步加法|减法计数器,采用8421BCD码编码,具有直接清零异步置数功能。
3.控制电路按照系统的要求,电路应该完成以下4个功能;1)当操作直接清零按键时,要求计数器清零。
2)当启动按键闭合时,控制电路应封锁时钟信号CP(秒脉冲信号),同时计数器完成置数功能,显示器显示30秒字样。
当启动按键释放时,计数器开始减法计数。
3)当暂停连续开关处于暂停状态时,控制电路封锁计数脉冲,计数器停止计数,显示器显示原来的数,而且保持不变,当暂停连续开关处于连续状态时,计数器正常计数,另外,外部操作开关都应该采取消抖措施,以防止机械抖动造成电路工作不稳定。
单片机:手动设定倒计时时间,0报警

单⽚机:⼿动设定倒计时时间,0报警⾸先显⽰”时.分“,K1时增加,K2分增加(如果不修改时分默认5分钟:300秒倒计时)K3开始倒计时,显⽰秒倒计时,到时报警BEEPK4停⽌报警,并返回到”时分“状态,⼜可以设置倒计时时间,来回循环#include<reg51.h>#define uchar unsigned char;#define uint unsigned int;uchar position;uchar tt,bz=0,bza=1;uint second;uchar minute;uchar hour;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0--9sbit smg_q = P2^0;sbit smg_b = P2^1;sbit smg_s = P2^2;sbit smg_g = P2^3;sbit key1=P3^2;sbit key2=P3^3;sbit key3=P3^4;sbit key4=P3^5;sbit led1=P1^0;sbit led2=P1^1;sbit led3=P1^2;sbit led4=P1^3;sbit led5=P1^4;sbit led6=P1^5;sbit beep=P2^5;void keyscan();void display(unsigned char hour,unsigned char minute);void displaym(unsigned int second);void delay(unsigned int timer);void init();void main(){init();while(1){if(tt==20){ led1=~led1;led2=~led2;tt=0;if(second==0 && bz==1){while (bza==1){beep=0;delay(100);beep=1;break;}}elsesecond--;}keyscan();if (bz==0)display(hour,minute);elsedisplaym(second);delay(1);}}void keyscan(){ if(key1==0){TR0=0;hour++;if(hour==24)hour=0;delay(200) ;}if(key2==0){TR0=0;minute++;}if(key3==0){bz=1;bza=1;TR0=0;second=hour*3600+minute*60;if (second==0)second=300;delay(200) ;TR0=1;}if(key4==0){beep=1;bz=0;bza=0;minute=0;TR0=0;led1=1;led2=1;second=0;hour=0;minute=0;}}void init(){tt=0;bza=1;position=0;second=0;minute=0;hour=0;smg_q=1;smg_b=1;smg_s=1;smg_g=1;key1=1;key2=1;TMOD=0X01;TH0=0x4c;TL0=0x00;EA=1;ET0=1;TR0=0;}void t0() interrupt 1{TH0=0x4c;TL0=0x00;tt++;}void display(unsigned char hour,unsigned char minute){ P0=0XFF;switch(position){case0: smg_g=1;smg_q=0;P0=table[hour/10]; break;case1: smg_q=1;smg_b=0; P0=table[hour%10];if(tt>=10) P0&=0x7f; break;case2: smg_b=1;smg_s=0;P0=table[minute/10];break;case3: smg_s=1;smg_g=0;P0=table[minute%10];break;}position++;if(position>3)position=0;}void displaym(unsigned int second){ P0=0XFF;switch(position){case0: smg_g=1;smg_q=0;P0=table[second/1000]; break;case1: smg_q=1;smg_b=0; P0=table[second/100%10]; break;case2: smg_b=1;smg_s=0;P0=table[second/10%10];break;case3: smg_s=1;smg_g=0;P0=table[second%10];if(tt>=10) P0&=0x7f;break; }position++;if(position>3)position=0;}for(x=time;x>0;x--)for(y=110;y>0;y--);}更新:显⽰四位以上的秒时:显⽰最后四位的秒数,第⼀位数码管右侧的点亮。
倒计时秒表 单片机

目录一、设计目的 (1)二、设计任务及要求 (2)三、总体方案设计 (2)四、硬件电路设计 (3)1、各部分电路设计 (3)2、整体电路图 (8)五、软件设计 (9)1、程序流程图 (9)2、源程序 (9)六、仿真效果 (9)1、显示部分仿真效果 (9)2、报警装置仿真效果 (10)七、实物调试 (11)八、设计总结 (11)1、设计过程中遇到的问题及解决方法 (11)2、设计体会 (12)3、对设计的建议 (12)参考文献 (13)附录 (14)一、设计目的单片机课程设计中通过查阅资料、接口设计、程序设计、安装调试等环节,完成AT89S-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,是同学们将课堂上学到的理论知识与实际应用结合起来,并能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,增进对单片机的感性认识,加深对单片机理论方面的理解,掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通信等,强化单片机应用电路的设计与分析能力,提高学生在单片机应用方面的实践技能和科学作风,培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。
运用所学的知识和自身课外的拓展学习加深对专业课的理解和学习,锻炼综合运用电路设计及相关电子仪器、单片机软硬件结合的理论,结合生产实际分析和解决工作工程实际问题的能力,加固、加深和扩展有关电子类,汇编语言,相关电子电路和仿真软件方面的知识和能力。
通过本次课程设计,应加强培养如下能力:(1)加强自身独立的动手能力和思考解决问题的能力,提高创造能力。
(2)学会使用软件Proteus画原理图和仿真调试。
(3)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课的应用进一步的了解。
(4)掌握定时器、外部中断的设置和编程原理。
篮球竞赛30秒倒计时电路设计

篮球竞赛30秒倒计时电路设计摘要随着信息时代的到来,电子技术在社会生活中发挥着越来越重要的作用,运用模电和数电知识设计的电子产品成为社会生活不可缺少的一部分,特别是在各种竞技运动中,计时器成为检验运动员成绩的一个重要工具。
要实现30秒倒计时的功能,必须要有一个脉冲,本设计是以555构成震荡电路,再通过74LS161十分频来产生周期为1秒的脉冲。
计数部分用74LS192芯片来实现,192芯片是8421码计时的,符合30秒读数的需要。
译码部分采用74LS248芯片,74LS248是把8421BCD码经过内部作用和电路“翻译”成七段(a,b,c,d,e,f,g)输出,然后直接推动LED,显示十进制数。
显示部分采用共阴极七段数码管,整个线路就是把以上几个主要的部分用导线连接焊接起来。
该电路简单,无需用到晶振,芯片都是市场上容易购得的。
设计功能完善,能实现直接清零、启动和暂停/连续计时,还具有报警功能。
关键词:倒计时;译码显示;光电报警目录1 引言 (1)2 设计任务及要求 (2)2.1篮球竞赛30秒计时器(基本要求) (2)2.2设计任务及目标 (2)3 电路设计原理与设计电路 (2)3.1 设计原理 (2)3.2设计方案 (3)3.3单元模块 (4)3.3.1时钟模块 (4)3.3.2 8421BCD码递减计数器模块 (8)3.3.3 控制电路 (11)3.3.4 译码显示模块 (11)3.3.5 报警电路模块 (13)4 电路仿真、安装与调试 (14)4.1 电路仿真 (14)4.2 电路制版与焊接 (15)4.3 电路安装 (15)4.4 电路调试 (15)5 结论 (15)参考文献 (16)附录A 原件清单 (16)附录B 实物图 (17)附录C PCB图 (18)篮球竞赛30秒倒计时电路设计1 引言随着科学技术与计算机应用的不断发展,在许多领域中计时器均得到普遍应用,诸如在体育比赛,定时报警器、游戏中的倒时器,交通信号灯、红绿灯、行人灯、交通纤毫控制机、还可以用来做为各种药丸,药片,胶囊在指定时间提醒用药等等,由此可见计时器在现代社会是何其重要的。
数电课程设计-30秒倒计时器综述

30秒倒计时计数器设计——数字电子计数基础课程设计学院:计算机学院专业班级:通信工程10-2班时间:2013年1月7日目录设计要求 (3)正文一、倒计时器组成及原理 (3)1.1倒计时计数器组成 (3)1.2工作原理 (3)二、拟定设计方案 (4)2.1用Multisim进行仿真设计 (4)2.2设计实现数码管显示 (4)2.3设计555定时振荡实现秒振荡发生功能 (4)2.4设计实现减法计数功能 (5)2.5设计实现二位数减法计数功能 (5)2.6设计实现反馈电路实现30秒计数功能 (5)2.7设计实现控制电路实现启动、清零/复位和暂停/继续计数控制电路 (5)2.7.1清零/复位电路 (5)2.7.2暂停/继续计数电路 (6)2.7.3启动电路 (7)2.8设计实现闪烁报警电路 (8)三、功能说明总结 (9)四、课程设计小结 (9)参考文献 …………………………………………………………………………………10 附录:一、电路原理图 .................................................................................11 二、元器件明细表 (11)设计要求:设计30秒倒计时计数器。
30秒倒计时器的设计功能要求包括: 1、具有30秒倒计时功能;2、设置外部操作开关,控制计时器的直接清零/复位、开始和暂停/连续计数功能;3、计时器计时间隔为1秒;4、计时器递减计时到零时,数码显示器不灭灯,保持并闪烁光电报警。
5、计时器暂停计数时,数码管闪烁提醒;正文:一、倒计时器组成及原理1.1倒计时计数器组成倒计时计数器选用TTL 集成电路,主要由秒定时振荡发生器、减法计数器、译码器、七段数码显示器、控制电路、闪烁报警电路等组成,在电路工作过程中,电路能够通过控制器实现开始计数、清零/复位、暂停/继续计数等功能,在倒计时结束保持00状态并不断闪烁提示报警,原理图如下:倒计时计数器原理组成框图秒定时振荡 发生器减法计数器 数码管译码器 七段数码管显示控制电路闪烁报警电路图11.2工作原理当电路工作时,由555定时器组成多谐振荡器,选取适当的电容使振荡周期为1s;用两片减法计数器芯片级联组成二位数计数器,用七段数码管显示计数;控制电路通过控制减法计数器的控制端实现对电路保留、启动、清零/复位和暂停/继续计数功能的控制;利用JK 触发器的翻转状态特性和译码器BI/RBO端的控制实现闪烁报警功能。
单片机课程设计倒计时秒表.

、设计目的此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。
通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验以后从事生产和科研工作打下一定的基础。
本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。
本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。
掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。
提高学生在单片机应用方面的实践技能和科学作风 ; 培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。
用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;锻炼综合运用电路设计及相关电子仪器、单片机软硬件结合的理论,结合生产实际分析和解决工作工程实际问题的能力,加固、加深和扩展有关电子类,汇编语言,相关电子电路和仿真软件方面的知识和能力。
通过本次课程设计,应加强培养如下能力:(1)加强自身独立的动手能力和思考解决问题的能力,提高创造能力;(2)学会使用软件 Proteus 画原理图和仿真调试。
(3)学会基本焊接电路板的技能通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
、设计要求1、可以以实现正常秒表的所有功能,包括启动、暂停、复位等;2、可以自由设定倒计时时间(10s、20s、30s・・・),并进行倒计时;3、显示方式自选;4、任选一款 51 单片机;5、扩展功能:在秒表的基础上增加时钟功能,倒计时完成时加入报警单元,如声音、灯光等。
单片机30秒倒计时

天津工业大学电子CAD课程设计报告书三、总体方案)本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现30秒倒计时程序的编写,包括利用中断实现1秒的定时及30秒的倒计时。
具体设计:通过AT89C51型号单片机,由P0 I/O引脚分别控制7SEG–MPX2–CA型号数码管,通过单片机的和控制选通数码管控制十位和个位,达到显示30秒倒计时的目的。
30秒倒计时,到0时1KHZ 声音报警,LED 2 秒闪烁一次。
4 秒后声光停图1 30秒倒计时总体电路设计硬件设计方法AT89C51的芯片概述AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其工作电压在-5V,一般我们选用+5V电压。
外形及引脚排列如图2所示:AT89C51主要特性图2:AT89C51的核心电路框图。
LED数码管显示器概述本设计中采用的是7SEG–MPX2 –CA型号7段共阳数码管,它是一种半导体发光器件,其基本单元是发光二极管。
实物如图3所示:图3 7SEG–MPX2–CA型号数码管图5 程序框图软件设计方法;定时/计数器初值计算(1)本电路应用TIMER0 MODE 16位计数器的计时中断法。
(2)12M的晶振每秒可以产生1M个机器周期,1秒等于1000000微秒,而每一计时脉冲是1微秒,因此需输入100000个计时脉冲,方可达到1秒的时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
天津工业大学电子CAD课程设计报告书三、总体方案本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现30秒倒计时程序的编写,包括利用中断实现1秒的定时及30秒的倒计时。
具体设计:通过AT89C51型号单片机,由P0 I/O引脚分别控制7SEG–MPX2–CA型号数码管,通过单片机的p2.0和p2.1控制选通数码管控制十位和个位,达到显示30秒倒计时的目的。
30秒倒计时,到0时P1.0 1KHZ 声音报警,P1.1 LED 2 秒闪烁一次。
4 秒后声光停图1 30秒倒计时总体电路设计3.3.1硬件设计方法AT89C51的芯片概述AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其工作电压在4.5-5V,一般我们选用+5V电压。
外形及引脚排列如图2所示:AT89C51主要特性图2:AT89C51的核心电路框图LED数码管显示器概述本设计中采用的是7SEG–MPX2 –CA型号7段共阳数码管,它是一种半导体发光器件,其基本单元是发光二极管。
实物如图3所示:图3 7SEG–MPX2–CA型号数码管图5 程序框图3.3.2软件设计方法定时/计数器初值计算(1)本电路应用TIMER0 MODE 16位计数器的计时中断法。
(2)12M的晶振每秒可以产生1M个机器周期,1秒等于1000000微秒,而每一计时脉冲是1微秒,因此需输入100000个计时脉冲,方可达到1秒的时间。
本设计中,设定中断每次溢出时间50ms。
(3)由上式得知,循环20次即可达到1秒定时,即:N=t/Tcy=0.05s/0.000001=5000X=65536-5000=15536=3CB0H(4)由上式得知5000个脉冲,首先需设定TL0=3CH,TH0=0B0H,此时第1次只要输入5000个脉冲输入,就会溢出;第2次至第20次,则需每1000000个计时脉冲,定时1秒。
(5)上电时,显示30,开始倒数计时按下开关实现复位。
四、原理图仿真4.1软件调试过程4.1.1 系统调试工具keil C51Keil C51 仿真器是一款利用KEIL C51 的IDE 集成开发环境作为仿真环境的廉价仿真器,是利用SST公司具有IAP功能的单片机SST89C58制作而成,主要是利用了SST89C58的IAP 功能,所谓IAP功能是In application program 的英文缩写,是在应用编程的意思,通俗一点讲就是:它可以通过串口将用户的程序下载到单片机中,可以通过串口对单片机进行编程。
它之所以具有这种功能,实际上它有两块程序flash区,其中一块flash中运行的程序可以更改另外的一块程序flash区中的程序,正是利用这一特性才用它作成了仿真器,我们把仿真器的监控程序事先烧入SST89C58,监控程序通过SST89C58的串口和PC通讯,当使用KEIL C51的IDE环境仿真时,用户的程序通过串口被监控程序写入flash程序区中,当用户设置断点等操作仿真程序时,flash程序中的用户程序也在相应的更改,从而实现了仿真功能。
调试的主要方法:1. 启动Keil c512. 新建一个工程。
Project菜单—〉New project ,选择好我们要保存的文件夹后,键入Frist 保存。
接着弹出CPU类型选择框,我们选择最常用的AT89C51,按确定。
3. 在工程中加入文件。
新建一个文件,文件菜单File—〉New,我们再选择:文件菜单File—〉Save As? (另存为)弹出对话框后,我们文件名框中键入First.c(注意文件后缀名是 .ASM)保存.ASM文件建好啦。
现在我们把文件加入到工程中去。
点击Target 1前面的+号,右键单击Source Group 1—〉选择Add Files to Group,Source Group 1,选择添加 Add。
编译运行,检查程序是否有错误。
4.1.2 系统调试工具PROTEUSProteus是一款EDA软件,该软件具有模拟电路仿真,数字电路仿真,单片机以及外围电路组成的系统的仿真,RS-232动态仿真,I2C调试器,SPI调试器,键盘和LCD系统的仿真,以及各种虚拟仪器,如示波器,逻辑分析仪,信号发生器等。
该软件目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、ARM以及各种外围芯片。
该软件还支持大量的存储器和外围芯片,所以,该软件是一款集单片机和SPICE分析于一身的仿真软件。
调试方法:首先用Keil软件将C编译成HEX文件,打开Keil软件,新建一个文档,输入C 程序,保存成C格式文件,然后新建工程,连接单片机为AT89C51,选择Options for target,选择OUTPUT子菜单,在Create HEX Fi前打钩,DeBug子菜单中,Settings选择ProteusVSMSimulator,USE前打钩,再次运行文件,成功后在目录下会生成HEX文件,打开Proteus软件,或直接点击DSN文件,双击单片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开始,进行调试。
1、启动2、暂停3、倒计时完成五、元器件清单序号元件类型元件参数元件个数备注1 芯片AT89C51 12 晶振12M 13 电源接口5V 14 电容100PF 35 排阻10K 16 电阻300 27 电阻10K 18 排阻10K 19 数码管7SEG–MPX2–CA 1 共阳10 电解电容2200u 111 电解电容10u 112 蜂鸣器Buzzer 113 发光二极管D1、D2 2六、PCB版图图6 仿真图附录2软件程序STRT EQU P2.5STP EQU P2.6CLRR EQU P2.7ORG 00HAJMP MAINORG 0BHAJMP T0INTORG 1BHAJMP T1INTORG 30HMAIN: MOV SP,#60HMOV DPTR,#TABMOV TMOD,#11H ;T0、T1定时方式1 SETB EASETB ET0SETB ET1MOV TH0,#3CH ;50ms定时常数MOV TL0,#0B0HMOV TH1,#0FEH ;0.5ms定时常数MOV TL1,#0CHMOV R0,#20 ;20x50mS=1SMOV R1,#4 ;蜂鸣4SMOV R4,#30 ;倒计时30Sk1: LCALL DISPJB STRT,K2LCALL DISPJNB STRT,$-3AJMP STARTk2: JB STP,K3LCALL DISPJNB STP,STOPK3: JB CLRR,K1LCALL DISPJNB CLRR,CLEARAJMP K1START: SETB TR0AJMP K1STOP: CLR TR0AJMP K2CLEAR: CLR TR0MOV R4,#0AJMP K1T0INT: MOV TH0,#03CH; ;定时中断子程序。
重装定时常数MOV TL0,#0B0H;DJNZ R0,T0INTR ;50msX20=1S,未满20次,跳出中断子程序MOV R0,#20CJNE R4,#0,T0INT1AJMP T0INT2 ;倒计时间到,跳转T0INT1: DEC R4RETIT0INT2: CPL P1.1 ;LED光报警DEC R1CJNE R1,#0,T0INT3 ;报警时间未到,继续CLR TR1ACALL DISPAJMP $-2T0INT3: ACALL ALARMAJMP T0INTRT0INTR: RETIT1INT: MOV TH1,#0FEH ;P1.0 0.5ms高低电平变换一次,频率即为1KHz MOV TL1,#0CHCPL P1.0RETIALARM: SETB TR1RETDISP: MOV A,R4MOV B,#10DIV AB ;当前值除以10MOV 20H,A ;得出的商送给十位MOV 21H,B ;得出的余数送给个位MOV A,20H ;十位显示MOVC A,@A+DPTRMOV P0,ASETB P2.1LCALL DELAYCLR P2.1MOV A,21H ;个位显示MOVC A,@A+DPTRMOV P0,ASETB P2.0LCALL DELAYCLR P2.0RET ;子程序返回DELAY: ;误差 0usMOV R6,#10DL0:MOV R5,#50DJNZ R5,$DJNZ R6,DL0RET ;子程序返回TAB: DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳极0-9显示代码DB 92H,82H,0F8H,80H,90HEND第10页,共11页。