用定时器计数器设计一个简单的秒表
制作一个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计数器 秒表报告

姓名班级指导老师时间信息工程学院图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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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出版社,本科生课程设计成绩评定表指导教师签字:年月日。