《基于8086的秒表设计与实现21页》由会员分享,可在线阅读,更多相关《基于8086的秒表设计与实现21页(21页珍藏版)》请在金锄头文库上搜索。
1、郑州科技学院微型计算机原理课程设计题 目 基于8086的秒表设计与实现学生姓名 程昭昭 专业班级 计科一班 学 号 201115003 院 (系) 信息工程学院 指导教师 王清珍 完成时间 2013 年12月18日 目 录1 99秒表设计背景及目的要求21.1设计目的31.2硬件选择42设计方案及基本原理42.1 LED显示原理42.2 系统设计42.3硬件工作原理53 设计流程64调试结果 95 结果分析96 结论与体会107参考文献11附录1:电路图11附录2:源程序121 99秒秒表设计背景及目的要求 1.1 设计目的 随着芯片应用的日益广泛,在校学生加强对单片机的认识和动手能力,已经是
2、非常重要的一项锻炼。课程设计就是为加强实践机会、培养学生动手能力的一个重要环节,将理论知识与实际联系起来的一个关键机会。本课程设计的基本要求是:1. 掌握LED数码管原理及使用方法2. 初步掌握8086芯片汇编语言一般编程技巧。1.2硬件选择装有Windows系统和nSP IDE仿真环境的PC机一台,nSP 十六位单片机实验箱一个。本设计用到的实验箱硬件模块为:SPCE061A核心及周边电路模块(包含32个I/O口),LED数码管。做此实验用51板也可以,因为51板也提供了相应的LED模组,因为实验室里面给我们提供了61板,所以我决定选用SPCE061A单片机实验箱。 本装置将实现0-99的计
3、数,每一秒钟,计数器将加1,在数码管上显示当前计数值,并可用键盘按制计数的起始,以及归零。具体要求如下:1. 开机时数码管显示00。2. 每一秒钟,计数器自动加1。3. 按键控制计数,分别控制开始计时、停止计时和归零,功能分配如下:表1-1按键功能分配按键功能描述KEY1开始计时KEY2停止计时KEY3归零2 设计方案及基本原理2.1 LED显示原理 静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。 动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多
4、。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。 基本的半导体数码管是由七个条状发光二极管芯片排列而成的,可实现09的显示。LED数码管是由发光二级管显示字段组成的显示器,有8段和“米”字段之分,这种显示器有共阳级和共阴极两种。所谓共阳方式是指笔画显示器各段发光管的阳极(即P区)是公共的,而阴极互相隔离。所谓共阴方式是笔画显示器各段发光管的阴极(即N区)是公共的,而阳极是互相隔离的。2.2 系统设计 根据设计题目的要求分析,并考虑到题目的可扩
5、展性,可将系统分成两大部分: 1. 时间的产生和显示。 2. 按键控制计数起始、归零。 根据系统的功能现选择61板作为单片机控制处理部分,利用一2位LED作为显示部分,而按键采用61板上自带的三个按键,如图2-1所示。 IOB SPCE061A精简开发版 Key1 Key2 Key3 秒 图2-1 系统框图2.3硬件工作原理 两位数的显示采用的是一个2位共阳极LED 数码管(LG5621AH),连接方法是SPCE061A的IOB0-IOB6接LED焊接板的A-G,小数显示部分可以省略不要;IOB8-IOB9分别接LED的位选COM1、COM2,电路原理图如图2-4。LED与SPCE061A的引
6、脚连接如表2-1。采用凌阳大学计划的LED键盘模组和61板搭配可以很容易的完成这个课程设计的题目。它的连结图如图所示,IOB的低八位控制数码管显示段位,高八位控制点亮哪一个数码管。 表2-1 LED引脚连接表SPCE061ALED模块SPCE061ALED模块IOB8AIOB0COM1IOB9BIOB1COM2IOB10CIOB11DIOB12EIOB13FIOB14G。 图2-2 LED键盘模组和61板连接图3 设计流程 根据设计要求的功能,程序主要分为三部分,即: (1)计时显示部分; (2)秒计时部分; (3)按键控制部分。 (4)程序主流程主要完成键盘扫描、计时处理、键值分支控制的任务
7、,流程图如图所示: 开始初始化数据、以及中断、键盘等扫描键盘,针对键值分支 Key1 开始计时 Key2 停止计时 Key3 清零计时数据处理,格式 化显示 清看门狗 图3-1 主程序流程图 显示部分是在IRQ4的1KHz中断中控制显示的,采用动态扫描的方式,1KHz的时基中断每1ms进一次中断,在中断中对2ms计数器i进行累加,当i从0累加到2时,则刚好为2ms,此时更新一个位的LED显示,并对i进行清零;当下一次累计到2ms时,则会再更新显示下一位LED数码管,当更新到最后一位时,返回重第一位开始更新;依此循环更新显示,而更新显示的数据保存在缓冲区当中,用户需要更新显示的数据时,只需要改变
8、对应的缓冲区中的数据即可。具体流程图如下。 IRQ5 是否是2HZ中断计时器自加一 清中断标志计时器=200 计时器清零 结束 IRQ4 1KHZ 2ms计数器 i+ i=2 更新显示一位 LED 结束 秒计时采用IRQ5的2Hz时基中断进行计时,流程图如图3-3所示。键盘输入利用61板自带的三个按键,输入的端口为IOA0IOA2。 图3-2 IRQ4 1KHz时基中断流程 图3-3IRQ5 2Hz时基中断流程图 4调试结果 4-15.1 调试结果 本装置将实现0-99的计数,每一秒钟,计数器将加1,在数码管上显示当前计数值,并可用键盘按制计数的起始,以及归零。具体要求如下:1. 开机时数码管
9、显示00。2. 每一秒钟,计数器自动加1。3. 按键控制计数,分别控制开始计时、停止计时和归零,功能分配如下: 按KEY1开始计时数码管显示从00开始计时到99结束再从00开始循环; 按KEY2 停止计时数码管显示当前数值; 按KEY3归零;按KEY4复位.5.2结果分析 本设计应该熟悉凌阳十六位单片机系统板61板的基本构成, 掌握 LED数码管原理及使用方法,掌握61板的使用方法,初步掌握 SPCE061A单片机汇编语言一般编程技巧,初步掌握61板系统调试的一般步骤及方法。设计结构现实:开机时数码管显示为00,每一秒钟计数器自动加一,按KEY1键开始计时,按KEY2键停止计时并现实当前数值,
10、按KEY3键归零。6 结论与体会两周的单片机课程设计结束了,最初的目的是想学到一些对将来就业很有实质性帮助的东西。结果还算可以接受,虽然说与预期的有不少出入,但锻炼自己这个主要目标算是达成了。通过这次课程设计,我对如何完成一项实际的计划有了进一步的认识,对如何加强自己的合作能力有了更进一步的思考。通过这次课程设计,我想下学期的毕业设计会少点困难,以后在工作中也能够有更多的经验好借鉴。在这段日子里,我实践、思考、反思、总结,所得收获都已经成为大学生涯中的宝贵财富。或许大学生活中的片断随着岁月的流逝难免被遗忘,但是这段课程设计的日子相信仍会是记忆深刻,它作为我们走向社会的第一步,承载了即将面对现实
11、和挑战的心情,必将难忘。在此,感谢赵老师的细心辅导,有了这次的实践经验,为毕业设计奠定基础。7参考文献1 杨季文.汇编语言程序设计教程清华大学出版社,2008,3.2 康华光.数字电子技术基础,北京:高等教育出版社,2008,1.3 张荣祥.微型计算机原理,北京:中国电力出版社.4 黄正瑾.综合电子设计与实践M. 东南大学出版社,2002,3. 5 马力.8086汇编语言程序设计,机械工业出版社,2006,9.6 顾永杰.电工电子技术实训教程.上海:上海交通大学出版社,1999.7 杨志坚. Intel8086/8088系列微型计算机原理及接口技术M.,北京:中国电力出版社,2007年4月第三
12、次印刷.附录1:电路图 7-1附录2:源程序ctrl_port EQU 0106HA_PORT EQU 0100HB_PORT EQU 0102Hc_port equ 0104hcount equ 0206hcount0 equ 0200hcount1 equ 0202hINTR EQU 0304HINTR1 EQU 0306HDCOUNT EQU 6data segment LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H BUF DB 0,0,0,0,0,0 buff db 20 dup(?) DAT1 DB 0 DAT2 DB 0 DAT3 DB 1 dat4 db 0data endsCODESEGMENT ASSUME CS:CODE,d