




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学院毕业设计说明书(论文)设计(论文)题目:_数字秒表 _专 业:_ 电子信息工程技术_ 班 级:_ 电信07-1_ _学 号:_7 _ 姓 名:_ _ _ 指导教师:_ _ 二九年十二月二十一日信息职业技术学院毕业设计(论文)任务书学 生姓 名学号4027班级电信07-1专业电子信息工程技术设计(或论文)题目数字秒表指导教师姓名职 称工作单位及所从事专业联系方式备 注助教17设计(论文)内容:1. 正常情况下实现0-99秒计时,精确到百分秒。2. 能记8个成绩并显示。进度安排:1第6周第7周:了解毕业设计相关要求,搜集资料,拟定方案2第8周第9周:分析硬件需求、硬件电路连接3第10周第13周:软件程序设计各个模块功能实现4第14周第16周:撰写毕业设计论文5第15周第17周:准备答辩主要参考文献、资料(写清楚参考文献名称、作者、出版单位):1 樊明龙任丽静编单片机原理与应用M化学工业出版社,20052 徐爱卿编单片微型计算机应用和开发系统M北京航空航天大学出版社,19983 戴梅芳编微型计算机技术及应用M清华大学出版社,19964 李广弟,朱月秀,王秀山编单片机基础M北京航空航天大学出版社,20015 吴金戌编8051单片机实践与应用M清华大学出版社,2003审批意见教研室负责人:年 月 日备注:任务书由指导教师填写,一式二份。其中学生一份,指导教师一份。 四川信息职业技术学院毕业设计说明书(论文)目录概述1第1章 总体设计2第2章 硬件设计32.1 单片机主控模块32.1.1 定时器/计数器32.1.2 中断系统62.2 LED显示模块72.2.1 74LS373介绍72.3 按键模块8第3章 软件设计93.1主函数void main()93.2 初始化函数 void init()103.3 显示函数 void display()103.4 定时器0中断服务函数void _TR0_()113.5 外部中断0中断服务函数void _EX0_()123.6 拆数函数void number()13第4章 系统调试144.1 常用调试工具144.1.1 Keil C软件144.1.2 PROTEUS软件154.2 系统调试及性能分析15心得体会16参考文献17附录18附录1:秒表计时器电路原理图18附录2:程序源代码19第页概述此数字秒表,是在AT89C2051系统上实现的,其计时精确度为0.01s。所使用的元器件主要有排阻、定时计数器、74LS373锁存器、AT80C51等。通过系统中的计时键和显示键可实现对8个比赛人员的计时和显示,清零功能,用系统中的四片七段数码管将计得的时间以XXXX(秒百分秒,其中秒占两位,百分秒两位)的形式显示给用户。计时准确度与现实时间相符第23页第1章 总体设计在本次的课程设计中,主程序主要就是为AT89C2051和74LS373锁存器来控制的,进而为所用的中断程序的地址和一些必要的标志赋值。在数字秒表的设计中运用了2个中断号,2个中断程序。AT89C2051的TO端口在工作方式1下由下降沿触发,而产生方波脉冲,作为AT89C2051的中断信号。系统设计方案框架见图1-1所示。图1-1 系统设计方案框架图本实验所用的实验器材有两个开关计时和显示,其中开关计时与中断T0相连,是中断T0的申请信号,即设计要求中的第一个人的计时,负责秒表的计时;开关显示与AT89C2051上的P2.6口相连,即设计记下8个成员的时间,记完后,按显示按钮,从最后一个人的顺序到起来显示他们工作所用的时间(先来后显示)。这个设计的核心思想为:在运行中断程序的时候,判断中断信号,然后根据中断信号来产生脉冲来确定是执行中断服务程序。第2章 硬件设计2.1 单片机主控模块单片机最小系统以AT89C51单片机为核心,由单片机、时钟电路、复位电路等组成如图2-1所示。主要负责各个模块的初始化工作;读取并处理时间;处理按键响应;控制LED实时显示等。见图2-1所示。图 2-1 单片机最小系统主控制器AT89C51单片机与MCS51系列单片机产品兼容,内部自带有4KB的Flash存储器及256KBRAM单元,不需另外扩展EEPROM及静态RAM,可以在线下载程序,易于日后的升级。图中的P0是给LED数码管提供段选信号,P1口给LED数码管提供位选信号,P2.6提供给显示开关,P3.2(外部中断0)提供给计时开关。时钟电路是由XTAL1和XTAL2之间跨接的晶体振荡器和微调电容构成。时钟电路中晶体振荡器的频率高则系统的时钟频率就高,所以该系统采用12M晶振;复位电路有三种形式:手动按键复位、上电复位和软件复位,在本系统中采用的是手动按键复位。如图2-1所示,R1、R2、C3和BUTTON组成系统手动按键复位电路。2.1.1 定时器/计数器1. 定时器/计数器有三种工作方式方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。TH0的高3位弃之不用。方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。其逻样电路和工作情况与方式0完全相同。方式2初始化时,8位计数初值同时装入TL0和TH0中。当TL0计数溢出时,置位TF0,同时把保存在预置寄存器TH0中的计数初值自动加载TL0,然后TL0重新计数。方式3,定时器计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以计数使用,又可以定时使用,定时器计数器0的各控制位和引脚信号全归它使用。TH0则只能作为简单的定时器使用。2. 定时器控制寄存器(TCON)该寄存器用于保存外部中断请求以及定时器的计数溢出。寄存器地址88H,位地址8FH88H。寄存器的内容及位地址表示如下:位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0TF0和TF1-计数溢出标志位当计数器计数溢出(计满)时,该位置“1”;使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清“0”;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清“0”。TR0和TR1-定时器运行控制位TR0(TR1)=0 停止定时器/计数器工作TR0(TR1)=0 启动定时器/计数器工作该位根据需要以软件方法使其置“1”或清“0”。3. 工作方式控制寄存器(TMOD)TMOD寄存器是一个专用寄存器,用于设定两个定时器/计数器的工作方式。但是TMOD寄存器不能位寻址,只能用字节传送指令设置其内容。各位定义如下:位序B7B6B5B4B3B2B1B0位符号GATEC/TM1M0GATEC/TM1M04位一组的结构使它不能位寻址,一定义就是4位。从寄存器的位格式中可以看出,它的低半字节定义定时器/计数器0,高半字节定义定时器/计数器1。其中:(1)、GATE-门控位GATE=0 以运行控制位TR启动定时器GRTE=1 以外中断请求信号(INT1或INT0)启动定时器(2)、C/T-定时方式或计数方式选择位C/T=0 定时工作方式C/T=1 计数工作方式(3)、M1M0-工作方式选择位M1M0=00 方式0M1M0=01 方式1M1M0=10 方式2M1M0=11 方式34. 中断允许控制寄存器(IE)位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA/ESET1EX1ET0EX0EA-中断允许总控制位ET0和ET1-定时/计数中断允许控制位ET0(ET1)=0 禁止定时/计数中断ET0(ET1)=1 允许定时/计数中断在本系统中红绿灯时间定时器和黄灯时间定时器都采用定时器的工作方式1。计数值的范围为: 165536(216)定时时间计算公式为:(216-计数初值)x晶振周期x12其时间单位与晶振周期或机器周期相同。2.1.2 中断系统中断过程的三步曲:中断响应、执行中断服务程序及中断返回。图中的中断源,就是指能提出中断请求的计算机内部电路与外部设备。1. 中断允许控制寄存器(IE)寄存器地址0A8H,位地址0AFH0A8H。寄存器的内容及位地址表示如下:位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA/ESET1EX1ET0EX0其中与中断有关的控制位共6位:(1)、EA-中断允许总控制位EA=0 中断总禁止,禁止所有中断。EA=1 中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置。(2)、EX0和EX1-外部中断允许控制位EX0(EX1)=0 禁止外中断EX0(EX1)=1 允许外中断(3)、ET0和ET1-定时/计数中断允许控制位ET0(ET1)=0 禁止定时(或计数)中断ET0(ET1)=1 允许定时(或计数)中断(4)、ES-串行中断允许控制位ES=0 禁止串行中断ES=1 允许串行中断可见,MCS-51通过中断允许控制寄存器对中断的允许(开放)实行两级控制。即为EA位作为总控制位,以各中断源的中断允许位作为分控制位。当总控制位为禁止时,关闭整个中断系统,不管分控制位状态如何,整个中断系统位禁止状态;当总控制位为允许时,开放中断系统,这时才能由各分控制位设置各自中断的允许与禁止。MCS-51单片机复位后(IE)=00H,因此中断系统处于禁止状态。单片机在中断响应后不会自动关闭中断。因此在转中断服务程序后,应根据需要使用有关指令禁止中断,即以软件方式关闭中断。2. 中断优先级控制寄存器(IP)MCS-51的中断优先级控制比较简单,因为系统只定义了高、低2个优先级。各中断源的优先级由中断优先级寄存器(IP)进行设定。IP寄存器地址0B8H,位地址为0BFH0B8H。寄存器的内容及地址表示如下:位地址0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H位符号/PSPT1PX1PT0PX1其中:PX0-外部中断0优先级设定位;PT0-定时中断0优先级设定位;PX1-外部中断1优先级设定位;PX1-外部中断1优先级设定位;中断响应的条件:有中断源提出中断请求;中断总允许位EA=1,即CPU开放中断;申请中断的中断源的中断允许位为1,即没有被屏蔽2.2 LED显示模块2.2.1 74LS373介绍如图2-1所示为74HC573的引脚图。从表中可以看出,OE为三态控制端(低电平有效),当OE=1时,8个输出端都为高阻态(在功能表中的Z表示高阻态);OE=0时,输入数据D能传输D能传输到输出端。LE为锁存控制输入端,送数脉冲CP从LE端加入,CP下降沿时锁存数据,且LE=0时保持数据(功能表中的Q0表示被锁存的状态);LE=1时不锁存,输入数据直接达到输出端。1D8D为数据输入端,1Q8Q为数据输出端。在本系统中采用了两个74LS373分别用于控制数码管的段选信号(dule)和位选信号(wele),这样是为了使数码管得到的信号更加稳定。2.3 按键模块系统的按键电路如图所示。图2-2按键模块系统中按键模块中的计时开关的用途是给单片机提供外部中断信号,当单片机接收到中断后程序就会进入中都服务函数将当前时间装入计时数组中存储。数组一个可以存储8个时间。系统中按键模块中的显示开关的用途是调出计时数组中的时间,提供给LED显示器显示,当显示完毕后等待复位信号重新开始计数。第3章 软件设计秒表程序流程图见图3-1所示。图3-1 程序流程图本系统的软件部分主要是由:主函数void main()、初始化函数void init()、显示函数void display()、定时器0中断服务函数void _TR0_()、外部中断0中断服务函数void _EX0_()、拆数函数void number()组成。3.1主函数void main()主函数流程图见图3-2所示。图3-2 主函数流程图在主函数中主要是对系统进行初始化在while循环中等待计数器计数的溢出。3.2 初始化函数 void init()初始化函数的功能就是初始化系统中需要的变量和设置一些单片机内部的寄存器变量。TMOD=0X01;/选择定时器0的工作方式为工作方式1EA=1;/开启总中断位ET0=1;/开启定时器中断0TH0=(65536-10000)/256;TL0=(65536-10000)%256; TR0=1;/允许计数器0工作IT0=1;/外部中断0的触发方式为下降沿触发EX0=1;/开启外部中断0PX0=1;/设置外部中断0的优先级最高second=0;run_second=0;aa=0;cnt=0;key=1;temp=key;3.3 显示函数 void display()在系统中采用锁存器74LS373来控制LED显示器的段选信号和位选信号。利用74LS373的LE脚来对信号进行锁存,从而保持信号的完整,避免在显示时出现失真,显示不完整。dule=1; /打开段选位wele=1;/打开位选位P1=0xfe;/给第一位数码管的位选位送低电平,让第一位数码管亮 P0=tablesecond_sw;/给数码管的段选位送值dule=0;/关闭段选位 锁存信号wele=0;/关闭位选位 锁存信号delay(1);/延时显示函数的流程图见图3-3所示。图3-3 显示函数流程图3.4 定时器0中断服务函数void _TR0_()在定时器中断中主要是计时和显示的功能。定时器的设置:TMOD=0X01;/选择定时器0的工作方式为工作方式1EA=1;/开启总中断位ET0=1;/开启定时器中断0TH0=(65536-10000)/256;TL0=(65536-10000)%256;TR0=1;/允许计数器0工作定时器中断服务函数流程图见图3-4所示。图 3-4 定时器中断服务函数流程3.5 外部中断0中断服务函数void _EX0_()外部中断0的中断服务函数流程图见图3-5所示。图 3-5 外部中断0的中断服务函数流程3.6 拆数函数void number()在本系统中拆数函数的功能是将当前时间的个位和十位拆分,便于显示函数的引用和显示。second_gw=second%10;second_sw=second/10;run_gw=run_second%10;run_sw=run_second/10;第4章 系统调试调试是一个必不可少的环节,它将会验证你的成果,是否实现了所要完成的功能。系统调试仿真时先要使用伟福编译器,把所写的程序进行编译,同时在仿真器里设置生成HEX文件,编译无错误时还要进行PROTEUS仿真,查看功能是否能够实现。下面就将仿真将会用到的软件进行简单的介绍,并对仿真过程予以简介。4.1 常用调试工具4.1.1 Keil C软件Keil C软件是集成调试环境,集成了编缉器、编译器、调试器,支持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。树状结构显示,一目了然,支持ASM(汇编)、C语言,多语言多模块源程序混合调试,在线直接修改、编译、调试源程序,错误指令定位。功能很强大。用于对程序的调试和编辑。图5-1 Keil C软件界面4.1.2 PROTEUS软件系统仿真还用到了PROTEUS软件,可通过仿真可以完全显示出所设计系统的功能,对于程序的调试等有很大的帮助。首先要新建一个文档是DNS型的找出需要的器件,可以使用搜索功能。接着把各个器件放到合适的位置都要放到蓝色框内。然后根据自己的设计要求连线。把所有的元件都连接好,做出完整的电路图。4.2 系统调试及性能分析系统的调试开始是把伟福编译生成的无错误后缀名为.HEX的文件加载到AT89C51单片机中,方法是双击单片机弹出一个对话框,在program file后选择要添加文件,文件要求必须是HEX文件。然后可以点击运行观察现象,当出现错误时,大多都是软件出了问题,经过不断的改进调试。对按键检测、加减时间与按键之间产生的不一致、倒计时子程序的调用等软件的修改后,系统基本实现了所要设计的功能。 心得体会通过这次的课程设计,我进一步了解了AT89C2051 和74LS373这两块芯片的功能以及它们的工作方式,对电脑有了个全新的认识,对中断的工作方式,电脑芯片内部的数据有了较清楚的认识。这次课程设计是基于芯片上的编程,由于对相应芯片的各个端口的功能不熟悉,一开始不知从何着手,随着对各个芯片端口的逐步了解,后面程序的编写也变得容易多了。这次设计总的感想是:由于是基于芯片上编程,所以编写程序之前必须对各个芯片有所了解,如芯片的各个端口的功能等。然后选择要实现此程序功能的芯片以及怎样接线,调试程序、修改错误之处。通过这次设计,也使我对硬件知识有了更进一步的了解。同时我也知道了编程的一些技巧,使我懂得了更加多的知识,做到了理论联系实际,巩固了所学的知识。由于能力和时间有限系统存在着一些缺陷,望老师批评指正。缺陷:(1)按键计时的抖动问题。 (2)与抖动相关的计时精度问题。(3)由于在系统运行程序的时候会消耗CPU的时间,所以时间会不精确。参考文献1 李广第等编著.单片机基础.北京航空航天大学出版社2 林志琦等编著.单片机原理接口及应用.中国水利水电出版社3 胡辉主编.单片机原理与应用.中国水利水电出版社4 单成祥等编著.传感器原理与应用.国防工业出版社5 谭浩强主编.C语言程序设计教程.高等教育出版社6 邱寄帆主编. 数字电子技术.人民邮电出版社附录附录1:秒表计时器电路原理图附录2:程序源代码#include #define uint unsigned int#define uchar unsigned charuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/数码管的段码表 共阴极 0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.fuchar temp;uchar person82;uint second;uint run_second;uint second_sw;uint second_gw;uint run_gw;uint run_sw;uint aa;uint cnt;sbit key=P26;sbit dule=P20;sbit wele=P21;void init()TMOD=0X01;/选择定时器0的工作方式为工作方式1EA=1;/开启总中断位ET0=1;/开启定时器中断0TH0=(65536-10000)/256;TL0=(65536-10000)%256; TR0=1;/允许计数器0工作IT0=1;/外部中断0的触发方式为下降沿触发EX0=1;/开启外部中断0PX0=1;/设置外部中断0的优先级最高second=0;run_second=0;aa=0;cnt=0;key=1;temp=key;/延时程序void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/显示程序void display()/让第一位数码管点亮dule=1; /打开段选位wele=1;/打开位选位P1=0xfe;/给第一位数码管的位选位送低电平,让第一位数码管亮 P0=tablesecond_sw;/给数码管的段选位送值dule=0;/关闭段选位 锁存信号wele=0;/关闭位选位 锁存信号delay(1);/延时/让第二位数码管点亮dule=1;wele=1;P1=0xfd;P0=tablesecond_gw;dule=0;wele=0;delay(1);dule=1;wele=1;P1=0xfb;P0=tablerun_sw;dule=0;wele=0;delay(1);dule=1;wele=1;P1=0xf7;P0=table
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫生应急考试试题及答案
- 消防泳池改造方案范本
- 屋面马鞍板壳板施工方案
- 青海海西州州本级公益性岗位招聘考试真题2024
- 东方市医疗健康集团招聘医疗卫生及辅助类专业技术人员考试真题2024
- 2025年新密市属事业单位考试试卷
- 沉桩法基础施工方案模版
- 园林中桥有哪些施工方案
- 2025广东依顿电子科技股份有限公司招聘操作工人员考前自测高频考点模拟试题及答案详解(夺冠系列)
- 专项施工方案内审表模板
- 2024-2025学年河北省保定市定州市统编版四年级上册期中质量检测道德与法治试卷
- 新人教版《海水的性质》课件
- 【新课标】高中生物新课程标准考试题三套
- 2025小学道德与法治开学第一课(思想政治理论教育课)
- 公关经理培训课程
- 异博定治疗方案
- 申请法院司法赔偿申请书
- 锻造操作机安全检查表模版
- 400字作文稿纸可修改模板
- 防排烟系统施工安装全程验收记录
- 家庭经济困难学生认定申请表
评论
0/150
提交评论