99秒计时 99秒倒计时中断触发定时器

合集下载

单片机99秒倒计时课程设计用74ls246

单片机99秒倒计时课程设计用74ls246

单片机99秒倒计时课程设计用74ls246
首先需要明确的是,经典的倒计时电路设计使用的是74LS192或74LS193计数器芯片,而74LS246是一个8位三态缓冲器,与倒计时电路设计关系不大。

下面给出使用74LS192或74LS193实现99秒倒计时的电路设计流程简述:
1. 确定时钟源
在倒计时电路中,需要一个时钟源来驱动计数器进行计数。

可以使用555定时器或水晶振荡器作为时钟源。

2. 设计计数器
使用74LS192或74LS193计数器芯片设计倒计时电路,需要考虑电路的初始状态以及计数器输出的电平状态。

3. 确定触发计数的条件
可以使用按键或外部信号触发计数开始。

在计数进行的过程中,需要在常开触点上接入继电器,当倒计时完成时,继电器断开触点,使接入的负载失去电源。

4. 设计显示器件
倒计时电路需要一个显示设备,可以使用LED或七段数码管等显示设备。

在使用七段数码管时,需要使用译码器将计数器的当前值转化为七段数码管的驱动信号,以实现数字显示。

以上是倒计时电路设计流程的简述,具体实现过程涉及到电路原理图的绘制、元器件的选型和焊接调试等环节,在设计过程中需要注意选用合适功耗和电性能指标的元器件,并加以保护,以确保电路的安全性和稳定性。

在实现过程中,应遵循相关的安全要求和规范,特别是对于高电压和高温度的电路部分,需要注意安全操作和防危控制。

中断触发定时器:99秒计时+99秒倒计时

中断触发定时器:99秒计时+99秒倒计时
TL0=0xf0; //低8位
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位

单片机99秒计时器

单片机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次。

99秒倒计时 说明

99秒倒计时 说明

(一)99秒倒计时计数器一、设计思路:上电显示99,当发出计时信号开始倒计时,直到0结束计时。

二、设计目的:1.了解单片机最小系统的设计和工作原理2.掌握数码管显示原理3.掌握基本的单片机控制思想及C语言单片机的编程思想三、工作原理说明:因为是99秒倒计时,运用单片机的定时器0来精确地定时,并通过单片机的控制在数码管上循环显示,并附加功能为上电为99,当按下按钮开关为发送的开始计时信号,即按下开关开始倒计时,直到0为止。

四、硬件:单片机、两位一体数码管、排阻、锁存器等五、程序设计:#include <reg51.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchar shi,ge,aa,temp;uchar code table1[]={0x04,0x02};sbit D=P3^0;sbit D1=P1^1;sbit D2=P1^2;sbit D3=P0^0;sbit D4=P0^1;void inital(){ temp=99;D1=1;D2=1;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}void delay(uint c){ int a,b;for(a=c;a>0;a--)for(b=110;b>0;b--);}void time0() interrupt 1{ TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;}void display(uchar shi,uchar ge){ P1=table1[1];P2=table[ge];delay(1);P1=table1[0];P2=table[shi];delay(1);}void main(){ inital();if(D==1){ D1=0;D2=0;display(9,9);}while(D==0){ if(D3==1){ shi=temp/10;ge=temp%10;display(shi,ge);}else{ shi=temp/10;ge=temp%10;display(shi,ge);if(aa==20){ aa=0;shi=temp/10;ge=temp%10;display(shi,ge);temp--;if(temp==0){TR0=0;}}}}六、软件仿真电路图不能实现在中间数字的停止,即该实验可扩展。

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

单片机控制秒表显示时间为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管脚。

最新99倒计时控制电路设计报告

最新99倒计时控制电路设计报告

99倒计时控制电路设计报告99倒计时控制电路摘要:该电路设计以AT89C51单片机为核心,通过两位七段数码显示管显示99倒计时。

外部有中断可控开关,控制计时开始和结束。

还可以从4*3矩阵式键盘输入时间来倒计时。

关键词:AT89C51单片机前言倒计时控制电路倒计时运用的地方十分广泛。

可以用于一些大型活动现场的全屏倒计时显示、抢答器的计时和交通灯倒计时等等。

一、可行性分析与方案论证本电路以AT89C51单片机为核心,采用最简单的硬件,构成一个99倒计时控制电路。

本电路分三种情况进行计时。

第一种:复位后数码管开始显示99并进行倒计时。

第二种:复位后按下开始按键(外部中断开关)开始倒计时,按下结束按键后停止计时。

第三种:从矩阵键盘输入起始时间后立刻进行倒计时。

设计框图如下:二、硬件电路的设计(一)矩阵式键盘电路1、键盘特点键盘是计算机系统中不可缺少的输入设备,当按键少时可接成线性键盘。

当按键较多时,这样的接法占用口线较多,可将按键接成矩阵的形式,可以节省口线。

例如两个接口可按8*8的形式接64个按键。

每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。

矩阵的行线和列线分别通过两并行接口和CPU通信。

每个按键的状态同样需变成数字量“0”和“1”,开关的一端通过电阻接Vcc(列)、而接地是通过程序输出数字“0”实现的。

2、键盘与单片机的接口图2..23、矩阵式键盘的原理两个并行口中,一个输出扫描码,使按键逐行扫描。

另一个并行口输入按键状态即键盘的列值。

由行扫描值和回馈信号共同形成键编码而识别按键。

通过软件查表,查出该键的功能或者由硬件编码器完成键的编码。

扫描法程序:(1)判断有无键按下(2)判断闭合键所在的位置(3)计算或查表获得键值(4)判断闭合键是否释放(5)闭合键释放,保存键值并转入该闭合键相应的程序(二)两位LED数码显示管工作方式及原理两位数码现实管以动态的方式显示。

多个数码管交替显示,利用人眼的视觉暂留特性,让人看到好像有多个数码管同时显示,在编程时需要输出字段和字位信号。

单片机控制秒表显示时间为00—99,暂停,复位

单片机控制秒表显示时间为00—99,暂停,复位
单片机控制秒表显示时间为00—99,暂停,复位(总12页)
9
创新实践实训报告
学院
信息电子技术学院
专业
电子信息工程
班级
14
学籍号
姓名
指导教师
蒋野
2017年06月29日
单片机控制秒表电路
一、电路工作原理
1.工作原理
用STC89C52设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“暂停”键S2和一个“继续”键S3。为使本设计系统更加完善,可以引入一个“复位”键S1,以方便对系统的控制。如图。
本系统采用STC89C51单片机为中心器件,利用其定时器/计数器定时计数的原理,结合硬件电路如电源电路,晶振电路,复位电路和显示电路,以及一些按键电路等来设计计数器,将软硬件有机结合起来,其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,硬件系统利用Protues强大的功能来实现,简单易于观察,在仿真中就可以观察到实际的工作状态。
(5)控制电路:S2按下电路停止计时,S3按下电路恢复计时。
二、程序流程图
主程序流程图
三、检测安装与调试
1.元件检测
序号
名称
型号(标称值)
测量值
误差
备注
1
电阻
1K
780
22%
2
电阻
10K
10.78
0.07%
3
电容
33pF
32
Байду номын сангаас3%
4
电容
10uF
9
10%
5
晶振
12M
12M
0
共阳极数码管检测管脚序号利用万用表二极管档红表笔接一个抵住两个管脚,利用另一个接触其他,找出1,2两个管脚,继续分别找出A,D,C,D,E,F,G,Dp管脚。

基于51单片机的9999秒倒计时器设计

基于51单片机的9999秒倒计时器设计
第八周
熟悉毕业设计方案,查阅相关资料
完成方案的初步设计,开题报告
电路的仿真和PCB板的设计
软件流程的设计和软件的编写
完成软件的编写与调试
硬件电路的装配与调试
电路的软硬件综合调试
完成毕业设计
参考文献
[1] 李朝青.单片机原理及接口技术(简明修订版).北京航空航天大学出版社,1998
[2] 李广弟.单片机基础[M].北京航空航天大学出版社,1994
A
0
1
1
1
0
1
1
1
77H
B
0
1
1
1
1
1
0
0
7CH
C
0
0
1
1
1
0
0
1
39H
D
0
1
0
1
1
1
1
0
5EH
E
0
1
1
1
1
0
0
1
79H
F
0
1
1
1
0
0
0
1
71H
.
1
0
0
0
0
0
0
0
80H
5.3LED 数码管显示方式
LED显示器工作方式有两种:静态显示方式和动态显示方式。
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
①一个8位CPU;
②一个片内振荡器和时钟电路;
③4KB ROM(80C51有4KB掩膜ROM,87C51有4KB EPROM,80C31片内有无ROM);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

99秒计时+99秒倒计时(中断触发定时器)
___________________________________________
功能:99秒计时
时间2010—7—18
___________________________________________
#include
code unsigned char
tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x
7f,0x6f};
unsigned char Dis_Shiwei;
unsigned char Dis_Gewei;
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)
{
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++;
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,实际情况可能有延误。

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位
TL0=0xf0; //低8位
IE= 0x82; //打开中断
TR0=1; //打开定时开关(定时器运行控制位,置“1”启动定时器0)
TMOD |= 0x01; //使用模式1,16位定时器
TH0=0x00;
TL0=0x00;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
*/
______________________________________________ 功能:99秒倒计时
时间:2010—7—18
______________________________________________ #include
code unsigned char
tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x 7f,0x6f};
unsigned char Dis_Shiwei;
unsigned char Dis_Gewei;
void delay(unsigned int cnt)
{
while(--cnt);
}
main()
{
TMOD |=0x01; //10ms in 12M crystal
TH0=0xd8;
TL0=0xf0;
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];
} }。

相关文档
最新文档