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);

99秒定时器课程设计

99秒定时器课程设计

99秒定时器课程设计一、课程目标知识目标:1. 学生能理解99秒定时器的原理和工作方式,掌握时间计算和转换的基本方法。

2. 学生能运用所学知识,设计并制作一个简单的99秒定时器,了解其在我国日常生活和科技领域中的应用。

技能目标:1. 学生通过实践操作,提高动手能力和团队协作能力,培养解决问题的策略和技巧。

2. 学生能运用信息技术工具,进行数据收集、处理和分析,提高信息素养。

情感态度价值观目标:1. 学生培养对科学技术的兴趣和求知欲,认识到科技对生活的影响,增强科技创新意识。

2. 学生在团队合作中,学会尊重他人、倾听意见、分享成果,培养积极向上的情感态度。

3. 学生通过课程学习,认识到时间的重要性,树立珍惜时间、提高效率的观念。

课程性质:本课程为实践性较强的科技制作课程,结合学生年级特点,注重培养学生的动手能力、创新意识和团队合作精神。

学生特点:六年级学生具备一定的认知能力和动手操作能力,对科技制作有较高的兴趣,但需引导和培养团队协作能力。

教学要求:教师需结合学生特点,采用启发式、探究式教学方法,引导学生主动参与,注重培养学生的实践能力和创新精神。

在教学过程中,关注学生的个体差异,给予针对性的指导,确保课程目标的达成。

二、教学内容本课程以《科学》教材中“时间的测量”章节为基础,结合以下教学内容:1. 时间的概念与计量单位:引导学生了解时间的基本概念,认识时、分、秒等时间单位,掌握时间换算方法。

2. 定时器的原理与制作:介绍定时器的原理,如电磁继电器、电容充放电等,并指导学生动手制作一个简单的99秒定时器。

3. 电路知识与安全:讲解基本的电路知识,如串联电路、并联电路等,强调电路制作过程中的安全事项。

4. 创意设计与实践:鼓励学生发挥创意,设计具有个性化的定时器,培养创新意识和动手能力。

5. 团队合作与沟通:组织学生分组合作,培养团队协作能力和沟通技巧。

教学内容安排与进度:第一课时:介绍时间的概念与计量单位,引导学生进行时间换算练习。

最长99s倒计时

最长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。

99秒倒计时+按键控制详解

99秒倒计时+按键控制详解

江苏建筑职业技术学院课程设计报告课程名称:单片机设计与实训设计题目:秒计时系别:信息电子工程学院班级:电子10-1学号:1050213127姓名:周中楠指导教师: 刘天飞、刘燎原摘要:本系统讨论了简单的倒计时器的设计与制作,最大倒计时时间是99秒,最小单位精确到秒。

是利用定时器和计数器的原理将倒计时过程显示在LED数码管上。

此系统是基于AT89S52单片机控制,外加数码管显示倒计时时间,并且利用按键来进行倒计时时间的设定。

当倒计时时间倒计时为0时,蜂鸣器就会发出报警声。

首先我们先做的是99秒倒计时至0时,在设计的Proteus中进行仿真,数码管显示倒计时,蜂鸣器就会发出声音。

其中包括有数码管延时程序,中断定时程序。

其次我们设置键盘扫描程序,设置键盘的按键有13,14,15键分别为暂停/开始、设置、重新开始。

根据题目要求编写程序,一步步的编写程序。

定义13按键用count1来控制是暂停还是开始;14按键在暂停的情况下按下(即falg_zt=1时)才可以设置时间;15按键按下开始重新开始。

然后分别在采用软件程序进行译码,在Proteus中仿真实现功能要求。

关键词:单片机(AT89S52);LED数码管显示器;keil C;proteus仿真软件;晶体振荡器目录第1节前言 .................................................. 错误!未定义书签。

第2节方案选择 ................................................................................ 第3节硬件电路 . (12)第4节系统的软件设计 (8)第5节软硬件联调.................................................. (10)第6节总结………………………………………………………第7节致谢………………………………………………………参考文献附录第1节前言在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。

00-99秒倒计时器程序及仿真

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;zt=0;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;TR0=1;while(1){DisplaySecond(second);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;}。

(完整word版)00-99秒倒计时器程序及仿真

(完整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;}。

99s倒计时课程设计报告

99s倒计时课程设计报告

单片机课程设计任务书设计主要内容和要求:1.系统上电,数码管显示“99”.2.每隔1秒,数码管显示减1,减小到“00”后,数码管显示“00”,同时继电器开启。

3.设置按键S13,当S13按下时,秒表计时停止,数码管显示当前数值,再次按下时恢计时。

4.当停止计时时,按下S14键,可以设置秒数,按键S1-S10分别对应数字0-9;先输入数字为十位数,后输入数字为个位数,若输入数字大于99,数码管显示“99”。

按下S13键启动计时。

5.设置按键S15,当S15按下时,数码管显示为“99”,秒表从新开始计时。

6.设计过程中,应使用硬件平台指定的资源进行设计。

摘要单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。

单片机由芯片内单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。

单片机由芯片内仅有CPU的专用处理器发展而来。

仅有CPU的专用处理器发展而来。

本实验是基于MCS51系列单片机所设计的,可以实现键盘按键与数字动态显示并可以倒数的计数器。

本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个电秒计时器,包括以下功能:通过单片机系统实现秒表计时功能,可以进行暂停计时、恢复计时、设定时间和清零等操作。

该计数器系统主要由计数器模块、LCD显示器模块、键盘模块、复位模块等部分组成。

关键词:AT89C51单片机、 C语言编程、键盘模块、LCD显示器。

目录1 设计理论1.1设计指标 41.2方案论证 42 AT89S51 介绍 52.1主要性能特点 52.2管脚说明 53 系统硬件电路 73.1单片机最小应用系统 73.1.1复位电路 93.1.2时钟电路 93.2显示电路 103.2.1数码管的结构和分类 103.3键控电路 113. 3. 1矩阵式键盘的工作原理 123. 3. 2矩阵式键盘的按键识别方法 124 软件程序设计与仿真 134.1程序流程图 144.2程序设计 154.3电路仿真 185心得体会 206参考文献 211 设计理论 1.1设计指标(1)该倒计时器应具有基本倒时功能; (2)具有暂停,复位功能; (3)时间可以任意调整;(4)时间用数码管显示,初始值为99S,扫描时间为1MS 。

99秒倒计时器设计

99秒倒计时器设计

物理与电气工程学院单片机课程设计题目:基于单片机99秒倒计时器的设计学院:物理与电气工程学院专业:自动化专业班级:四组员:学号:指导老师:摘要:随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

【关键词】AT89s52;共阴数码管;keil;晶体振荡器一、要求:单片机控制的99s倒计时器,用单片机AT89s52的定时器实现99s 倒计时器。

用两位数码管静态显示倒计时秒值。

二、总体设计:要求的硬件电路都主要由AT89s52芯片、两位数码管、晶振产生电路、复位电路,电源,asp下载电路组成。

1.1、AT89s52的芯片概述At89s52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8 位微控制器 8K 字节在系统可编程 Flash AT89S52P0 口:P0口是一个8位漏极开路的双向I/O口。

99秒计时器

99秒计时器

99秒计时器实验报告学院:年级:专业:班级:姓名:一、实验要求1、用中断程序控制数码管倒计时。

2、用开关控制,使数码管开始和停止计时。

3、用开关阵列控制数码管显示二、流程框图(一)原理图(二)PCB(1)由12个按键组成一组3*4的矩阵式键盘,要注意上拉电阻,不能忘记。

用软件采取行扫描或是线反转法的方式,进行判断哪个按键是否按下,首先由软件设定好每个按键所对应的具体数字,当判断那个按键按下后,输出所对应的数字,己所设定的时间。

其中有两个按键是开始按键和停止按键,当开始按键按下的时候,开始倒计时,按下停止的按键,倒计时停止。

(2)A T89C51通过P1口连接数码管,P0口连接键盘,按下键盘,即把数据输入到单片机中,通过单片机内部的软件控制,显示所要显示的具体数据。

(3)由于51单片机的I/O端口的带载能力不够,所以,在I/O端口和数码管的连接上连接一个74HC373来增加带载能力。

(4)数码管的每一个段都连接在74HC373上,通过软件的控制而决定是哪一个字段亮,从而决定是显示怎么样的数字。

把数码管的COM端连接在反相器上,作为微控,连接在单片机上,反相器采用74LS04的反相器。

(5)显示倒计时采取判断的方式,当判断出按下哪个按键后,显示搜对应的数字,按下“开始”按键,通过软件的控制,是倒计时开始。

五、收获对于单片机的学习,理论与实践同等重要。

在实验中,可以弄清楚书本上的知识。

老师在实验中讲诉的一些经验更是重要,这个在书本上是没有,例如在复位电路上是要用乙醇擦拭干净的。

应用软件,拷片子,调试,这些过程锻炼了我们的实践能力,为我们就业奠定了基础。

亲手做过设计,调试过电路板,在这个过程中积累的知识相对看书本所学到的是不一样的。

在做双面板的时候,应尽可能确保双面对正,防止穿孔打偏。

在一些细节上,我们应该更加注意。

谢谢老师指导我们,并且把经验告诉我们。

  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];
} }。

相关文档
最新文档