中断触发定时器:99秒计时+99秒倒计时
99秒倒计时器
单片机课程设计摘要近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
At89s52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
模拟多通道压力系统是利用压力传感器采集当前压力并放映在显示器上,它可以分析压力过量程,并发出报警。
并采用电子秤原理可根据输入单价准确的计算出物体的金额。
本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
关键词:AT89C51 LED数码管显示器晶体振荡器目录摘要 (I)第一章概述 (1)1.1 课程设计目的 (1)1.2 总体设计 (1)第二章硬件电路 (2)2.1各个元件介绍 (2)2.1.1 AT89C51的芯片概述 (2)2.1.2 LED数码管显示器概述 (3)2.2 其他元器件介绍及参数选择 (6)2.2.1 单片机的最小系统与复位电路 (6)2.2.2显示电路的设计 (7)第三章软件部分 (9)3.1 相关软件介绍 (9)3.1.1 Keil C软件 (9)3.1.2 Proteus软件 (9)3.2 软件设计 (10)3.2.1 程序框图如图 (10)3.2 .2 软件程序 (11)第四章软件调试 (14)4.1 系统调试工具keil c51 (14)4.2 PROTEUS仿真 (14)第五章电路焊接与调试 (17)5.1 电路板的焊接 (17)总结 (19)参考文献 (20)致谢 (21)第一章 概述1.1 课程设计目的 课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。
CD- 99.99秒表
CD4060功能/管脚排列图
16脚:VDD电源;8脚:接地端;
11、10脚:外接R、C组成多谐振荡电路,9脚:输出振荡信号;
7脚:24分频输出;5脚: 25分频输出;4脚: 26分频输出; 6脚:27分频输出; 14脚:28分频输出;13脚:29分频输出; 15脚:210分频输出;1脚:212分频输出;2脚:213分频输出; 3脚:214分频输出;
VDD
YA YB YC YD YE YF YG
VDD
YA YB YC YD YE YF YG
VDD
U1
U2
U5
YA YB YC YD YE YF YG
U15
Key = B
4511BP_5V
~LE ~BI ~LT VSS A0 A1 A2 A3
4511BP_5V
~LE ~BI ~LT VSS A0 A1 A2 A3
U12
U11
U10
U9
R5 1kΩ
U13
74LS00D
RPACK 7
R4 300 Ω
RPACK 7
R3 300 Ω
RPACK 7
R2 300 Ω
RPACK 7
R1 300 Ω
J2
J1 Key = A
R6 1.5kΩ
C4 560pF
5.1nF C3 R12 470Ω
VDD
YA YB YC YD YE YF YG
U4
VDD 1A 1B 1C 1D 2A 2B 2C 2D
4518BP_5V
1CLK ~1CLK 1RST 2CLK ~2CLK 2RST
U3
XFG1
VSS
VSS
计时信号(0.001~0.01s)参考电路
单片机99S倒计时课程设计
if(temp!=0x0f) //判断是否有键按下
{
delayms(10); //延时,消除抖动
if(temp!=0xf0)//判断是否有键按下
{
temp=P1; //重新读取P1口
switch(temp)//判断哪个键按下
{
case 0xeb:
(4)中断子函数:
void T0_time() interrupt 1//定时器0中断函数
{
TH0=(65536-50000)/256;//重装初值
TL0=(65536-50000)%256;
numt0++;//50ms中断一次
}
(5)初始函数:
void init() //初始化函数
{
TMOD=0x01;//设置定时器0为工作方式1(0000 0001)
#define uint unsigned int
sbit sw=P0^6;//十位位选
sbit gw=P0^7;//个位位选
sbit led=P3^7;//LED灯
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};//编码定义
二、设计的实现过程······································3
1、矩阵电路····················································4
2、数码显示和驱动电路·······································4
单片机99秒计时器
1设计背景单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
计时器广泛应用于实际生活当中,有倒计时器和计时器,我们本次设计为计时器。
计时器广泛应用于各种比赛当中用来计时,往往都精确到百分秒的精度,其次也应用于计时闹钟等。
生活中计时器比较常见,而设计计时器是很具有实际意义的。
2 硬件设计:2.1 99秒计时器的总体设计方案利用单片机的定时器设计一个秒计时器,其中设有一个按键,当第一次按下按键时,开始计时,第二次按下按键时,停止计时,送入P0和P2端口显示,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。
第三次按下按键时使定时器清零,等待下一次按键。
本设计中需要一个时钟电路,一个复位电路和一个控制电路来实现整个电路的运行,实现00到99的循环计时。
2.2 99秒计时器的组成及其原理图秒计时器由以下几个部件组成:单片机AT89C51、两个静态数码显示、一个按钮等其它组件。
该电路的工作原理:AT89C51从稳压电路中获得稳定的+5V电压,接到VCC 端,提供稳定的电压;P2、P0口通过电阻接到显示电路的七段数码管的 a b c d e f g 端口上,利用数码管显示数字;RST接复位电路,实现电路的复位;XTAL1、XTAL2接晶振电路;整个电路实现循环动态显示数字00~99.2.3 AT89C51简单介绍及引脚说明AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位
标准文档9创新实践实训报告学院信息电子技术学院专业电子信息工程班级14学籍号姓名指导教师蒋野2017年06月29日单片机控制秒表电路一、电路工作原理1.工作原理用STC89C52设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“暂停”键S2和一个“继续”键S3。
为使本设计系统更加完善,可以引入一个“复位”键S1,以方便对系统的控制。
如图。
本系统采用STC89C51单片机为中心器件,利用其定时器/计数器定时计数的原理,结合硬件电路如电源电路,晶振电路,复位电路和显示电路,以及一些按键电路等来设计计数器,将软硬件有机结合起来,其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,硬件系统利用Protues强大的功能来实现,简单易于观察,在仿真中就可以观察到实际的工作状态。
2.元器件作用(1)STC89C52单片机在电子行业中有着广泛的应用。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
(2)时钟电路作用是为电路提供唯一的时钟信号。
(3)复位电路外接一个开关,控制电路复位,接通电源电路直接复位,如果没有开关亦可将复位电路引出导线接电源后断开。
(4)本设计要求使用共阳极的数码管,如下是共阳极的数码管的0-9编码:0xc0,0x92,0x82,0xf8,0x80,0x90,0xf9,0xa4,0xb0,0x99.(5)控制电路:S2按下电路停止计时,S3按下电路恢复计时。
二、程序流程图主程序流程图三、检测安装与调试1.元件检测共阳极数码管检测管脚序号利用万用表二极管档红表笔接一个抵住两个管脚,利用另一个接触其他,找出1,2两个管脚,继续分别找出A,D,C,D,E,F,G,Dp管脚。
0-99秒计时器的单片机设计
目录1 引言 (2)1.1 AT89C51单片机及其引脚说明 (2)1.1.1 AT89C51简单介绍 (2)1.1.2 引脚说明 (3)2系统硬件电路设计 (5)2.1 秒计时器的设计要求 (5)2.2 秒计时器的组成及其原理图 (5)2.3系统板硬件连线 (6)3 系统软件设计 (8)3.1 源程序代码 (8)3.2 程序流程图 (8)3.2.1 主程序流程图 (9)3.2.2 中断程序流程图 (10)4 课程设计心得会 (11)参考文献 (11)附录A (12)附录B (12)1 引言单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
1.1 AT89C51单片机及其引脚说明1.1.1 AT89C51简单介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
倒计时报警器电路设计
成绩课程设计说明书题目:倒计时报警器电路设计课程名称:数字电子技术学院: 电子信息与电气工程学院学生姓名:学号:************专业班级:自动化2011级2班指导教师:**2013年6 月课程设计任务书倒计时报警电路设计摘要:设计制作了一个倒计时报警器控制电路,该电路倒计时的时间范围为1~99秒,并且倒计时时间可调;当倒计时时间结束时,电路发出光报警信号,报警时间长度为5秒,报警信号用红色LED表示。
控制电路主要由:555定时器、十进制可逆计数器74LS192、共阳极驱动器74LS47、共阳极数码管、四输入与非门74LS00、拨码开关等组成。
555定时器构成多谐振荡器,产生振荡周期为1秒的时钟信号;74LS192构成十进制计数器,并对时钟信号进行计数;74LS47可以将输入的BCD 代码译成共阳极数码管所需的驱动代码。
关键词:555定时器;计数器;译码器;数码管;电路仿真目录1.设计背景 (1)1.1 Multisim 10的定义及对PCB的认识 (1)1.2 了解数字电路系统和数字电路的定义和组成 (1)2. 设计方案 (1)2.1 任务分析 (1)2.2 方案论证 (2)3. 方案实施 (2)3.1 原理图设计 (2)3.2 仿真电路 (4)3.3 PCB板制作 (5)3.4 安装与调试 (5)4. 结果与结论 (6)5. 收获与致谢 (6)6. 参考文献 (7)7. 附件 (7)7.1 电路原理图 (7)7.2 PCB布线图 (8)7.3 实际电路图 (8)7.4 元器件清单 (9)1. 设计背景1.1 Multisim 10的定义及对PCB的认识Multisim是一款专门用于电子线路仿真与设计的END工具软件。
Multisim 10是一个完整的集成化设计环境,他将计算机仿真和虚拟仪器技术完美的结合在一起,为电子线路的仿真和设计提供了良好的环境。
PCB不仅仅是固定或装配各种电子零件的基板,更重要的是实现各种电子元器件的电气连接或电绝缘,提供电路要求的电气特性(特性阻抗等)。
基于单片机的00秒_99秒的秒表设计说明
课程设计题目:用单片机AT89C51设计一个2位的LED数码显示作为“秒表”专业: 12自动化(2)班学号: 3姓名:华指导教师:蜀阳日期: 2015年6月17日目录一、设计题目和要求:1二、设计目的:1三、设计容:2四、课程设计心得体会18五、参考文献18一、前言21世纪是一个电子技术和电子元件有更大发展的世纪。
回顾百年来电子技术和电子工业发展的成就,举世瞩目。
作为一个电气专业的大学生,我们不但要有扎实的基础知识、课本知识,还应该有较强的动手能力。
现实也要求我们既精通电子技术理论,更要掌握电子电路设计、实验研究和调试技术。
课程设计就是一个理论联系实际的机会。
本次设计主要完成具备基本功能的电子秒表的理论设计,电子秒表是重要的记时工具,广泛运用于各行各业中。
作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点,不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。
在设计中应用到数码管,数码管主要用于楼体墙面,广告招牌、高档的DISCO、酒吧、夜总会、会所的门头广告牌等。
特别适合应用于广告牌背景、立交桥、河、湖护栏、建筑物轮廓等大型动感光带之中,可产生彩虹般绚丽的效果。
用护栏管装饰建筑物的轮廓,可以起到突出美彩亮化建筑物的效果。
事实证明,它已经成为照明产品中的一只奇葩,绽放在动感都市。
二、设计题目和要求:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。
设计一个“复位”键,按下“复位”键后,秒表从0开始计时。
三、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术与外围芯片的工作原理与控制方法;3.进一步掌握单片机程序编写与程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理与使用方法。
最长99s倒计时
单片机课程设计一、本设计任务及完成的功能1、本设计任务:实现最长99S的倒计时功能;利用数码管或液晶屏显示数字;利用按键可以设置倒计时时间;设置倒计时开始启动键;时间到,声(光)报警,示意倒计时时间到。
2、完成的功能:实现了0~99S之间任意整数秒的倒计时,通过矩阵按键中0~9数字键设置倒计时间,按下*或#键开始倒计时,当倒计时间结束时,LED灯亮,停止倒计时。
二、倒计时器硬件设计1、元器件A T89C51单片机1个、两位动态共阴数码管1个、9个引脚的排阻、1k电阻3个、12MHz 晶振1个、33pF电容2个、10uF极性电容1个、独立按键1个、4行3列矩阵按键1个、LED指示灯1个、电源和地若干2、系统的硬件构成及功能最长99秒计时器的原理框图如图1所示。
图1 99秒计时器系统原理框图系统硬件连线:(1)P1口接矩阵按键(2)P2口接动态数码管的8个段选(3)P0^6、P0^7分别接动态数码管的十位和个位(4)P3^7接LED指示灯(5)XTAL1和XTAL2接晶振(6)RST接复位电路三、系统的软件设计本系统的软件系统主要可分为主程序设计和定时中断程序。
系统主程序设计主程序包括主函数、矩阵按键扫描函数、对矩阵按键扫描进行相应处理函数、动态数码管显示函数等。
1、矩阵按键扫描函数ankey()矩阵按键的原理和方法:矩阵按键的两端都与单片机的I/O口相连,在检测时,人为的通过单片机I/O口送出低电平。
检测时,先送一列为低电平,其余几列全为高电平(这时就确定了列数),然后立即轮流检测一次个行是否有低电平,若检测到某一行为低电平(这时就确定了行数),则可以确定单前被按下的键是哪行哪列。
同样,用这种方法轮流检测各行各列,这样就可以检测所有按键,当有键按下时,就可判断是哪个键被按下。
当然,也可以将行线置为低电平,扫描列是否有低电平。
本设计用的是4行3列矩阵按键,它接A T89C51单片机的P1口,接法如图所示:当按下0~9数字键时,会产生相应数值赋给矩阵按键扫描函数中以定义的参数key,当按下#或*键时,会分别产生11或10赋给key。
【毕业设计】基于单片机控制的9999秒倒计时器
西安邮电学院毕业设计(论文)题目:基于单片机控制的9999秒倒计时器院(系):专业:班级:学生姓名:导师姓名:职称:摘要近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。
并采用电子秤原理可根据输入单价准确的计算出物体的金额。
本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
【关键词】单片机;AT89S51; LED数码管显示器;keil C51;倒计时器;三极管C8850基于单片机控制的9999秒倒计时器Summary Permeate in the social realm along with the calculator in recent years, single slice the application of the machine just at constantly alignment thorough, arouse a traditional control an examination a day a new moon benefit renewal in the meantime.In solidly the hour the examination the single slice that controls with auto the machine the application the system, single slice machine usually Be a core parts to use, only single slice the machine aspect knowledge is not enough, return should according to concrete the hardware structure, and aim at concrete application the software of[with] the object characteristics combine to make perfect. Imitating many passage pressure systemses is to make use of pressure to spread the feeling machine to collect current pressure combine the reflection is on the display, it can analyze the pressure surfeit distance, erupting to report to the bine the adoption electronics steelyard principle can according to input the amount of money that the unit price computes an object accuratelyThis thesis discuss that pour the design and creation of the timer in brief, for pour four LED figures displays in the timer to say, I am for the sake of the simplification circuit,decline low cost, adopt to take software as the connect of lord a people's method, do not use specialized hardware to translate the code machine namely, but adopt the software procedure to carry on translating code. 【Keyword 】 single slice machine;AT89 S51; The LED figures tube display; Keil C51;Pour timer;Triode transistor C8850目录摘要...........................................................................1 第1章方案论证...............................................................1 1.1 开发意义.....................................................................1 1.2 功能说明.....................................................................1 第2章硬件电路...............................................................2 2.1 单片机概述..................................................................2 2.2 MCS-51系列单片机介绍 (8)2.3 AT89S51芯片概述.........................................................13 2.4 LED数码管显示器概述......................................................15 2.5 单片机最小系统与复位电路设计..........................................18 2.6 元器件筛选与检测.........................................................20 第3章系统调试............................................................28 3.1 硬件调试..................................................................28 3.2 软件调试.................................................................. 2 结束语...........................................................................30 致谢..............................................................................30 参考文献........................................................................30附录1 源程序..................................................................31 附录2 电子元器件 (31)前言在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。
99秒表程序
99秒表程序99秒表程序--使99秒秒表在上电后,具有:开始时显示“00”;利用CPU15脚外接按键作控制;第一次按下按键后启动计时;第二次按下按键后停止计时;第三次按下按键后计时归零;最大计时为99秒。
计时误差小于0.5秒,显示稳定。
/******99 秒表*******/、/**---------------------------------最新文件信息--------------------------------------------------- 功能:99 秒表作者:单位:时间:描述:晶振11.0952MHz;数码管采用共阴;**-------------------------------------------------------------------------------------------------******************************************************************* ***********/#includereg52.h#define uint unsigned int#define uchar unsigned charuchar code table_duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f};//数码管显示0~9;/******单片机接口***********/99秒表程序--使99秒秒表在上电后,具有:开始时显示“00”;利用CPU15脚外接按键作控制;第一次按下按键后启动计时;第二次按下按键后停止计时;第三次按下按键后计时归零;最大计时为99秒。
计时误差小于0.5秒,显示稳定。
sbit key=P3^5;//按键#define duanma P0//段码#define weima P2//位码/******全局变量************/uchar miao=0;//秒uchar flag=0;//秒中间变量uchar keynum=0;//按键次数bit key_flag=0;//按键标志/*****中断初始化**********/void InitTimer0(){TMOD = 0x01;//工作方式TH0 = 0x4C;//高8 位TL0 = 0x00;//低8 位EA = 1;//总中断ET0 = 1;//允许定时器0 中断TR0 = 0;//启动定时器0}/**********延时函数**********功能:延时若干ms入口参数:t出口参数:无99秒表程序--使99秒秒表在上电后,具有:开始时显示“00”;利用CPU15脚外接按键作控制;第一次按下按键后启动计时;第二次按下按键后停止计时;第三次按下按键后计时归零;最大计时为99秒。
单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位
(4)复查电路:重新检测电路,利用万用表电流档,检测电路电流,发现电路无电流,检查40引脚VCC,发现单片机40引脚与插座短路,接触不良导致,陆续检查其他引脚。发现还有部分引脚短路。
(5)继续检查电路,直至数码管显示数字为止。
结果显示,秒表运行正常。按照预期实现了99s计时、暂停以及继续的功能。
附件
1.利用单片机完成一定的任务,你的创意(创新)是什么?
我的创意就是电路的布局,实验操作起来与仿真不同,需要注意很多细节,例如原件检测。我的电路布局既节省空间,又不影响电路结构。
2.程序
#include<reg52.h>
sbit W=P1^4;
sbit H=P1^6;
unsigned char msec,sec;
void delay(unsigned char i)
{
unsigned int j,k;
for(k=0;k<i;k++)
for(j=0;j<255;j++);
}
void To_INT(void) interrupt 1
2.元器件作用
(1)STC89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
9
创新实践实训报告
学院
信息电子技术学院
专业
电子信息工程
(完整word版)00-99秒倒计时器程序及仿真
题目一:秒计时器功能要求:1.系统上电,数码管显示“99”.2.每隔1秒,数码管显示减1,减小到“00”后,数码管显示“00”,同时继电器开启。
3.按键的定义如下:“暂停/开始”按键S13:当S13按下时,秒表计时停止,数码管显示当前数值,再次按下时恢复计时。
“设置”按键S14:当停止计时时,按下S14键,可以设置秒数。
按键S1-S10分别对应数字0-9,先输入数字为十位数,后输入数字为个位数,若输入数字大于99,数码管显示“99”。
设置结束后,按下S13键启动计时。
“重新开始”按键S15:当S15按下时,数码管显示为“99”,秒表从新开始计时。
#include<reg51.h>#include<intrins.h>unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned char code jp[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};unsigned char a[2]={0,0};unsigned char int_time;unsigned char second=99;unsigned char c;bit zt;bit sz;unsigned char count;unsigned char y;unsigned char x;unsigned char count2;//函数功能:数码管动态扫描延时void delay(unsigned char s){unsigned char i,j;for(i=0;i<s;i++)for(j=0;j<125;j++);}//数码管显示子程序void DisplaySecond(unsigned char k){P2=0xfe;P0=Tab[k/10];delay(1);P2=0xfd;P0=Tab[k%10];delay(1);}//扫描键盘的值void sm(void){ unsigned char k,j,n,a,m;m=0xfe;P1=0xf0;k=P1;k=k&0xf0;if(k!=0xf0){ delay(5);if(k!=0xf0){for(j=0;j<4;j++){ P1=m;n=P1;for(a=0;a<16;a++){if(jp[a]==n)c=a; //键值保存在C中while(P1==jp[a]);}m=_crol_(m,1);}}}}//按键void aj(void){if(P1!=0xf0){if(c==12) //按下暂停/开始键{count++;if(count==1){TR0=0;zt=1;}if(count==2){TR0=1;count=0;}}if(c==13){if(zt==1){second=00;sz=1;count2=0;}}if(c<10){if(sz==1){count2++;if(count2==1){a[0]=c;second=a[0]*10+a[1];}if(count2==2){a[1]=c;second=a[0]*10+a[1];}}}if(c==14){second=99;}}P1=0xf0;}//主函数void main(void){TMOD=0x01;TH0=(65536-46083)/256; TL0=(65536-46083)%256; EA=1;ET0=1;while(1){DisplaySecond(second);sm();aj();}}//函数功能:定时器0的中断服务子程序void interserve(void)interrupt 1 using 1 {int_time ++;if(int_time==20){int_time=0;second--;if(second==-1){second=00;P2=0x7f;delay(5);}}TH0=(65536-46083)/256;TL0=(65536-46083)%256;}。
00-99秒倒计时器程序及仿真
题目一:秒计时器功能要求:1.系统上电,数码管显示“99”.2.每隔1秒,数码管显示减1,减小到“00”后,数码管显示“00”,同时继电器开启。
3.按键的定义如下:“暂停/开始”按键S13:当S13按下时,秒表计时停止,数码管显示当前数值,再次按下时恢复计时。
“设置”按键S14:当停止计时时,按下S14键,可以设置秒数。
按键S1-S10分别对应数字0-9,先输入数字为十位数,后输入数字为个位数,若输入数字大于99,数码管显示“99”。
设置结束后,按下S13键启动计时。
“重新开始”按键S15:当S15按下时,数码管显示为“99”,秒表从新开始计时。
#include<reg51.h>#include<intrins.h>unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned char code jp[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};unsigned char a[2]={0,0};unsigned char int_time;unsigned char second=99;unsigned char c;bit zt;bit sz;unsigned char count;unsigned char y;unsigned char x;unsigned char count2;//函数功能:数码管动态扫描延时void delay(unsigned char s){unsigned char i,j;for(i=0;i<s;i++)for(j=0;j<125;j++);}//数码管显示子程序void DisplaySecond(unsigned char k){P2=0xfe;P0=Tab[k/10];delay(1);P2=0xfd;P0=Tab[k%10];delay(1);}//扫描键盘的值void sm(void){ unsigned char k,j,n,a,m;m=0xfe;P1=0xf0;k=P1;k=k&0xf0;if(k!=0xf0){ delay(5);if(k!=0xf0){for(j=0;j<4;j++){ P1=m;n=P1;for(a=0;a<16;a++){if(jp[a]==n)c=a; //键值保存在C中while(P1==jp[a]);}m=_crol_(m,1);}}}}//按键void aj(void){if(P1!=0xf0){if(c==12) //按下暂停/开始键{count++;if(count==1){TR0=0;zt=1;}if(count==2){TR0=1;count=0;}}if(c==13){if(zt==1){second=00;sz=1;count2=0;}}if(c<10){if(sz==1){count2++;if(count2==1){a[0]=c;second=a[0]*10+a[1];}if(count2==2){a[1]=c;second=a[0]*10+a[1];}}}if(c==14){second=99;}}P1=0xf0;}//主函数void main(void){TMOD=0x01;TH0=(65536-46083)/256; TL0=(65536-46083)%256; EA=1;ET0=1;while(1){DisplaySecond(second);sm();aj();}}//函数功能:定时器0的中断服务子程序void interserve(void)interrupt 1 using 1 {int_time ++;if(int_time==20){int_time=0;second--;if(second==-1){second=00;P2=0x7f;delay(5);}}TH0=(65536-46083)/256;TL0=(65536-46083)%256;}。
单片机倒计时系统
单片机倒计时系统单片机倒计时系统可以采用8051单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计。
具体功能包括:1.六位LED显示,从59分59秒99开始倒计时。
2.倒计时精度为0.01秒,能正确地进行倒计时。
3.复位后倒计时重新回到初始状态。
单片机倒计时系统的制作方法包括以下步骤:1.确定系统的基本要求:例如数码管上显示计时的时间,可以通过按键实现1小时内初始时间的设定(以秒为分度),并且完成计时,可随时暂停并且重新设置计时时间等。
2.选择合适的单片机型号:根据需要实现的倒计时功能以及控制要求,选择适合的8051单片机型号,例如AT89C51等。
3.设计电路:根据所选的单片机型号和功能要求,设计外围电路,包括按键电路、复位电路、晶振电路、LED显示电路等。
4.编写程序:使用C语言等编程语言编写程序,实现倒计时的功能。
程序应该包括主程序、中断服务程序等。
在编写程序时需要考虑按键的输入、时间的计算、LED的显示等细节问题。
5.调试程序:通过调试程序可以确保程序的正确性和可靠性。
在调试时需要使用调试工具,例如示波器、逻辑分析仪等,对程序的各个部分进行测试和验证。
6.制作电路板:将设计好的电路制作成电路板,将各个元器件按照设计好的位置和连接方式焊接在电路板上。
7.测试系统:完成电路板的制作后,需要进行系统测试,验证是否实现了预期的倒计时功能。
测试时需要使用测试工具,例如电源、按键、LED显示器等,对系统的各个部分进行测试和验证。
总之,单片机倒计时系统是一个比较复杂的系统,需要设计电路、编写程序、制作电路板和测试系统等多个步骤。
在制作过程中需要注意细节问题,确保系统的正确性和可靠性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IE= 0x82; //打开中断
TR0=1; //打开定时开关(定时器运行控制位,置1启动定时器0)
TMOD |= 0x01; //使用模式1,16位定时器
TH0=0x00;
TL0=0x00;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
中断触发定时器:99秒计时+99秒倒计时
#include
code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char Dis_Shiwei;
unsigned char Dis_Gewei;
*/
______________________________________________
功能:99秒倒计时
时间:2010718
______________________________________________
#include
code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
1 0000 0000 0000 0000
1101 1000 1111 0000
0010 0111 0001 0000
TIme=16(1+16+32+64+512)=16*625=10000us=10ms
主函数中的关于定时器和中断的控制位:
TMOD |=0x01; //模式选择
TH0=0xd8; //高8位
{
P0=Dis_Shiwei;
P2=0;
delay(300);
P0=Dis_Gewei;
P2=1;
delay(300);
}
}
void TIm(void)interrupt 1 using 1
{
staTIC unsigned char second,count;
TH0=0xd8;
TL0=0xf0;
count++;
IE= 0x82;
TR0=1;
while(1)
{
P0=Dis_Shiwei;
P2=0;
delay(300);
P0=Dis_Gewei;
P2=1;
delay(300);
}
}
void TIm(void)interrupt 1 using 1
{
statIC unsigned char second=99,count;
TH0=0xd8;
TL0=0xf0;
count++;
if(count==100)
{
count=0;
second--;
if(second==0)
{
second=99;
}
Dis_Shiwei=tab[second/10];
Dis_Gewei=tab[second%10];
unsigned char Dis_Shiwei;
unsigned char Dis_Gewei;
void delay(unsigned int cnt)
{
while(--cnt);
}
main()
{
TMOD |=0x01; //10mTL0=0xf0;
if(count==100)//100x10ms
{
count=0;
second++;
if(second==100)
second=0;
Dis_Shiwei=tab[second/10];
Dis_Gewei=tab[second%10];
}
}
/*
定时器设定为:TH0=0xd8;TL0=0xf0;经确定时10ms。从程序开始执行,每当主程序中的16位数发生溢出则触发中断,主程序保护现场并调用中断子程序,也可以写为:TH0=(65536-10000)/256;TL0=(65536-10000)%256。秒脉冲的产生要求精确定时1s,实际情况可能有延误。
void delay(unsigned int cnt)
{
while(--cnt);
}
main()
{
TMOD |=0x01; //10ms in 12M crystal,工作在模式一,16位定时器
TH0=0xd8;
TL0=0xf0;
IE= 0x82; //打开中断
TR0=1; //打开定时开关
while(1)