




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机系统课程设计成绩评定表设计课题:基于89c51的led数字秒表设计学院名称: 电气工程学院 专业班级:学生姓名:学号:指导教师:设计地点 :设计时间 :指导教师意见:成绩: 签名: 年 月 日单片机系统技术课程设计 课程设计名称:基于89c51的led数字秒表设计专业班级:学生姓名:学号:指导教师:课程设计地点:课程设计时间: 单片机系统 课程设计任务书学生姓名专业班级学号题目课题性质工程设计课题来源自拟指导教师主要内容(参数)利用89c51设计一个数字秒表,使其实现以下功能:1具有计时功能;2可通过按键设置,启动计时;3. 可以实现数据清零设置;4设置按键能够停止计时;5能够实现时间显
2、示。任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料1 张迎新单片微型计算机原理、应用及接口技术(第2版)m北京:国防工业出版社,20042伟福lab6000系列单片机仿真实验系统使用说明书3 阎石数字电路技术基础(第五版)北京:高等教育出版社,20064 黄艳玲,计算机接口
3、技术试验指导书,重庆大学出版社。审查意见系(教研室)主任签字: 年月日目 录1引言31.1研究背景31.2设计思想及基本功能42总体方案设计42.1方案选取42.2系统框图52.3总体方案设计53硬件电路设计53.1 89c51单片机的引脚及模块说明53.2晶体振荡电路63.3复位电路73.4按键电路73.5显示电路83.6引脚控制说明83.7绘制电路原理图94系统软件设计94.1程序流程图94.2秒表的初始化104.3按键扫描检测程序114.4开始计时114.5计时程序114.6显示程序114.7暂停计时114.8秒表清零124.9延时程序125总结14参考文献14附录一系统总原理图15附录
4、二主程序151引言1.1研究背景自20世纪末期以来,电子技术的发展日新月异。电子技术在各个领域的运用也越来越广泛,从而有力地推动了社会生产力的发展以及社会信息化程度的提高。其中,秒表计时器是工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。在各种现代体育竞技比赛中,秒表成为必不可少的工具之一。而随着运动员的水平的不断提高,他们之间的差距也在不断缩小。因此,在某些运动中对时间精度的要求就会越来越高,也就需要高精度的秒表来记录成绩,从而保障比赛的公平性。在历史上,钟表大致有三个演变阶段。首先是大时钟演变到小时钟、其次小时钟过
5、渡到袋表、再之袋表发展到腕表。再这三个阶段,每一次的改变都是和当时的技术水平和创造发明水平是息息相关的。本文则主要阐述了基于单片机89c51的led数字秒表设计。使其能够利用定时器定时原理、各种电路来实现计时功能,按键有启动计时、数据清零、停止、时间显示的功能。1.2设计思想及基本功能本实验利用单片机的定时器/计数器定时和计数的原理,通过采用proteus仿真软件来模拟实现。模拟at89c51单片机、led数码管以及控件来控制秒表的计数以及计时的开启、暂停、继续、与复位。其中有三个数码管来显示数据,两个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从09,满十进一后显
6、示秒得数码管的个位加一,并且十分之一秒显示清零重新从零计数。同理当个位满十进一后个位也清零重新计数,当计时超过范围(即超过99.9秒)后,所有数码管则会全部清零重新计数。采用按键控制秒表的“开始”、“暂停”、“复位”键,按下“开始”按键,则开始计时;按下“暂停”按键,则暂停计时;再次按下“开始”键,则继续计时;数码管显示当前计时值;按下“复位”键,则系统清零。2总体方案设计2.1方案选取在这次课程设计中,主程序主要是通过at89c51和74ls373锁存器来控制的,从而为所用的中断程序的地址以及一些必要的标志提供赋值。其中在数字秒表的设计中运用了2个中断号和2个中断程序。at89c51的to端
7、口在工作方式1下由下降沿触发,然后产生方波脉冲,从而作为at89c51的中断信号。复位电路2.2系统框图at89c51晶体振荡电路显示电路按键控制电路图2-22.3总体方案设计这次实验所选用的实验器材主要包括开关计时以及显示,其中开关计时是与中断t0相连的,用定时器t0用来计时,同时它也是中断t0的申请中断信号,就是设计要求中来负责秒表的计时;而开关显示是与at89c51上的p2.6口相连,即设计记下时间,当记录完成后,按下显示按钮,就会从最后一个人的顺序倒起来显示他们工作所用的时间(注意:先来后显示)。本次设计的核心思想是:在运行中断程序的时候,首先判断中断信号,然后再根据中断信号来产生脉冲
8、来确定是否执行中断服务程序,待中断结束后返回原程序,继续执行原程序。3硬件电路设计3.1 89c51单片机的引脚及模块说明89c51作为89系列单片机中的典型代表,其基本模块主要是由cpu、rom、ram、i/o口、中断系统、定时/计数器、串行口、振荡器、总线控制等几个部分组成。1cpu:89c51是8位cpu,而且89c51内部还包含有1个位处理器2r0m:包含4kb的片内程序存储器,用于存放开发以及调试完成的程序3ram:256b的片内数据存储器,虽然容量小,但作用很大。4i/o口:即p0-p3口,共4个口包含32条双向且可位寻址的i/o口线。5中断系统:总共有5个中断源,其中3个内部中断
9、和2个外部中断。6定时/计数器:即2个16位的可编程定时/计数器。7串行口:全双工通用异步接收器/发送器8振荡器:由外接晶振以及内部时钟振荡器来为cpu提供时钟信号。9总线控制:对外提供若干条控制总线,以便于系统扩展。另附上引脚图:如图2图3-13.2晶体振荡电路89c51单片机内部的振荡电路是一个增益反相放大器,其中引线xyal1和xtal2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。然而单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路。其中石晶振荡以及陶瓷振荡均可采用,有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时
10、钟信号的脉宽没有任何要求,但是必须要保证脉冲的高低电平要求的宽度。本次选用的是89c51单片机12mhz的内部振荡方式,电路图如下图3所示。其中c1、c2主要起稳定振荡频率以及快速起振的作用。图3-23.3复位电路单片机系统主要采用上电自动复位和手动按键复位两种方式实现系统的复位操作。其中上电复位要求接通电源后,能够自动实现复位操作。手动复位则要求在接通电源后,如果在单片机运行期间发生死机,可以用按钮开关操作使单片机复位。本次设计采用上电复位,再使单片机复位时还能使单片机的外设同时复位,而且当程序出现错误时,可以随时使电路复位。电路图如下图4所示:图3-33.4按键电路当按下按键后,对应的引脚
11、就会被拉低,再经过扫描后,则会获得键值,然后执行键功能程序。当按下不同的按键时,单片机就会执行不同的功能程序。电路图如下图5所示:图3-43.5显示电路本次设计采用3个led数码管。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个为小数点发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。在用数码管显示时,有静态和动态两种选择,这次设计采用了led动态显示,并用p0、p1、 p2口驱动显示。为了保护各段led不被损坏,还需外加限流电阻。但由于p0口没有上拉电阻,因此在p0口还需要外接上拉电阻才能输出高电平,这里我们会使用8
12、个4.7k的电阻作为上拉电阻。电路图如下图6所示:图3-53.6引脚控制说明p0口:p0.07、p1口:p1.07、p2口 p2.07对应三个数码管的a、b、c、d、e、f、g段和小数点位;p0用来控制数码管十位的显示,p2用来控制数码管个位的显示,p1则控制小数点后一位的显示,p3.2、p3.3、p3.4分别接按键用来实现控制。3.7绘制电路原理图利用proteus软件画出主电路图如下图7:图3-74系统软件设计4.1程序流程图本次系统的软件部分主要包括:主函数、初始化函数、显示函数、定时器0中断服务函数、外部中断0中断服务函数、拆数函数等。工作流程包括:秒表的初始化、按键检测程序、开始计时
13、、计时程序、显示程序、暂停计时、秒表清零、延时程序等8个部分。系统程序流程图如下图8所示:图4-14.2秒表的初始化首先根据程序流程图进行秒表的初始化。第一步:将i/o口p3全写一,为秒表的控制输入做好准备;第二步:将数码管全部置零,使它处于秒表计时的初始状态;第三步:将工作寄存器r0至r2以及30h初始化,留待后面的计时程序备用;第四步:将定时器0置于工作方式1,并为其装入计时预置数d8fe(因为程序运行过程中占用的时间会导致一定误差,此为经实物测试之后的修正值),即将定时器定为每10ms溢出;第五步:开总中断允许和定时器0中断允许。等初始化完成后,就开始进入之后的按键扫描程序。4.3按键扫
14、描检测程序轮流检测开始计时(p3.2)、暂停计时(p3.3)、秒表清零(p3.4)三个按键。若发现有一个按键出现低电平(可能被按下),则延时10ms(调用延时子程序delay),延时完成后,若发现低电平消失,则说明该按键实际上未被按下,此时转回按键检测处继续检测;若发现仍然是低电平,则说明此键确实被按下了,此时就跳转至相应的程序标号处,执行相应的功能。4.4开始计时若确认“开始计时”键被按下,则跳转至程序标号“run”处,将定时器0计时允许控制位tr0置位,则定时器开始运行。此动作完成后,返回按键检测程序,等待操作者的下一次指令。4.5计时程序定时器0计时至10ms,溢出,引发中断,程序跳转至
15、定时器0中断服务程序入口000bh处执行。程序跳转至中断服务程序time0。由于秒表的最小计时单位是0.1s,即100ms,因此需加入软件计时,使定时器0溢出10次之后才改变数码管的显示状态。因此每来一次中断就将30h中的数加1,若30h中的数没有到10,则给定时器0重新装入预置数,之后中断返回并继续等待中断;到10了,才进入显示程序,改变数码管的显示状态,执行完毕之后中断返回并继续等待中断。4.6显示程序将数码管的段选码放在数表tab中。每次100ms计时完成后,将r0中的值(初值为0)送入a,然后自加1。.若r0中的值没到10,则使用累加器a查表,并将查得的数码管段选码送入毫秒位数码管。之
16、后将30h中的数置零,中断返回。若发现r0中的数到10了,则将r0置零,并转入秒位进位子程序second,向秒位进位,之后,继续照常向毫秒位送数。在秒位进位子程序second中,由于要用到累加器a,因此先将其推入堆栈保护。将r1中的值(初值为10)送入a,然后自加1。.若r1中的值没到20,则使用累加器a查表,并将查得的数码管段选码送入秒位数码管。若发现r1中的数到20了,则将r1重置为10,并转入十秒位进位子程序second1,向十秒位进位,之后,继续照常向秒位送数。完成后,弹出acc和psw,子程序返回。十秒位进位子程序与秒位进位子程序相似,只是没有向下一位进位的功能。4.7暂停计时若确认
17、“暂停计时”键被按下,则跳转至程序标号“pause”处,将定时器0计时允许控制位tr0置零,则定时器暂停运行。此动作完成后,返回按键检测程序,等待操作者的下一次指令。4.8秒表清零若确认“秒表清零”键被按下,则跳转至程序标号“stop”处,将tr0置零,关闭定时器0运行。并且将数码管、工作寄存器、定时器0预置数全部重置,使其处于秒表计时的初始状态。此动作完成后,返回按键检测程序,等待操作者的下一次指令。4.9延时程序主要用于按键延时防抖,并延时10ms。经仿真调试后,程序正常运行,截图如下图9:图4-95总结通过这次的课程设计,使我加深了对89c51 的功能以及它们的工作方式的了解,对电脑有了
18、个更新的认识,对中断的工作方式,电脑芯片内部的数据有了较清楚的认识。这次课程设计是基于芯片上的编程,由于对相应芯片的各个端口的功能不熟悉,一开始并不知从何着手,但随着对各个芯片端口的逐步了解,后面程序的编写也变得容易多了。这次设计总的感想是:由于是基于芯片上编程,所以编写程序之前必须对各个芯片有所了解,如芯片的各个端口的功能等。然后选择要实现此程序功能的芯片以及怎样接线,调试程序、修改错误之处。根据书本知识,我们一开始只给p0口加上了上拉电阻,但是实物做成后我们发现p1和p2口得输出显示非常暗,初步确定是驱动能力不足的问题后,我们给二者也加上了上拉电阻,结果使得显示正常了。由此我们了解到,实践
19、才是检验真理的唯一标准,有时候书本上的知识需要经过实践的改进,才能运用到实际中。此次课程设计巩固了我的基础知识,提高了我的应用水平,锻炼了我的动手能力,使我受益匪浅。然而,在吸取经验的同时,我也吃了不少教训。在编程、仿真方面都走了不少弯路。但是,学则要有所收获,经过此次的锻炼,我在很多方面都已经有所提高,知识也掌握得更加扎实了。在今后的学习和实践中,我将继续努力钻研,提高自己,争取在学术和记忆上获得更大的进步。参考文献1 杨家成单片机原理与应用及c51程序设计北京:清华大学出版社,20072 夏路易 石宗义protel 99se电路原理图与电路板设计教程北京:北京希望电子出版社,20043 朱
20、玉玺计算机控制技术北京:电子工业出版社,20104 邓兴成单片机原理与实践指导北京:机械工业出版社,20105 阎石.数字电子技术基础.北京:高等教育出版社,2009.附录一 系统总原理图附录二 主程序org 0000h ;程序开始ajmp start ;跳转至主程序start org 000bh ;定时器0中断的地址入口ajmp time0 ;定时器0溢出,跳转到中断程序time0start: ;主程序mov p3,#0ffh ;输入端口p3全部写为1mov p0,#3fh ;mov p1,#3fh ;mov p2,#0bfh ;将数码管初始化mov 30h,#00h ;mov r0,#00
21、h ;mov r1,#0ah ;mov r2,#00h ;将工作寄存器初始化mov tmod,#01h ;使定时器0工作于方式1mov th0,#0d8h ;mov tl0,#0feh ;给定时器0预置数(d8feh=55550d)setb ea ;总中断允许setb et0 ;定时器0中断允许read: ;读键程序l1:jb p3.2,l2 ;lcall delay ;按键延时防抖jb p3.2,l1 ;ajmp run ;确认计时键被按下,开始或继续计时l2:jb p3.3,l3 ;lcall delay ;按键延时防抖jb p3.3,l2 ;ajmp pause ;确认暂停键被按下,暂停
22、计时l3:jb p3.4,l1 ;lcall delay ;按键延时防抖jb p3.4,l3 ;ajmp stop ;确认清零键被按下,秒表重置run: ;计时键按下,跳转至此setb tr0 ;定时器0开始或继续运行ajmp read ;pause: ;暂停键按下,跳转至此clr tr0 ;ajmp read ; time0: ;定时器0溢出,中断,跳转至此inc 30h ;mov a,30h ;cjne a,#0ah,time1 ;30h单元中的值是否到10mov dptr,#tab ;若30h中的值到10了,顺序执行mov a,r0 ;inc r0 ;cjne r0,#0ah,get ;
23、r0中的值是否到10mov r0,#00h ;lcall second ;若已到10,则r0清零,并调用进位子程序second,向秒位进位get: ;若没到,则跳过进位子程序movc a,a+dptr ;mov p1,a ;查表并向数码管毫秒位送数mov 30h,#00h ;重置30h单元time1: ;mov th0,#0d8h ;mov tl0,#0feh ;给定时器0重新预置数reti ;中断返回second: ;秒位进位子程序push acc ;push psw ;将acc和psw推入堆栈保护mov a,r1 ;inc r1 ;cjne r1,#14h,get1 ;r1中的值是否到20mov
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 投资项目可行性研究与项目评估
- 农业观光生态园
- 三农产品物流配送手册
- 绿色农产品生产技术推广与应用实践方案
- 车联网及大数据应用
- 电商行业直播带货模式创新与发展方案
- 校园广播系统投标方案
- 针对公司运营挑战的对策报告
- 电力设施节能减排操作规程
- 三农村公共服务设施信息化管理方案
- 作业层队伍建设重点业务课件
- DB31T 685-2019 养老机构设施与服务要求
- 二年级下册美术教案-第5课 美丽的花园|岭南版
- 人类进化史精品课件
- 鲁滨逊漂流记读后感PPT
- 总包单位向门窗单位移交门窗安装工程工作面交接单
- 设备供货安装方案(通用版)
- 公开招聘社区居委专职工作人员考试笔试、面试题集及相关知识(11套试题含答案)
- 《植物生理学》课件第三章+植物的光合作用
- 中国药膳理论与实践-药膳基本理论和技能
- 华东师大版七年级初一数学下册全套试卷(单元、期中、期末)
评论
0/150
提交评论