课程设计名称:单片机原理及接口技术题目:基于单片机的秒表计时器设计学期:2014-2015学年第一学期专业:电气技术班级:姓名:学号:指导教师:辽宁工程技术大学课程设计成绩评定表学期2014-2015(一)姓名专业电气技术班级课程名称单片机原理及接口技术论文题目基于单片机的秒表计时器设计评定指标评定指标分值得分知识创新性20理论正确性20内容难易性15结合实际性10知识掌握程度15书写规范性10工作量10总成绩100评语:任课教师时间2014年1月10日备注课程设计任务书一、设计题目秒表计时器二、设计任务本课题以单片机为核心,设计和制作一个秒表计时器。三、设计计划课程设计一周第1天:查找资料,方案论证。第2天:各部分方案设计。第3天:各部分方案设计。第4天:撰写设计说明书。第5天:校订修改,上交说明书。四、设计要求1、绘制软件流程图并利用汇编语言编写软件程序;2、绘制系统硬件原理图;3、形成设计报告。指导教师:教研室主任:2014年5月26日摘要本设计利用89C51单片机设计秒表计时器,通过LED显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒到来时,就让秒计数单元加一,通过控制使单片机秒表计时,暂停,归零。设计任务包括控制系统硬件设计和应用程序设计。关键词:51单片机;74HC573;LED数码管目录综述………………………………………………………………………11程序方案………………………………………………………………21.1方案论证……………………………………………………………21.2总体方案……………………………………………………………22部分设计……………………………………………………………32.189C51单片机……………………………………………………32.2晶体振荡电路………………………………………………………42.3硬件复位电路………………………………………………………52.4显示电路……………………………………………………………62.5整体电路图…………………………………………………………73程序设计………………………………………………………………83.1程序流程框图………………………………………………………83.2显示程序流程图……………………………………………………93.3汇编源程序…………………………………………………………104调试说明……………………………………………………………134.1概述…………………………………………………………………134.2电路原理图…………………………………………………………13心得体会………………………………………………………………15参考文献………………………………………………………………161综述单片机是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而51单片机是各单片机中最位典型和最有代表性的一种。中国使用单片机的历史只有短短的30年,在初始的短短五年时间里发展极为迅速。纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。本课题以单片机为核心,设计和制作一个秒表,开始时,显示“00”,第1次按下按钮后就开始计时;第2次按按钮后,计时停止;第3次按按钮后,计时归零。根据设计要求设计出了符合要求的秒表计时器。21程序方案1.1方案论证时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路。但根据显示方式的不同选择,我们可以有几种方案:方案一:使用静态显示方式。静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。因而此设计中使用的显示位数使用了三个8位并行I/O口。如果另外想扩展单片机功能,则能使用的输出管脚很是有限。方案二:使用动态显示方式。这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。1.2总体方案由课程设计的要求和任务,采用的汇编语言编程,设计秒表要求一秒定时,采用了定时器T0和(存储单元NTA)扩展来定时,即用单片机内部的定时器T0。先将时钟初始化,赋入初值25ms定时,循环40次来进行1秒定时。然后由R3来进行加一运算,然后将其值通过P1(段显示),P2口(位显示)在数码管上进行显示时,在程序中首先定义一个关于数码管显示的字形码定义,以便在显示时调用即可。编写秒表程序,使其通过I/O的输出在数码管上显示秒表的计时情况,通过I/O口的输入与中断程序级按键程序实现INT中断功能和控制秒表的“停”与“走”。图1-1晶振电路AT89C51单片机显示电路复位电路32部分设计2.189C51单片机MCS—51系列单片机是8位单片机产品,89C51是其中的代表,基本模块包括以下几个部分:(1)CPU:89C51的CPU是8位的,另外的89C51内部有1个处理器(2)ROM:4KB的片内程序存储器,存放开发调试完成的应用程序(3)I/O口:P0—P3,共4个口32条内部中断,2个外部中断(4)RAM:256B的片内数据存储器,容量小,但作用大(5)中断系统:共5个中断源,3个内部中断,2个外部中断(6)定时器/计数器:2个16位的可编程计数器/定时器(7)通用串口:全双工通用异步接收器/发送器(8)振荡器:89C51的外接晶振与内部时钟振荡器位CPU提供时钟信号(9)总线控制:89C51对外提供若干控制总线,便于系统扩展。4AT89C51管脚图如下:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427图2-12.2晶体振荡电路89C51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反相振荡放大器的输入及内部时钟工作电路的输入和来自反相振荡器的输出,该反相放大器可以配置为片内振荡器。这里选用51单片机的内部振荡方式,电路图如下:C2,C3起稳定振荡频率,快速起振的作用。其中晶振采用12兆赫兹的,一个机器周期是1微秒。方便计算初值等。5XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C1C2X1+5v图2-22.3硬件复位电路图中P1.6接了控制按键,实现对秒表电路的控制。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C2R1C3+5v+5V图2-362.4显示电路采用一个两位的LED数码管,LED是八段显示器,内部有7个条形发光二极管和1个小圆点发光二极管,根据各管的亮暗组成字符。在用数码管显示时,有静态和动态两种选择,这里选用LED动态显示,用P0,P2,P2口位驱动显示,由于P0口没有上拉电阻,因此P0口需要外接上拉电阻才能输出高电平,这里使用8个240欧的电阻作为上拉电阻。电路图如下:位控端用74HC573来驱动XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D02D13D24D35D46D57D68D79Q019Q118Q217Q316Q415Q514Q613Q712LE11OE1U274HC573R210kR310kR410kR510kR610kR710kR810kR910k+5V图2-472.5整体电路图图2-5XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C1C2X1R1C3+5vD02D13D24D35D46D57D68D79Q019Q118Q217Q316Q415Q514Q613Q712LE11OE1U274HC573R210kR310kR410kR510kR610kR710kR810kR910k+5V+5V83程序设计3.1程序流程框图图3-1设定初值判断按键按下两次按下三次按下一次停止计数开始计数恢复归零显示数据超过100恢复初始化93.2显示程序流程图图3-2开始初始化显示参数取第一位待显数取下一位显示数据输出位码到P2口取显示数据查表转换代码到P0口两位显示完了?延时103.3汇编源程序NTAEQU30HNTBEQU31HKEYEQU32HBUTBITP1.6FLAGBITP3.0ORG00HLJMPSTARTORG0B