用定时器计数器设计一个简单的秒表

合集下载

制作一个LED数码管显示的秒表

制作一个LED数码管显示的秒表

计算机科学与工程系实验报告实验题目:制作一个LED数码管显示的秒表班级:姓名:学号:日期:一、实验目的掌握单片机使用定时计数器控制LED数码管的设计与软件编程二、实验要求1、用2位数码管显示计时时间,最小计时单位为“百毫秒”,计时范围0.1~9.9s;2、当第1次按下并松开计时功能键时,秒表开始计时并显示时间;3、第2次按下并松开计时功能键时,停止计时,计算两次按下计时功能键的时间,并在数码管上显示;4、第3次按下计时功能键,秒表清0,再按1次计时功能键,重新开始计时。

5、如果计时到9.9s时,将停止计时,按下计时功能键,秒表清零,再按下重新开始计时。

三、实验要求提交的实验报告中应包括:电路原理图、实验设计思路、C51源程序(含注释语句)、运行效果(含运行截图与说明)、实验小结三、硬件电路原理图的设计四、编程思路及C51源程序编程思路:使用外中断服务处理程序处理按键,内部设计一个计数器,记录按键按下的次数,根据按键次数完成相应的功能。

用数码管显示计时时间,根据按键的次数以及其功能来显示数字。

#include<reg51.h> //包含8051单片机寄存器定义的头文件unsigned char code discode1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef} unsigned char code discode2[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsigned char timer=0; //记录中断次数unsigned char second; //存储秒数unsigned char key=0; //记录按键次数main() //主函数{TMOD=0x01; //定时器T0方式1定时ET0=1; // 允许定时器T0中断EA=1; // 总中断允许second=0; //设初始值P0=discode1[second/10]; //显示秒位P2=discode2[second%10]; //显示0.1S位while(1) //循环{if((P3&0x80)==0x00) //当按键被按下时{key++; //按键次数加一switch(key) //根据按键次数分三种情况{case 1: //第一次按下为启动秒表表示TH0=0xee; //TL0=0x00; //TR0=1; //break; //case 2: //按下两次暂停秒表TR0=0; //break; //case 3: //按下三次秒表清零key=0; //second=0; //P0=discode1[second/10]; //P2=discode2[second%10]; //break;}while((P3&0x80)==0x00); //如果按键时间过长在此循环}}}}void int_t0() interrupt 1 using 0 //定时器T0中断子程序{TR0=0; //停止计时,执行以下操作(计时出现误差)TH0=0xee; //向TH0写入初值的高8位TL0=0x00; //向TL0写入初值的低8位,定时5mstimer++; //记录中断次数if (timer==20) //中断20次,20*5ms=100ms=0.1s{timer=0; //中断次数清0second++; //加0.1sP0=discode1[second/10]; //根据计时时间,即时显示秒位P2=discode2[second%10]; //根据计时时间,即时显示0.1s位}if(second==99) //当计时到9.9s时{TR0=0; //停止计时second=0; //秒数清0key=2; //按键数置2,当再次按下按键时,key++,即key=3,秒表清0复原}else //计时不到9.9s时{TR0=1; //继续计时}}五、仿真运行效果展示1、第一次按键,秒表开始计时,并计时到9.92、2次按键,停止计时,将计时的时间值送到数码管显示3、第3次按下计时功能键,秒表清零六、实验小结在实验的过程中,出现过几次错误,自己对理论知识了解的还不够透彻,所幸,通过自己思考解决了。

简易秒表的设计

简易秒表的设计

简易秒表的设计1 设计意义及要求1.1 简易秒表的设计意义简易秒表的设计是在我们学习了单片机技术之后的一次检测。

在已学内容的基础上熟练掌握,对未曾学习过的内容加以了解,从多个角度更加深刻理解和掌握单片机的理论与运用。

通过本次设计,能够提高大家对自己电工电子设计的兴趣与了解,以更好的理解本专业,从而在今后的学习中打下一个很好的基础。

1.2 简易秒表的设计要求1)利用单片机作为主控制器实现电子秒表,用4位LED数码管显示时间。

2)设置外部按键SB,当按键SB第一次按下时启动秒表开始计时;当第二次按下按键S1时秒表停止计时,当第三次按下按键S1时秒表回零;即用一个按键S1来控制秒表的启动、停止和回零功能。

2 简易秒表硬件电路设计采用ATMEL公司生产的AT89C51单片机控制器,用4位共阴LED数码管显示时间,为了节省单片机的I/O资源,LED数码管采用动态显示方式,由P2口的低4位输出位选信号,P1口输出LED数码管的显示段码。

用非门来提高P2口的驱动能力,使LED管达到合适的亮度。

完成设计的仿真电路如图2-1所示。

图2-1 基于单片机控制的秒表仿真电路图3 程序设计采用主程序调用子程序的设计方法,主程序首先对定时器和有关寄存器及存储单元进行初始化,调用按键扫描子程序和显示子程序,判断计时时间是否到9分59秒。

主程序设计流程图如图3-1所示。

按12MHz1,定时时间50ms。

计数值N=定时/计数器最大值M−定时/计数器初值X则初值X=M−N机器周期为TM=12×1/ƒosc=12×1/12×106=1s采用定时器工作方式1,所以初值为X=216−50ms/1us=15536=3CB0H所以TH0=3CH,TL0=B0H3.2 初始化通过初始化设定定时器0工作方式为方式1,开放定时器0的中断及总中断,分别给存放毫秒、秒、分的计数单元3FH,40H,41H,42H清零。

关闭定时/计数器T0。

简易秒表

简易秒表

实验六简易秒表设计1.任务目的进一步了解按键及LED数码管的接口设计掌握定时器/计数器的应用掌握中断技术的应用2.任务要求基本功能:用单片机控制2位数码管实现00~59的简易秒表,并利用3个独立式按键实现秒表的启动、停止和复位功能。

3.实验电路4.程序设计//功能:00~59简易秒表程序#include <reg51.h>unsigned char msec,sec; //定义msec为50ms计数变量,sec为秒变量void delay(unsigned char i); //延时函数参见任务1程序ex1_1.c//函数功能:定时器0中断函数,定时50ms到,自动执行该函数,判断是否中断20次void T0_INT(void) interrupt 1 //定时器0中断类型号为1{TH0=0x3c; //50ms定时初值TL0=0xb0;msec++; //中断次数增1if(msec==20) //中断次数到20次吗?{msec=0; //是,1秒计时到,50ms计数单元清零sec++; //秒单元加1if(sec==60) //到60秒吗?{sec=0; //是,秒单元清零}}}void main() //主函数{unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //定义数字0~9字型显示码unsigned char temp;TMOD=0x01; //定时器0工作方式1TH0=0x3c; //50ms定时初值TL0=0xb0;EA=1; //开总中断ET0=1; //开定时器0中断P3=0xff; //P3口做输入while(1) {P2=0x01; //选中P2.0控制的数码管P1=led[sec%10]; //显示秒个位delay(10);P2=0x02; //选中P2.1控制的数码管P1=led[sec/10]; //显示秒十位delay(10);temp=P3; //读入P3口引脚状态并取反temp=temp&0x2c; //屏蔽掉无关位,保留三位按键状态00x0xx00if(temp==0x28) //按下停止键TR0=0; //停止计数if(temp==0x24) //按下启动键TR0=1; //启动计数if(temp==0x0c) //按下复位键{ TR0=0;sec=0;msec=0; }}}void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数{unsigned char j,k; //定义无符号字符型变量j和kfor(k=0;k<i;k++) //双重for循环语句实现软件延时for(j=0;j<255;j++);}5.实验结果。

单片机秒表设计程序及原理图

单片机秒表设计程序及原理图

单片机秒表系统设计引言:中国使用单片机的历史只有短短的30年,在初始的短短五年时间里发展极为迅速。

纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。

以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。

在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。

这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了。

所以,它的魔力不仅是在现在,在将来将会有更多的人来接受它、使用它。

据统计,我国的单片机年容量已达3亿片,且每年以大约20%的速度增长,但相对于世界市场我国的占有率还不到1%。

特别是沿海地区的玩具厂等生产产品多数用到单片机,并不断地辐射向内地。

所以,学习单片机在我国是有着广阔前景的。

一、单片机秒表系统设计目的及内容1、利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。

2、综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。

3、通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。

4、通过本次系统设计,增强自己的动手能力。

认识单片机在日常生活中的应用的广泛性,实用性。

本系统利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。

模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计数的开启/暂停/继续与复位!其中有两个数码管用来显示数据,一个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。

基于单片机的简易秒表设计

基于单片机的简易秒表设计

• 207•ELECTRONICS WORLD ・技术交流1 前言生活中常见的定时有很多,如电视机定时关机、空调定时开关、微波炉定时加热等等。

单片机中的计数器除了可以作为计数之用外,还可以用作时钟,只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。

基于单片机定时器的简易秒表结构简单,使用方便。

2 电路设计简易秒表电路采用单片机的定时/计数器产生1s 信号,设计一个简易秒表,最大显示60。

2个LED 显示器段选段并联在一起,与单片机的P0口连接;P2口与2个PNP 型三极管的基极连接,驱动LED 显示器的位选端。

LED 为共阳极数码管,显示方式为动态显示。

具体如图1所示。

图1 硬件电路图3 程序设计软件整体设计思路是以动态显示作为主程序,定时器定时时间为50ms ,定时器50ms 溢出一次,溢出20次后秒值加1,中断服务程序流程图如图2所示。

(1)程序1的运行结果是:数码管显示00~59,每1s 变化一次,显示效果直观而且时间较为准确。

(2)注意定时器预置数后,在中断服务程序中还要再次重装定时器初值。

(3)程序的编制过程中,在主程序中用到的寄存器,若在中断服务程序中又要用到,则需要现场保护,同时在中断结束时,恢复现场,如程序中的累加器A 。

另外还要注意IE 、TCON 、TMOD等特殊功能寄存器的使用。

图2 中断服务程序4 结语本设计以51单片机为控制核心,介实现了简易秒表的设计,具有硬件结构简单、扩展性强、驱动能力强等特点,具有较高的应用价值。

参考:张靖武,周灵彬,单片机原理、应用于PROTEUS 仿真[M].北京:电子工业出版社,2010;孙勤江,沈彬,基于单片机的信号发生器设计[J].石油和化工设备,2014(01):11-23;熊华波,单片机开发入门及应用实例[M].北京:北京大学出版社,2011。

杨凌职业技术学院自然科学研究基金项目“无线远程监控技术在设施农业中的应用”(A2018051)。

单片机0-99计数器 秒表报告

单片机0-99计数器 秒表报告

姓名班级指导老师时间信息工程学院图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口送出数字得显示代码,数码管就能正常显示需要得数字。

图2 十位显示动态数码管(共阳数码管)图3 个位显示静态数码管(共阴数码管)(三)时钟电路时钟电路得晶振频率越高,系统得时钟频率越高,单片机得运行速度也越快。

晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中得电容应选择为30pF左右。

图4 时钟电路(四)复位电路MCS—51单片机得复位就是靠外部电路实现得。

MCS—51单片机工作之后,只要在她得RST引线上加载10ms以上得高点平,单片机就能有效地复位。

MCS-51单片机通常采用上电自动复位与按键复位两种方式。

最简单得复位电路如图5:图5 复位电路上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上得高电平,就能使单if(i++==100)//如果i=0{i=0;count++;P0=CODE[count/10];P2=~CODE[count%10];if(count==99)count=0; //如果到了99,则重新从0开始计数}}结果与分析(可以加页):(一)调试结果1.初始状态图7:初始状态结果图2.开始计时后按下按键暂停图8:中间状态图示(二)问题分析及解决措施1、一开始时没有分清楚数码管就是共阴数码管还就是共阳数码管,C语言程序中默认数码管就是共阴,所以两个P接口得值都就是按照共阴去写得,导致数码管选段及位显有问题,后来经过老师得指点,将共阳数码管P2得接口改成了共阴。

简易数字秒表的设计与实现

简易数字秒表的设计与实现

课程设计题目简易数字秒表的设计与实现学院信息工程学院专业通信工程班级姓名指导教师撒继铭2016 年 6 月26 日课程设计任务书学生姓名:专业班级:指导教师:撒继铭工作单位:信息工程学院题目: 简易数字秒表的设计与实现初始条件:本设计主要使用集成译码器、计数器、定时器、脉冲发生器和必要的门电路等来完成,用一组数码管显示时间计数值。

要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。

2、技术要求:1)设计一个能测量3名100米跑运动员短跑成绩的数字秒表。

要求用一组四位数码管显示时间,格式为00.00s,最大计数时间是99.99秒。

2)秒表设置3个开关输入(清零开关1个、记录开关1个、成绩开关1个)。

按下“记录”开关第一次,将记录并储存第一名运动员的成绩,以此类推。

当“记录”开关按下3次后,成绩计数结束。

3)成绩计数结束之后,连续按动“成绩”开关,可以把3个运动员的成绩循环显示在数码管上。

4)确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。

3、查阅至少5篇参考文献。

按《武汉理工大学课程设计工作规范》要求撰写设计报告书。

全文用A4纸打印,图纸应符合绘图规范。

时间安排:1、年月日,布置课设具体实施计划与课程设计报告格式的要求说明。

2、年月日至年月日,方案选择和电路设计。

3、年月日至年月日,电路调试和设计说明书撰写。

4、年月日,上交课程设计成果及报告,同时进行答辩。

指导教师签名:年月日系主任(或责任教师)签名:年月日目录简易数字秒表的设计与实现 (1)摘要 (1)Abstract (2)1 简易数字秒表原理 (4)1.1 简易数字秒表原理总述 (4)1.2 简易数字秒表原理框图 (4)1.3 方案选择 (4)1.3.1 初始方案 (4)1.3.2 方案比较 (5)1.4 单元电路的设计和元器件的选择 (5)1.4.1 555多谐振荡器 (5)1.4.2 计数系统 (7)1.4.3 译码系统及显示系统 (9)1.4.4 记录系统 (11)1.4.5 清零系统 (12)1.5 完整电路图 (12)2 仿真结果及分析 (13)2.1 仿真结果分析 (13)4 性能测试数据及分析 (15)5 收获、建议及体会 (16)7 原件清单 (17)8 参考文献 (18)简易数字秒表的设计与实现摘要随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,渗透到人们日常生活的方方面面,,掌握必要的数电知识已经成为当代大学生特别是理工类大学生必备的素质之一。

简易秒表的制作

简易秒表的制作

简易秒表的制作1.实训目的(1)利用单片机定时器中断和定时器计数方式实现秒、分定时。

(2)通过LED显示程序的调整,熟悉8155与8051,8155与LED的接口技术,熟悉LED动态显示的控制过程。

(3)通过键盘程序的调整,熟悉8155与矩阵式键盘的接口技术,熟悉键盘扫描原理。

(4)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。

2.实训设备与器件(1)实训设备:单片机开发系统、微机。

(2)实训器件:实训电路板1套。

3.实训步骤与要求(1)要求:利用实训电路板,以8位LED右边2位显示秒,左边6位显示0,实现秒表计时显示。

以4×4矩阵键盘的KE0、KE1、KE2等3键分别实现启动、停止、清零等功能。

(2)方法:用单片机定时器T0中断方式,实现1秒定时;利用单片机定时器1方式3计数,实现60秒计数。

用动态显示方式实现秒表计时显示,用键盘扫描方式取得KE0、KE1、KE2的键值,用键盘处理程序实现秒表的启动、停止、清零等功能。

(3)实验线路分析:采用实训电路板,其原理图参见附录。

8位LED显示的位码由8155的PA口输出,段码由8155的PB口输出,PB口线与LED之间接有200Ω限流电阻,LED为共阴极数码管,LED显示方式为动态显示方式。

4×4矩阵键盘的行线经5.1KΩ电阻上拉后与8155PC口的PC0~PC3口线相连,列线与8155PA口的PA0~PA3口线相连。

8155的控制口地址为4400H,PA口地址为4401H,PB口地址为4402H,PC口地址为4403H。

系统本采用11.0592MHz的晶振,本实训应改为12MHz晶振,以方便定时。

(4)软件设计:软件整体设计思路是以键盘扫描和键盘处理作为主程序,LED动态显示作为子程序。

二者间的联系是:主程序查询有无按键,无按键时,调用二次LED动态显示子程序(约延时8ms)后再回到按键查询状态,不断循环;有按键时,LED动态显示子程序作为按键防抖延时被连续调用二次(约延时16ms),待按键处理程序执行完后,再回到按键查询状态,同时兼顾了按键扫描取值的准确性和LED动态显示的稳定性。

简易秒表设计

简易秒表设计

简易秒表设计一、任务设计:1、设计任务设计并制作一个简易秒表。

2、设计要求●设计能记录60秒的秒表;●秒表功耗小于0.3mA/V。

3、发挥部分●能记录60秒的时间;●通过触碰工作或停止。

二、设计方案显示部分是本次设计的重要部分。

方案完全用软件实现秒表工作。

原理为:在单片机内部存储器设三个字节分别存放时钟的时分、秒信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。

该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。

而且由于每次执行程序时,定时器都要重新赋初值,所以该秒表精度不高。

4、显示部分显示部分由两个数码管组成。

5、电源模块●采用手机使用电池可以满足供电,不需经常更换,更环保。

●供能电源便宜。

三、总体方案1、工作原理本设计采用STC89C51RC单片机作为本系统的控制模块。

单片机可把控制两个LED数码管记时的数据由软件来处理,从而把数据传输到显实模板,实现记时的功能。

以两个LED数码管为显示模板,把单片机传来的数据显示出来,来进行60秒记时。

在显示电路中,主要靠按键来开始、调零、复位。

2、总体设计设计总体框架图如图1四、系统硬件部分1. STC89C52RC单片机最小系统最小系统包括晶体振荡电路、复位开关和电源部分。

图2为STC89C51RC单片机的最小系统。

图2 最小系统电路图2、存储器模块存储器采用Atmel公司的STC89C52RC芯片。

该芯片内部含有256个8位字节,可通过I2C总线对其接口进行读写操作,而且带有写保护功能。

其接线图如图3所示。

图3 T24C02存储器电路5、数码管显示模块采用两个数码管进行记时工作,具有很低的功耗,正常工作时电流仅 2.0mA/5.0V。

通过编程实现自动关闭屏幕能够更有效的降低功耗。

简易秒表设计

简易秒表设计
dd_second=0; second++; if(second==100)
second=0; } else
dd_second++; } } /*********程序到此完成 ok!!!!*****************/
Created with novaPDF Printer (). Please register to remove this message.
Created with novaPDF Printer (). Please register to remove this message.
4.实物连接图如下: 实物图 1:
Created with novaPDF Printer (). Please register to remove this message.
独立按键连接图
3. 实验板上操作:
1)将数码管位选开关拨到 ON(请看下面实物图 1),原先有做其他实验的短路冒建议全 部拨起来放在旁边;
2)把液晶那边的拨码开关全部拨到 OFF,也就是不要拨到 ON 上(看实物图 2) 3)将¡ 简易秒表设计程序¡ 的 HEX 文件烧到单片机里; 4)如说原先做了流水灯的实验,建议将流水灯那个部分的短路冒拔起来。
Created with novaPDF Printer (). Please register to remove this message.
case 3: key_value=0; second=0; dd_second=0; go_flag=0; break;
} while(P2_0==0); } } if(go_flag==0) { dispbuff[0]=dd_second%10;//百分之一秒 dispbuff[1]=dd_second/10;//十分之一秒 dispbuff[3]=second%10; //秒个位 dispbuff[4]=second/10; //秒十位 for(i=0;i<8;i++) { P0=0XFF; P0=numcode[dispbuff[i]]; P1=bitcode[i]; delay_nms(10); } } } }

秒表倒计时定时器的设计

秒表倒计时定时器的设计
我所设计的这个秒表/倒计时定时器系统,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。
第一章概述
1.1概述
电子秒表的主电路主要采用基本RS触发器、时钟发生器、复位电路、计数、译码显示电路和共阴极数码管等构成。本设计大多数采用数字电路,其原因是数字电路具有抗干扰性强、精度高、保密性好、容易处理信息、互换性好、实现计数功能和成本低(重点)等特点。
图2.1 89C51单片机
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
由于是通过555 多谐振荡器新生计数脉冲,电源的稳定性影响着振荡器的输出频率的精确性。所以电源电路要保证输出电压稳定在5V 。

简易秒表设计报告

简易秒表设计报告

简易秒表设计报告一.前言在电子科学技术高速发展的今天,高科技产品越来越多的应用在我们的日常生活中,给我们的生活带来了非常大的方便,每时每秒我们都能感受到产品的更新换代。

产品和技术革新的日新月异都让人非常惊讶。

像平常我们工作所用的电脑、手机和生活所用的电视机,收音机,Mp3等等,这些高科技产品给我们带来了极大的方便,但这要归功于科学技术的高速发展。

简易秒表是我们的单片机课程设计题目。

简易秒表涉及到《模拟电子技术》和《电路分析》中的相关知识。

本文介绍的简易秒表电路设计新颖具有电路结构简单、成本较低、操作方便、灵敏可靠等优点,经使用效果良好,具有较高的推广价值。

二.系统设计要求⑴硬件设计:根据任务要求,完成单片机最小系统及其扩展设计。

⑵软件设计:根据硬件设计完成显示功能要求,完成控制软件的编写与调试;利用单片机定时器中断和定时器计数方式实现秒定时。

通过LED显示程序的调整,熟悉LED动态显示的控制过程。

⑶ 功能要求:用PB1启动秒表和停止秒表,PB2键将秒表归零,按一下PB1,即开始定时,在数码管上每秒加1,加到99,归零,秒表在暂停状态下,按下PB3键可对秒数加1,按下PB4键可对秒数减1。

(4)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。

三.设计思路分析本设计以单片机为核心设计的简易秒表方案是:用按钮PB1启动秒表和停止秒表,开启后立刻进入计时状态,用定时器T0进行1s的计数,每隔1s就把预设时间加1,用一个两位的LED数码管显示时间,按钮PB2将秒表归零,如果第二次按一下S1键,计时会立即停止,在数码管上显示当前秒数,这时如果按下PB2键,数码管会显示00,直到再次按下PB1键计时才会开始,当秒数加到99后,下一秒数码管会归零,即从0开始重新每秒加1计时。

另外在P1口的0和1引脚各连接一个按钮,一个进行加1,另一个进行减1。

电子技术课程设计报告--电子秒表的设计

电子技术课程设计报告--电子秒表的设计

电子技术课程设计报告--电子秒表的设计一、设计目的本次课程设计的目的是设计一款电子秒表,实现具备暂停和复位功能的计时功能。

通过设计本次课程,我将学习到如何运用单片机实现计时功能,同时也将提高自己的电子设计能力。

二、设计原理本次设计采用AT89S52单片机作为控制芯片,通过单片机控制数码管的显示,完成对时间的计时和显示功能。

下面详细介绍如何实现设计的计时功能。

1、初始化:将计时器寄存器清零,并设置定时器为8位计时模式,同时设置时钟源为频率为12MHz的晶振。

2、启动计时:将定时器计数器初始值设置为0,同时启动计时器。

3、计时:定时器开始工作后,每过1ms,计时器的值就会加1,当计时器的值达到255时,定时器会自动清零,并触发定时溢出中断。

4、显示:将计时器的值传入程序中,经过处理后,将时间转化为时、分、秒、毫秒等信息,并通过数码管的显示完成时间的显示。

5、暂停功能:通过按下暂停键,可以停止计时器的工作,并记录下当前的计时时间。

6、复位功能:通过按下复位键,可以将计时器的值清零,并停止计时器的工作。

三、硬件设计1、主控芯片AT89S52单片机:采用AT89S52单片机作为控制核心,具有一定的处理能力和存储容量,能在实现计时功的同时,还实现一些其他的控制功能。

2、显示模块数码管:本设计采用了4位共阴数码管,能够完成对时间的显示。

3、按键模块本设计采用了两个按键,一个用于暂停功能,一个用于复位功能。

4、电源模块本设计采用了12V电源转接头,将12V电源转化为单片机和数码管所需要的5V电压。

5、其他零件晶振:采用12MHz的晶振作为单片机的时钟源。

电容:采用22pF电容和晶振配对使用,稳定时钟信号。

四、软件设计本设计采用Keil C51软件进行开发。

软件编写的主要思路如下:1、GPIO配置:定义IO口及初始化相关设置,如数码管的引脚及输出方向。

2、时钟初始化:配置外部晶振的时钟源,并初始化相应的寄存器。

3、定时器初始化:设定中断周期,选择定时器的计数模式,启动定时器,并设置中断优先级。

简易秒表的制作

简易秒表的制作

TF1(TCON.7): 溢出中断请求标志位。T1计数溢出时由硬件自 ( ):T1溢出中断请求标志位 ): 溢出中断请求标志位。 计数溢出时由硬件自 动置TF1为1。CPU响应中断后 响应中断后TF1由硬件自动清 。T1工作时,CPU 由硬件自动清0。 工作时 工作时, 动置 为 。 响应中断后 由硬件自动清 可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可 的状态。 可用作查询测试的标志。 可随时查询 的状态 所以, 可用作查询测试的标志 也可 以用软件置1或清 或清0,同硬件置1或清 的效果一样。 或清0的效果一样 以用软件置 或清 ,同硬件置 或清 的效果一样。 TR1(TCON.6): 运行控制位。TR1置1时,T1开始工作;TR1置 ):T1运行控制位 开始工作; ( ): 运行控制位。 置 时 开始工作 置 0时,T1停止工作。TR1由软件置 或清 。所以,用软件可控制定时 停止工作。 由软件置1或清 时 停止工作 由软件置 或清0。所以,用软件可控制定时/ 计数器的启动与停止。 计数器的启动与停止。 TF0(TCON.5): 溢出中断请求标志位,其功能与 ):T0溢出中断请求标志位 类同。 ( ): 溢出中断请求标志位,其功能与TF1类同。 类同 TR0(TCON.4): 运行控制位,其功能与 ):T0运行控制位 类同。 ( ): 运行控制位,其功能与TR1类同。 类同
T1
T0
GATE:门控位。GATE=0时,只要用软件使 :门控位。 中的TR0 = 时 只要用软件使TCON中的 中的 计数器工作; 或TR1为1,就可以启动定时 计数器工作;GATA=1时,要用 为 ,就可以启动定时/计数器工作 = 时 软件使TR0或TR1为1,同时外部中断引脚 软件使 或 为 ,同时外部中断引脚INT0/1也为高电平 也为高电平 才能启动定时/计数器工作 即此时定时器的启动条件, 计数器工作。 时,才能启动定时 计数器工作。即此时定时器的启动条件, 加上了INT0/1引脚为高电平这一条件。 引脚为高电平这一条件。 加上了 引脚为高电平这一条件 :定时 计数模式选择位。 定时/计数模式选择位 为定时模式; =1为计 = 为定时模式 为计 C / T 定时 计数模式选择位。 C/T0为定时模式; C / T 数模式。 数模式。 M1M0:工作方式选择位。定时 计数器有四种工作方式,由 计数器有四种工作方式, :工作方式选择位。定时/计数器有四种工作方式 M1M0进行设置。 进行设置。 进行设置

简易数字秒表的设计

简易数字秒表的设计

简易数字秒表的设计一、设计目的1、设计一个显示范围为24小时60分钟60秒的简易数字秒表。

2、掌握动态扫描电路的设计方法。

二、设计原理1、能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时、60分钟、60秒钟的计数器显示。

2、能利用实验系统上的按键实现“校时”“校分”功能:⑴按下“SA”键时,计时器迅速递增,并按24小时循环,计满23小时后回“00”;⑵按下“SB”键时,计分器迅速递增,并按59分钟循环,计满59分钟后回“00”,但不向“时”进位;按下“SC”键时,秒清零;⑷要求按下“SA”、“SB”或“SC”时均不产生数字跳变(SA”、“SB”、“SC”按键是有抖动的,必须对其消除抖动处理)。

3、能利用扬声器做整点报时:⑴当计时到达59分50秒时开始报时,在59分50秒、52秒、54秒、56秒、58秒鸣叫,鸣叫声频率可定为500Hz;⑵到达59分60秒时为最后一声整点报时,整点报时频率可定为1KHz。

三、设计结果1、仿真波形图。

2、数字秒表对应顶层原理图数字秒表对应VHDL程序代码-- 时_计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HOUR isport( clk: in std_logic;hour: out std_logic_vector(7 downto 0));end HOUR;architecture behave of HOUR issignal shi : std_logic_vector(7 downto 0);beginprocess(clk)beginhour<=shi;if (clk'event and clk='1') thenif(shi<"00100100") then --<24小时if(shi(3 downto 0)="1001") thenshi<=shi+1;elseshi<=shi+'1';end if;elseshi<="00000000";end if;end if;end process;end behave;-- 分_计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MINUTE isport(clk : in std_logic;minute : out std_logic_vector(7 downto 0); shi_in : out std_logic );end MINUTE;architecture behave of MINUTE issignal fen : std_logic_vector(7 downto 0);beginprocess(clk)beginminute <=fen;if (clk'event and clk='1') thenif(fen(3 downto 0)="1001") thenif(fen="01011001") thenshi_in<='1'; fen<="00000000";elsefen<=fen+7;end if;elsefen<=fen+'1';shi_in<='0';end if;end if;end process;end behave;-- 秒_计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SECOND isport(clk,sc : in std_logic;second : out std_logic_vector(7 downto 0); fen_in : out std_logic );end SECOND;architecture SEC of SECOND issignal miao : std_logic_vector(7 downto 0);beginprocess(clk,sc)beginsecond <=miao;if(sc='1')thenmiao<="00000000";elsif (clk'event and clk='1') thenif(miao(3 downto 0)="1001") thenif(miao="01011001") thenfen_in<='1'; miao<="00000000";elsemiao<=miao+7;end if;elsemiao<=miao+'1';fen_in<='0';end if;end if;end process;end SEC;-- 控制块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity setup isport(clk,sel,co : in std_logic;clkout: out std_logic );end setup;architecture behave of setup issignal shi : std_logic_vector(7 downto 0); beginprocess(clk,sel,co)beginif(sel='1')thenclkout<=clk;elseclkout<=co;end if;end process;end behave;-- 报时_模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity speek isport(clk1:in std_logic;second,minute :in std_logic_vector(7 downto 0);speak: out std_logic );end speek;architecture behave of speek issignal temp : std_logic_vector(1 downto 0);signal clk2 : std_logic;beginprocess(clk1,clk2)beginif(minute="01011001")thencase second iswhen"01010000"=>speak<=clk2;when"01010010"=>speak<=clk2;when"01010100"=>speak<=clk2;when"01010110"=>speak<=clk2;when"01011000"=>speak<=clk2;when"01011001"=>speak<=clk1;when others=>speak<='0';end case;elsespeak<='0';end if;end process;process(clk1)beginif(clk1'event and clk1='1')thenif(temp="01")thentemp<="00"; clk2<=clk1;elsetemp<=temp+1;clk2<=not clk1;end if;end if;end process;end behave;-- 译码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY led_7 ISPORT(bcd: IN STD_LOGIC_VECTOR(3 DOWNTO 0);cout: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END led_7;ARCHITECTURE behave OF led_7 ISbeginPROCESS(bcd)begincase bcd iswhen "0000" => cout <= "1111110"; when "0001" => cout <= "0110000"; when "0010" => cout <= "1101101"; when "0011" => cout <= "1111001"; when "0100" => cout <= "0110011"; when "0101" => cout <= "1011011"; when "0110" => cout <= "0011111"; when "0111" => cout <= "1110000"; when "1000" => cout <= "1111111"; when "1001" => cout <= "1111011"; when others => null;end case;end process;end behave;-- 显示_模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity led_control isport(clk,reset:in std_logic;second,minute,hour : in std_logic_vector(7 downto 0);daout:out std_logic_vector(3 downto 0);sel : out std_logic_vector(5 downto 0));end led_control;architecture behave of led_control issignal temp : std_logic_vector(2 downto 0);beginprocess(clk,reset)beginif(reset='1')thentemp<="000";elsif(clk'event and clk='1') thenif(temp="101")thentemp<="000";elsetemp<=temp+'1';end if;end if;end process;process(clk,reset)beginif(reset='1')thendaout<="0000"; sel<="000000";elsif(clk'event and clk='1') thencase temp iswhen "000"=>daout<=second(3 downto 0);sel<="000001";when "001"=>daout<=second(7 downto 4);sel<="000010";when "010"=>daout<=minute(3 downto 0);sel<="000100"; when "011"=>daout<=minute(7 downto 4);sel<="001000"; when "100"=>daout<=hour(3 downto 0);sel<="010000"; when "101"=>daout<=hour(7 downto 4);sel<="100000"; when others=>daout<="0000";sel<="000000";end case;end if;end process;end behave;。

单片机数码管秒表程序

单片机数码管秒表程序

单片机数码管秒表程序
数码管秒表是一种常见的计时工具,它利用单片机控制数码管的显示来实现计时功能。

下面我将为大家介绍一种基于单片机的数码管秒表程序。

程序的实现思路如下:首先,我们需要使用单片机的定时器来实现时间的计数。

通过设置定时器的计数周期和中断处理函数,我们可以在每个固定的时间间隔内进行一次计数。

然后,我们需要将计数的结果通过数码管进行显示。

为了方便显示,我们可以将计数结果分为小时、分钟和秒三个部分,分别显示在数码管的不同位上。

程序的具体实现步骤如下:
1. 初始化单片机的定时器,并设置计数周期为1秒。

2. 设置一个全局变量来保存计数的结果,初始值为0。

3. 在定时器的中断处理函数中,每次中断时将计数结果加1。

4. 在主函数中,设置一个循环来不断检测计数结果的变化,并将其转换为时、分、秒的形式。

5. 将转换后的时、分、秒分别显示在数码管的不同位上,通过控制数码管的引脚来实现。

通过以上步骤,我们就可以实现一个简单的数码管秒表程序。

当程序运行时,数码管会不断地显示计时结果,从0开始递增,以秒为单位。

当需要停止计时时,可以通过外部按键等方式来暂停或重置计数结果。

这种数码管秒表程序可以广泛应用于各种计时场景,比如运动比赛、实验计时等。

它的实现简单、成本低廉,并且可以精确地显示时间,非常实用。

希望通过以上介绍,大家对基于单片机的数码管秒表程序有了更深入的了解。

希望这个简单的程序能够帮助大家更好地实现计时功能,提高工作和学习的效率。

谢谢大家!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录摘要................................................................................................ 错误!未定义书签。

1 Proteus简介错误!未定义书签。

2 主要相关硬件介绍错误!未定义书签。

AT89C52简介错误!未定义书签。

四位数码管错误!未定义书签。

74LS139芯片介绍错误!未定义书签。

3 设计原理错误!未定义书签。

4 电路设计错误!未定义书签。

电路框图设计错误!未定义书签。

电路模块介绍错误!未定义书签。

控制电路错误!未定义书签。

译码电路错误!未定义书签。

数码管显示电路错误!未定义书签。

仿真电路图错误!未定义书签。

5 设计代码错误!未定义书签。

6 仿真图错误!未定义书签。

7 仿真结果分析错误!未定义书签。

8 实物图错误!未定义书签。

9 心得体会错误!未定义书签。

参考文献错误!未定义书签。

摘要现在单片机的运用越来越宽泛,大到导弹的导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理,小到广泛使用的各种智能IC卡、各种计时和计数器等等。

本次课设我们要设计一个能显示计时状态和结果的秒表,它是基于定时器/计数器设计一个简单的秒表。

本次设计的数字电子秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。

将软、硬件有机地结合起来,使得系统能够实现四位LED显示,显示时间为0~秒,计时精度为秒,能正确地进行计时,并显示计时状态和结果。

其中软件系统采用汇编或者C语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在keil中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。

关键词:秒表,AT89C51,proteus,C语言1 Proteus简介Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

Proteus软件具有其它EDA工具软件(例:multisim)的功能。

这些功能是:1.原理布图2.PCB自动或人工布线3.SPICE电路仿真4.互动的电路仿真5.仿真处理器及其外围电路Proteus拥有丰富的资源,它体现在:1.Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。

2.Proteus可提供的仿真仪表资源:示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。

理论上同一种仪器可以在一个电路中随意的调用。

3.除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。

这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。

这些都尽可能减少了仪器对测量结果的影响。

4.Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。

这些测试信号包括模拟信号和数字信号。

Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。

前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

课程设计、毕业设计是学生走向就业的重要实践环节。

由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。

它具有设计灵活,结果、过程的统一的特点。

可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。

相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。

2 主要相关硬件介绍AT89C52简介AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

AT89C52单片机参数如下:1、兼容MCS51指令系统2、8kB可反复擦写(大于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工作原理与AT89C51单片机工作原理类似,AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。

RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。

P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能,详细端口分布见图2-1图2-1 AT89C52端口图四位数码管四位数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图2-2所示。

通过控制各个LED的亮灭来显示数字。

图2-2 四位数码管74LS139芯片介绍74LS139 为两个2线-4 线译码器,共有54/74S139和54/74LS139 两种线路结构型式,当选通端(G1)为低电平,可将地址端(A、B)的二进制编码在一个对应的输出端以低电平译出。

若将选通端(G1)作为数据输入端时,139 还可作数据分配器。

具体的端口图见图2-3.图2-3 74LS139引脚图3 设计原理利用AT89S52单片机的定时器,使其能精确计时。

利用中断系统使其实现启动、暂停以及复位清零的功能,P0口输出段码数据,~连上译码器作为位选,和接口的两个按钮分别实现启动/暂停和复位功能。

计时器采用T0中断实现,定时溢出中断周期为1ms ,当溢出中断后向CPU 发出溢出中断请求,每发出10次中断请求就对10ms 位(即最后一位)加一,达到100次就对100ms 位加一,以此类推,直到为止。

再看按键的处理。

两个按键采用中断的方法,设置外部中断0和外部中断1位脉冲边沿触发方式,这样一来每当按键按下时便会触发中断,从而实现启动/暂停和复位。

开始键和暂停键使用了外部中断,所以需要连到单片机的和引脚上,这两个I/O 口的第二功能是单片机的外部中断0端口和外部中断1端口。

显示电路由四位数码管组成,采用动态显示方式,因此有8位段控制和4位位控制,8位段接控制接P0口,~分别控制数码管的a b c d e f g dp 显示,位控制接在和两个口,在通过一个2—4译码器实现位控制。

4 电路设计 电路框图设计四位数码管图4-1 电路设计框图电路模块介绍控制电路图4-2控制模块本次课设设计了两个按钮,一个为开始和暂时按钮,另外一个为复位按钮,当按下按钮时,会根据程序中的相应中断程序来实现相关功能。

译码电路图4-3 2-4译码电路2-4译码电路通过74LS139芯片来实现译码功能,其中A口接单片机口,B口接口,E口接地,Y0~Y3口接数码管的1234口,2-4译码电路实现了对数码的位选功能。

数码管显示电路图4-4 数码管显示电路本次显示使用的数码管为八段数码管,共有8八二极管显示单元,其中一个为小数点了,A、B、C、D、E、F、G、DP口接单片机上的~口,来进行段选,1~4口接上文的译码电路。

完成对秒表记时的显示。

仿真电路图图4-2 仿真电路5 设计代码#include<>unsigned int data table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};片微型计算机与接口技术.电子工业出版社,张毅刚. 基于Proteus的单片机课程的基础实验与课程设计.人民邮电出版社.[3] 薛晓书.单片微机原理及接口技术[M].西安石油大学[4] 朱清慧. Proteus教程.清华大学出版社.[5] 郭天祥.新概念51单片机C语言教程.电子工业出版社. John Byrne,JohnBolton 等编著. Proteus. Marvel Comics出版社,本科生课程设计成绩评定表指导教师签字:年月日。

相关文档
最新文档