基于单片机的99秒表设计
基于单片机的0~99计时秒表的设计(1)

本科毕业论文(设计)论文题目:××××××××××××××××姓名:学号:院(系、部):专业:班级:指导教师:完成时间:年月摘要本次设计内容是以AT89C51单片机为核心器件,利用AT89C51和外围电路组成的计时秒表系统,计时秒表是一种先进电子计时器,较多的应用在教学器材、比赛计时等,而且采用数字显示,具有直观、方便读取、功能方便等诸多优点。
本设计是由硬件电路和软件程序两部分组成,硬件电路由AT89C51单片机、按键控制电路、数码管显示电路、晶振电路以及复位电路组成,它使用元件少,电路结构简单,功能强大;软件部分程序采用C语言程序设计,使用keil编译源程序,产生的可执行性文件能够让单片机高效快速的执行。
该设计能够充分利用单片机内部资源,通过程序利用定时器中断服务程序对计时秒表开始、暂停、清零等操作进行处理,提高单片机的工作效率。
关键字:单片机;秒表;定时器;中断服务程序AbstractThis design content is based on AT89C51 single-chip microcomputer as the core device, using the timing stopwatch system composed of AT89C51 and peripheral circuit, timing stopwatch is a kind of advanced electronic timer, more application in teaching equipment, timing, etc., and adopts digital display, its intuitive, convenient read, function, and many other advantages.This design is consists of two parts, hardware circuit and software program, the hardware circuit is controlled by AT89C51, key circuit, digital tube display circuit, crystals circuit and reset circuit, it USES less component, circuit structure is simple, powerful;Software part program using C language program design, use the keil compiler source code, can let the enforceability file microcontroller efficient and rapid execution.This design can make full use of the single chip microcomputer internal resources, through the program using the timer interrupt service routine for timing stopwatch start, pause, reset operations such as processing, improve the working efficiency of the single chip microcomputer.Key Words:Single chip microcomputer;A stopwatch;The timer;Interrupt service routine目录前言 (4)1、AT89C51单片机概述 (4)1.1、AT89C51单片机简介 (4)1.2、AT89C51主要特性及管脚说明 (5)2、硬件电路的设计 (6)2.1、设计要求 (6)2.2、总体方案的设计 (7)2.3、总体电路设计 (7)2.4、晶振电路、复位电路及按键电路 (8)2.5、数码管显示电路的设计 (9)2.5.1、数码管的结构及工作原理 (9)2.5.2、数码管的编码方式及段码表 (9)2.5.3、数码管的显示方式 (10)3、软件设计 (10)3.1、设计思想 (10)3.2、程序流程图 (10)3.3、源程序代码 (11)4、结论 (13)5、参考文献 (13)6、谢辞 (14)前言单片微计算机又称单片微控制器,是目前市面上最常用的嵌入式处理器,通称单片机,单片机芯片常用英文字母MCU表示单片机,它像一般的逻辑功能的芯片,为了完成逻辑运算,而是把一个最小计算机系统系统整合后,集成烧录到这个芯片上,单片机像计算机一样,由运算器、控制器、输入输出设备等组成,因此相当于一个微型的计算机最小系统,但是和计算机相比,单片机缺少了外围设备等。
单片机课程设计(99s计时)

#include<reg52.h>unsigned char time;unsigned char code ss[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(unsigned int t);void display(unsigned char num);void timer_init(void);void INT_init(void);sbit weixuan_1=P2^0;sbit weixuan_2=P2^1;void main(){time=0;weixuan_1=1;weixuan_2=1;INT_init( );timer_init( );while(1){display(time);}}void display(unsigned char num){unsigned char i,j;if(num<10){weixuan_1=0;weixuan_2=1;P0=ss[num];}else{for(i=0;i<20;i++){weixuan_1=0;weixuan_2=1;P0=ss[num%10];}delay(20);P0=0XFF;for(j=0;j<50;j++){weixuan_1=1;weixuan_2=0;P0=ss[num/10];}}}void delay(unsigned int t){unsigned int i;for(i=t;i>0;i--){;}}void INT_init(void){EX0 = 1;IT0 = 1;EX1 = 1;IT1 = 1;EA = 1;}void interrupt0_handler(void)interrupt 0 {TR0=~TR0;}void interrupt1_handler(void)interrupt 2 {time=0;INT_init( );timer_init( );}void timer_init(void){TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;TR0=1;ET0=1;}void timer0(void)interrupt 1{unsigned char n;TH0=(65536-50000)/256;TL0=(65536-50000)%256;n++;if(n==20){time++;n=0;if(time==100){time=0;}}}//从TLC1543读取采样值,形参port是采样的通道号unsigned int read1543(unsigned char port) {unsigned int ad=0;unsigned int i;unsigned int al=0,ah=0;_CS=0;CLOCK=0;port<<=4;for (i=0;i<4;i++) //把通道号打入1543{D_IN=(bit)(port&0x80);CLOCK=1;CLOCK=0;port<<=1;}for (i=0;i<6;i++) //填充6个CLOCK{CLOCK=1;CLOCK=0;}_CS=1;delay(100);_CS=0; //等待AD转换CLOCK=0; for (i=0;i<2;i++) //取D9,D8{CLOCK=1;ah<<=1;if (D_OUT){ah +=0x01;}CLOCK=0;}for (i=0;i<8;i++) //取D7--D0{CLOCK=1;al <<= 1;if (D_OUT){al +=0x01;}CLOCK=0;}ah=ah*256;ad=ah+al;_CS=0;_CS=1;return(ad);}unsigned char read_keyboard(){hangxian=0x00;key_value=(liexian&0x0f);if(key_value!=0x0f){delay(10000);if(key_value!=0x0f){hangxian=0x0e;delay(2);if((liexian&0x0f)==0x0f){hangxian=0x0d;delay(2);if((liexian&0x0f)==0x0f){hangxian=0x0b;delay(2);if((liexian&0x0f)==0x0f) {hangxian=0x07;delay(2);}}}}key_value=liexian&0x0f;while((liexian&0x0f)!=0x0f);delay(10000);key_value=key_value<<4; switch(key_value|(hangxian&0x0f)){case 0xee:key_return =0;break;case 0xde:key_return =1;break;case 0xbe:key_return =2;break;case 0x7e:key_return =3;break;case 0xed:key_return =4;break;case 0xdd:key_return =5;break;case 0xbd:key_return =6;break;case 0x7d:key_return =7;break;case 0xeb:key_return =8;break;case 0xdb:key_return =9;break;case 0xbb:key_return =10;break;case 0x7b:key_return =11;break;case 0xe7:key_return =12;break;case 0xd7:key_return =13;break;case 0xb7:key_return =14;break;case 0x77:key_return =15;break;}}return key_return;}矩阵键盘核心程序#include<at89x52.h>#include<absacc.h>#include<intrins.h>#include<lcd.h>#include<AD.h>unsigned char aaa[]={"ADzhuanhuantest"};unsigned char ad_result[10]={0};unsigned char temp[4]={0};float jizhun_AD=2.51;unsigned int ad_data=0;unsigned int ad_v=0;unsigned int ad_bak=6000;unsigned int count;void shuzhichuli(void);void main(void){PORT=0x03;lcd_init( );lcd_clear( );while(1){count++;ad_data=read1543(0);ad_v=(unsigned long int)ad_data*2510/1024;if((ad_v!=ad_bak)&&(count>300)){count=0;shuzhichuli();lcd_string(aaa,1);lcd_string(ad_result,2);ad_bak=ad_v;}}}void shuzhichuli(void){unsigned int temp0,temp1;unsigned int i;unsigned int w;temp1=ad_v;for(i=0;i<4;i++){temp0=temp1%10;temp1=temp1/10;temp[i]=temp0;}for(w=0;w<5;w++){if(w==0){ad_result[w]=temp[3]+48;}else if(w==1){ad_result[w]='.';}else{ad_result[w]=temp[4-w]+48;}}}。
单片机99秒倒计时课程设计用74ls246

单片机99秒倒计时课程设计用74ls246
首先需要明确的是,经典的倒计时电路设计使用的是74LS192或74LS193计数器芯片,而74LS246是一个8位三态缓冲器,与倒计时电路设计关系不大。
下面给出使用74LS192或74LS193实现99秒倒计时的电路设计流程简述:
1. 确定时钟源
在倒计时电路中,需要一个时钟源来驱动计数器进行计数。
可以使用555定时器或水晶振荡器作为时钟源。
2. 设计计数器
使用74LS192或74LS193计数器芯片设计倒计时电路,需要考虑电路的初始状态以及计数器输出的电平状态。
3. 确定触发计数的条件
可以使用按键或外部信号触发计数开始。
在计数进行的过程中,需要在常开触点上接入继电器,当倒计时完成时,继电器断开触点,使接入的负载失去电源。
4. 设计显示器件
倒计时电路需要一个显示设备,可以使用LED或七段数码管等显示设备。
在使用七段数码管时,需要使用译码器将计数器的当前值转化为七段数码管的驱动信号,以实现数字显示。
以上是倒计时电路设计流程的简述,具体实现过程涉及到电路原理图的绘制、元器件的选型和焊接调试等环节,在设计过程中需要注意选用合适功耗和电性能指标的元器件,并加以保护,以确保电路的安全性和稳定性。
在实现过程中,应遵循相关的安全要求和规范,特别是对于高电压和高温度的电路部分,需要注意安全操作和防危控制。
基于单片机的数字秒表设计

基于单片机的数字秒表设计文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)单片机课程设计设计题目基于单片机数字秒表的设计学院名称电气学院指导教师朱卫华班级电子11级02班学号学生姓名摘要本设计是基于AT89S51单片机的简易数字秒表设计,主要组成是以51单片机最小系统为核心,通过运用单片机的振荡电路实现计时同时用数码管同步显示。
本秒表最大计时为99秒。
本设计的特点是:大部分功能通过软件实现,使电路简单明了,系统稳定性好。
关键词:AT89S51振荡电路计时数码管目录设计概述AT89S51概述AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
AT89S51引脚图在实际应用中,因为STC的单片机比AT的单片机更加容易下载程序,它们的端口是一模一样的,所以本次设计实际应用的是STC51单片机。
系统设计功能概述本设计展现的是一个计时用的秒表。
功能为两位七段数码管在开机时显示“00“,并在系统中添加一个按钮开关。
当第一次按下按钮开关后秒表开始计时,第二次按下后计时停止,第三次按下后两个数码管清0,并回到一开始计时状态。
由于只设计了两位数码管,故该秒表最大计时99秒。
99秒表设计

秒表系统设计研究一.设计要求以AT89C51为核心,设计一种秒表系统,能够在LED 上显示。
显示时间为00~99秒,每秒自动加一,有开始键和复位键。
二.摘要部分摘要:本设计是设计一个单片机控制的多功能秒表系统。
近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。
将软、硬件有机地结合起来,使得系统能够实现两位LED 显示,显示时间为00~99秒,每秒自动加1,能正确地进行加、减(倒)计时,快加,快减,可以同时记录4个相对独立的时间,通过上翻下翻来查看这4个不同的计时值,可谓功能强大。
其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在WA VE 中调试运行,硬件系统利用PROTEUS 强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
关键词:单片机 AT89C51 99秒表 LED三、系统总体设计框图:图1 99秒表总体设计框图四、硬件部分介绍1. AT89C51AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
基于单片机的秒表计时

目录一、摘要 (1)二、关键字 (2)三、设计任务 (2)四、实现方法 (2)五、系统框图 (2)六、调试中遇到的问题及解决方法 (3)七、程序设计内容 (7)八、程序 (7)九、程序流程图 (10)十、总结 (11)附录I 元件清单 (12)附录II 原理图 (13)附录II PCB 及参考文献 (14)一.内容摘要:该作品是基于AT89S52单片机为核心;可实现的功能:1开始计时:利用外部中断1与定时中断1进行开始功能与计功能。
2暂停计时:利用外部中断0关闭定时实现暂停功能。
3硬件复位:利用电容的冲电与放电特性实现硬件复位。
二.关键字: AT89S52单片机,开始,暂停,复位。
三.设计任务:设计一0到99秒计时器。
设计要求:1实现0到99秒计时,显示时间为一秒。
2具有开始,暂停,复位功能。
四.实现方法:用AT98C51单片机做一个最小系统板,计数器的复位功能通过单片机的硬件复位来实现。
秒表的显示用两位数码管显示,秒表的秒计数和循环通过程序控制单片机的输出来显示在数码管上。
秒表的开始和暂停通过外部中断1和外部中断0来实现。
五.系统框图1.单片机最小系统板及程序下载端口:单片机下载端口,实现将程序下载到单片机中而提供的端口。
2、硬件复位控制按钮通过按键开关的断开与接通来给单片机复位端口提供不同的电平,但输入高电平时,单片机实现硬件复位功能。
当没有信号输入时,单片机照常工作。
实现秒表的复位功能3、开关控制开始、暂停。
通过A3,A2控制外部中断端口低电平有效,通过外部中断实现开始,暂停功能。
4.数码管显示:通过2个一位共阳极数码管实现0到99秒的显示。
3,8管脚为公共端,其他管脚为低电平有效。
5.单片机采用内部振荡电路,且与各个部分的连接图,单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
单片机课程设计_基于单片机的数字秒表设计

单片机课程设计_基于单片机的数字秒表设计在当今科技迅速发展的时代,电子设备的应用无处不在,其中数字秒表作为一种常见的计时工具,具有广泛的应用场景,如体育比赛、科学实验、工业生产等。
本次课程设计旨在基于单片机技术实现一个数字秒表,通过对硬件电路的设计和软件程序的编写,掌握单片机系统的开发流程和方法,提高实践动手能力和解决问题的能力。
一、设计要求1、能够实现秒表的启动、暂停、复位功能。
2、计时精度达到 001 秒。
3、能够通过数码管显示计时结果。
二、系统方案设计1、硬件设计单片机选型:选用常见的 STC89C52 单片机作为核心控制器,其具有性能稳定、价格低廉、易于编程等优点。
显示模块:采用 8 位共阴极数码管作为显示器件,通过动态扫描的方式实现数字的显示。
按键模块:设置三个独立按键,分别用于启动、暂停和复位操作。
时钟模块:使用单片机内部的定时器/计数器产生精确的时钟信号,实现计时功能。
2、软件设计主程序:负责系统的初始化、按键扫描和计时处理等。
中断服务程序:利用定时器中断实现 001 秒的定时,更新计时数据。
三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。
晶振频率选择 12MHz,为单片机提供时钟信号。
复位电路采用上电复位和手动复位相结合的方式,确保系统能够可靠复位。
2、显示电路将 8 位数码管的段选引脚通过限流电阻连接到单片机的 P0 口,位选引脚通过三极管连接到单片机的 P2 口。
通过动态扫描的方式,依次点亮每个数码管,实现数字的显示。
3、按键电路三个按键分别连接到单片机的 P10、P11 和 P12 引脚,采用低电平有效。
当按键按下时,相应引脚的电平被拉低,单片机通过检测引脚电平的变化来判断按键的操作。
四、软件程序设计1、主程序流程系统初始化后,进入主循环。
在主循环中,不断扫描按键状态,如果检测到启动按键按下,则启动计时;如果检测到暂停按键按下,则暂停计时;如果检测到复位按键按下,则将计时数据清零。
单片机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次。
51单片机99秒马表设计程序

实验一99秒马表设计1.实验任务开始时,显示“00”,第1次按下按键后就开始计时。
第2次按键后,计时停止。
第3次按键后,计时归零。
2.实验要求用proteus软件画出电路图在keil软件中编写、调试程序要求秒表的误差每秒钟不高于0.01S撰写好实验报告,要求至少包含以下几项:实验目的实验任务与要求实验电路程序流程图实验程序电路仿真结果分析与误差分析实验总结#include"reg52.h"#define uchar unsigned char#define uint unsigned intsbit key=P3^2;uchar code table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uint num,num1;void delayms(uint n){uint i,j;for(i=n;i>0;i--)for(j=110;j>0;j--);}void display(uint num){uchar shi,ge;shi=num/10;ge=num%10;P2=0x00;P0=table[shi];delayms(5);P2=0x01;P0=table[ge];delayms(5);}void init(){TMOD=0x01;IE=0x83;TH0=(65536-45892)/256; TL0=(65536-45892)%256; IT0=0;}void main(){init();while(1){display(num);}}void I0_wai() interrupt 0 {uint num2;delayms(10);if(key==0){EX0=0;TR0=1;num2++;while(!key);}if(num2==1){TR0=1;}if(num2==2){TR0=0;}if(num2==3){TR0=1;num=0;num2=1;}EX0=1;}void T0_time() interrupt 1 {TH0=(65536-45892)/256; TL0=(65536-45892)%256; num1++;if(num1==20){num1=0;num++;if(num==100){num=0;}}}。
基于单片机的00秒-99秒的秒表设计

工程技术学院课程设计题目:用单片机AT89C51设计一个2位的LED数码显示作为“秒表”专业:电气工程及其自动化年级: 2009级学号: 20091447 20091414 20091444 姓名:付忠林梁宗林李座指导教师: 杨彦鑫日期: 2012年12月12日云南农业大学工程技术学院目录一、设计题目和要求:................................................................................... 错误!未定义书签。
二、设计目的:ﻩ错误!未定义书签。
三、设计内容:ﻩ错误!未定义书签。
四、课程设计心得体会ﻩ错误!未定义书签。
五、参考文献ﻩ错误!未定义书签。
六、课程设计指导教师评审标准及成绩评定............................................... 错误!未定义书签。
附件1:秒表原理图(实际接线图)............................................................ 错误!未定义书签。
附件2:仿真图1ﻩ错误!未定义书签。
附件3:仿真图2ﻩ错误!未定义书签。
一、设计题目和要求:题目三:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。
设计一个“复位”键,按下“复位”键后,秒表从0开始计时。
任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。
二、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理及使用方法。
基于单片机的99秒表设计

基于单片机的99秒表设计(一).方案论证及设计说明1.控制器的选择单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。
由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。
本实验采用AT89C51单片机。
2.数码管的选择(1)LED显示方式有共阴极和共阳极两种。
由于平时习惯于用共阴极数码管,在本实验中采用共阴极数码管。
1)字形码表的产生以共阴极为例,LED七段数码管的每一段接高电平时亮,不同的2)显示方式: 静态显示在静态显示方式下,每一位显示器的字段控制线是独立的。
当显示某一字时,该位的各字段线和字位线的电平不变,也就是各字段的亮灭状态不变。
静态显示方式下LED 显示器的电路连接方法是:每位LED 的字位控制线门共阴极点或共阳极点连在一起,接地或接 + 5V ;由于显示的是整数,所以小数点那位可以不接,所以其字段控制线 (a ~g )分别接到一个7位口。
动态显示1)利用人眼的视觉暂留效应,通过位选分时显示不同的数码管,这样可以看到正常的显示。
调用延时子程序循环显示各路水压值, 使能清楚的看到八路水压的大小。
2)本实验采用共阴极数码管,动态循环显示各路水压值,并在设置上下限时显示上下限的大小。
显示数码与共阴极断码的对应关系:0 1 2 3 4 5 6 7 8 9 3FH06H 5BH 4FH 66H6DH7DH07H 7FH 6FH静态显示占的的IO 资源多,动态显示可以节省IO 口,本实验中IO 口足够用,所以用静态显示。
3.设计说明99秒表的设计有2个控制键,开始键和复位键,按下开始键则开始计时,再按一下开始键则停止计时,显示计时的秒数,按一下复位键则复位,显示00。
按键通过外部中断来实现,用外部中断0和外部中断1来实现。
按下开始键则进入外部中断0,为了区分是开始计时还是计时停止,给寄存器R1赋初值为0,判断R1为零,给R1赋值1,则启动定时器,进入定时器中断,执行计时,每隔一秒数码管显示的值自动加一,当再次按下开始键时,再次进入中断0,R1的值为1,通过比较指令判断为停止计时指令,则跳转到指令使定时器停止计时,则显示定时的时间,同时把R1的值再设为0。
基于单片机的秒表设计与实现课程设计报告

基于单片机的秒表课程设计报告一、设计题目秒表系统设计——用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
另设计一个“开始”按键和一个“复位”按键。
二、增加功能增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)三、设计提要本实验利用单片机的定时器/计数器定时和记数的原理,结合dvcc实验箱上的集成电路芯片8032、LED数码管以及实验箱上的按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。
其中本实验设计了四个开关按键:其中一个按键按下去时以1秒加一开始计时,即秒表开始键(本实验中当开关从1变为0时开始计时),另一个按键按下去时暂停计时,使秒表停留在原先的计时(本实验中当相应开关从1变为0时即停止计时),第三个按键按下去时清0(本实验中当相应开关从1变为0时即停止计时),第四按键按下去则是以每10ms秒快速加一计时(本实验中当开关从1变为0 时开始计时)。
本实验中开始时都要使各按键回到各初始位置,即都处于1状态。
三、课设目的1、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
四、意义该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。
五、本人所做工作根据相关的单片机材料,利用所学的单片机知识,结合DVCC系列单片机微机仿真实验系统中的软件和硬件(集成电路芯片8032,七段数码管,开关电路及时钟信号电路,按键等),编写能够实现该项目的软件程序,最后将软、硬件有机的结合起来,进行有效的调试,达到完成该实验课程设计的目的要求。
六、实验内容用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
基于单片机的99秒表设计

毫秒缓冲清零 秒值加1
秒显缓冲清零 分显示加1
分显示清零 现场恢复
Y Y
图3 中断程序流程图 五、仿真结果与结论 1、数字式秒表准备状态仿真的显示如图4所示
图4 准备计时状态 2、数字式秒表运行状态的仿真如图5所示
图5 计时器状态 结论:我们可以发现数字式秒表计数一段时间的我们的标 准时间相比较出现了误差,所设计的数字式秒表比我们的标准
会显示出字形,取决于单片机对位选通COM端电路的控制,所 以我们只要将需要显示的数码管的选通控制打开,该位就显示 出字形,没有选通的数码管就不会亮。通过分时轮流控制各个 数码管的的COM端,就使各个数码管轮流受控显示,这就是动 态驱动。动态显示是利用人眼视觉暂留特性来实现显示的。事 实上,显示器上任何时刻只有一个数码管有显示。由于各数码 管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因 此看到的是连续显示的现象。为防止闪烁延时的时间在1ms左 右,不能太长,也不能太短。本设计可采用P1口直接驱动八段 数码管显示。此方案成本低,而且单片机的I/O口占用较少, 可以节约单片机接口资源,而且功耗更低。 三、硬件设计电路
ORG 00H SJMP MAIN ORG 0BH AJMP T0INT0 ORG 30H
MAIN: MOV SP, #60H MOV R4,#20 MOV TMOD,#01H MOV T H0,#03CH MOV TL0,#0B7H SETB ET0 SETB EA
附录 程序清单
;12M晶振时定时初值取#3CB7H
T0INT0: MOV TH0,#03CH ;定时中断子程序。重装定时常数 MOV TL0,#0B7H DJNZ R4,T0INTR ;50msX20=1S,未满20次,跳出中断子程序
基于单片机的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数码管原理与使用方法。
基于 单片机的数字秒表设计

上述程序所花时间为(248*2+2+2)*60=30ms,30ms足以消除抖动。
2.3.3
在本次的秒表系统电路设计图中,两位七段数码管与P0口相连,并分别占了和因为有译码器为接口,只要控制I/O口输出BCD码便能得到相应数字了。如显示0,由于0的BCD码为0000,所以指令为MOV P0,#00H。
PRESS_2:
CALL FILTER
JB,PRESS_3
JMP PRESS_2
PRESS_3:
JB,$
CALL FILTER
RELEASE:
JB,START
JMP RELEASE
DELAY:
MOV R7,#248
JNB,PRESS_2
DJNZ R7,$
DJNZ R6,DELAY
RET
FILTER:
参考文献
[1]康华光.模拟电子技术基础[M].北京:高等教育出版社,2006年5月第5版
[2]杨欣.51单片机应用从零开始[M].北京:清华大学出版社,2008年1月第一版
[3]李广弟、朱月秀、冷祖祁等.单片机基础[M].北京:北京航空航天大学出版社,2007年6月第三版
附录
I
ORG 00H
START:
秒表启动后,当第一次按下按钮开关后秒表开始计时。系统延时1秒,然后利用ADD指令,把显示的数字加一,这样就显示01,再延时再显示,如此循环,直到显示至99后,又返回00重新开始计时。
2.3.4
MOV R5,#10
ADD_1:
MOV R6,#200
CALL DELAY
DJNZ R5,ADD_1
DRESS_2
DJNZ R7,$
DJNZ R6,DELAY
单片机0-99计数器 秒表报告

.课程名称单片机原理及应用课程设计学号姓名班级指导老师时间信息工程学院. 设计过程、步骤(可加页):一、设计方案利用STC90C51单片机来制作一个手动计数器,在STC90C51单片机的P3.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7 接一个共阳数码管,作为00-99 计数的个位数显示,用单片机的P0.0-P0.7 接一个共阴数码管,作为00-99 计数的十位数显示;二、工作原理采用STC90C51单片机为中心器件,利用其定时器/计时器定时和计数的原理,结合硬件电路如电源电路、晶振电路、复位电路、显示电路,以及一些按键电路等来设计计时器,软硬件有机的结合起来,其中软件系统采用c语言编写程序,包括显示程序,快加程序,暂停程序等,硬件系统利用Keil强大的功能来实现,简单且易观察。
(一)开发板上硬件连线(如图1)1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8 芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。
2.把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8 芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h 端口上;3.把“单片机系统”区域中的P3.7/RD 端口用导线连接到“独立式键盘”区域中的SP1端口上。
图1 硬件电路连接图(二)显示电路两位数码管循环显示00~99电路数码管只要是用于数字的显示。
数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同。
两位数码管循环电路是由电阻、二极管和数码管组成,电源+5V通过560的电阻直接给数码管的7个段位供电,P0.0-P0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,P2.6接显示个位数的数码管的3、8引角,P2.7则接十位数的。
P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示需要的数字。
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口。
00-99秒表设计说明书

单片机课程设计说明书电子秒表的设计。
目录一、设计的任务与要求二、硬件电路设计三、软件设计流程四、设计调试过程五、源程序代码六、收获体会七、参考文献一、设计的任务与要求用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。
按键说明:按“开始”按键,开始计数,数码管显示从00开始每秒自动加一,再按“开始”键,停止计数;按“复位”按键,系统清零,数码管显示00。
二、硬件电路设计AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
AT89C52引脚图主要功能特性:1、兼容MCS51指令系统2、8k可反复擦写(大于1000次)Flash ROM;3、32个双向I/O口;4、256x8bit内部RAM;5、3个16位可编程定时/计数器中断;6、时钟频率0-24MHz;7、2个串行中断,可编程UART串行通道;8、2个外部中断源,共8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。
本设计利用AT89C52单片机的定时器/计时器定时和计数的原理,使其能精确计时。
设计中包括硬件电路的设计和系统程序的设计,其硬件电路主要有主控制器、计时与显示电路和复位电路等。
主控制器用AT89C52,显示电路采用共阴极LED数码管显示计时时间。
利用中断系统使其能实现开始暂停的功能。
P3.0,P3.1,RST开口接四个按钮,分别实现开始,暂停,复位的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STRT EQU P3.0 STP EQU P3.1 CLRR EQU P3.2
MOV 21H,A ;商(秒十位数) MOV A,25H MOV B,#10 DIV AB MOV 22H,B ;余数(分个位数) MOV 23H,A ;商(分十位数)
MOV A,20H ;秒个位 ACALL SEG7 MOV P1,A SETB P2.4 ACALL DLY CLR P2.4 MOV A,21H ;秒十位 ACALL SEG7 MOV P1,A SETB P2.5 ACALL DLY CLR P2.5 MOV A,22H ;分个位 ACALL SEG7 MOV P1,A CLR P1.7 SETB P2.6 ACALL DLY CLR P2.6 MOV A,23H ;分十位 ACALL SEG7 MOV P1,A SETB P2.7 ACALL DLY CLR P2.7 RET
END
时间要慢,而且相比较的时间越长他的时差越大。经过分其主 要原因与硬件和软件都有关。
软件原因:我们从外部中断请求有效到转向中断区入口地 址所需的机器周期数来计算中断时间,51系列单片机最短响应 时间为3个机器周期。在一般情况下中断响应时间通常无需考 虑,但在精确定时的应用场合需知道中断响应时间,以保证定 时的精确控制。
START: SETB TR0 AJMP K1
STOP: CLR TR0 AJMP K2
CLEAR: CLR TR0 MOV A,#0
MOV 20H,A MOV 21H,A MOV 22H,A MOV 23H,A MOV 24H,A MOV 25H,A MOV 26H,A AJMP K1
DISP: MOV A,24H MOV B,#10 DIV AB MOV 20H,B ;余数(秒个位数)
会显示出字形,取决于单片机对位选通COM端电路的控制,所 以我们只要将需要显示的数码管的选通控制打开,该位就显示 出字形,没有选通的数码管就不会亮。通过分时轮流控制各个 数码管的的COM端,就使各个数码管轮流受控显示,这就是动 态驱动。动态显示是利用人眼视觉暂留特性来实现显示的。事 实上,显示器上任何时刻只有一个数码管有显示。由于各数码 管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因 此看到的是连续显示的现象。为防止闪烁延时的时间在1ms左 右,不能太长,也不能太短。本设计可采用P1口直接驱动八段 数码管显示。此方案成本低,而且单片机的I/O口占用较少, 可以节约单片机接口资源,而且功耗更低。 三、硬件设计电路
T0INTR: RETI
DLY: MOV R7,#10 D1: MOV R6,#50
DJNZ R6,$ DJNZ R7,D1 RET
SEG7: INC A MOVC A,@A+PC RET
DB 0C0H;0 DB 0F9H;1 DB 0A4H;2 DB 0B0H;3 DB 099H;4 DB 092H;5 DB 082H;6 DB 0F8H;7 DB 080H;8 DB 090H;9
图1 秒表硬件图
四、软件设计(流程图)
MAIN 定义堆栈 显示缓冲单元清零 定时器0工作方式1 装载计数初值 定时开始 开中断 设置循环次数 调用显示子程序 等待定时中断请求 键盘扫描
图2 主程序流程图
是否满8次 是否满60
是否60S
是否满60
Y N N N N Y
返回 PDJW 现场保护 计数器重加载 循环次数减1
K1: LCALL DISP JB STRT,K2 LCALL DISP JNB STRT,$-3 AJMP START
K2: LCALL DISP JB STP,K3 LCALL DISP JNB STP,STOP
K3: LCALL DISP JB CLRR,K1 LCALL DISP JNB CLRR,CLEAR AJMP K1
LED数码显示器有如下两种连接方法:共阳极接法:把发 光二极管的阳极连在一起构成公共阳极,使用时公共阳极接 +5V,每个发光二极管的阴极通过电阻与输入端相连。共阴极 接法:把发光二极管的阴极连在一起构成公共阴极,使用时公 共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。
显示部分方案:显示部分采用动态显示。数码管动态显示 接口是单片机中应用最为广泛的一种显示方式之一,动态驱动 是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,h"的同名端连 在一起,另外为每个数码管的公共极COM增加位选通控制电 路,位选通由各自独立的I/O线控制,当单片机输出字形码 时,所有数码管都接收到相同的字形码,但究竟是那个数码管
ORG 00H SJMP MAIN ORG 0BH AJMP T0INT0 ORG 30H
MAIN: MOV SP, #60H MOV R4,#20 MOV TMOD,#01H MOV T H0,#03CH MOV TL0,#0B7H SETB ET0 SETB EA
附录 程序清单
;12M晶振时定时初值取#3CB7H
单片机原理及应用课程设计任务书
专业班级:电气工程及其自动化091班 学生 :黄新新(1609090110) 时间:2012年5月27日——2012年6月3日
题目:秒表
1. 设计要求 以AT89C51单片机为核心,制作一个秒表:
使用单片机AT89C51作为主要控制芯片,以四位一体共阳 极数码显示管显示,显示格式为 XX(分):XX(秒).XX, 精确到0.01s的整数倍。该数字式秒表通过按键控制可实现开 始计时、暂停计时和清零功能。按下START键,开始计时,按 下STOP键,暂停计时,按下CLEAR键,清零。 2. 工作原理
T0INT0: MOV TH0,#03CH ;定时中断子4,T0INTR ;50msX20=1S,未满20次,跳出中断子程序
MOV R4,#20 INC 24H
MOV A,24H CJNE A,#60,T0INTR MOV 24H,#0 INC 25H MOV A,25H CJNE A,#60,T0INTR MOV 25H,#0
对于时钟,它有两方面的含义:一是指为保障系统正常工 作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频 率的大小决定了单片机系统工作的快慢;二是指系统的标准定 时时钟,即定时时间,它通常有两种实现方法:一是用软件实 现,即用单片机内部的可编程定时/计数器来实现,但误差很 大,主要用在对时间精度要求不高的场合;二是用专门的时钟 芯片实现,在对时间精度要求很高的情况下,通常采用这种方 法。
毫秒值加1
毫秒缓冲清零 秒值加1
秒显缓冲清零 分显示加1
分显示清零 现场恢复
Y Y
图3 中断程序流程图 五、仿真结果与结论 1、数字式秒表准备状态仿真的显示如图4所示
图4 准备计时状态 2、数字式秒表运行状态的仿真如图5所示
图5 计时器状态 结论:我们可以发现数字式秒表计数一段时间的我们的标 准时间相比较出现了误差,所设计的数字式秒表比我们的标准