基于8086的秒表设计与实现课程设计论文.docx

上传人:b****4 文档编号:3771342 上传时间:2022-11-25 格式:DOCX 页数:24 大小:128.83KB
下载 相关 举报
基于8086的秒表设计与实现课程设计论文.docx_第1页
第1页 / 共24页
基于8086的秒表设计与实现课程设计论文.docx_第2页
第2页 / 共24页
基于8086的秒表设计与实现课程设计论文.docx_第3页
第3页 / 共24页
基于8086的秒表设计与实现课程设计论文.docx_第4页
第4页 / 共24页
基于8086的秒表设计与实现课程设计论文.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于8086的秒表设计与实现课程设计论文.docx

《基于8086的秒表设计与实现课程设计论文.docx》由会员分享,可在线阅读,更多相关《基于8086的秒表设计与实现课程设计论文.docx(24页珍藏版)》请在冰豆网上搜索。

基于8086的秒表设计与实现课程设计论文.docx

基于8086的秒表设计与实现课程设计论文

郑州科技学院

《微型计算机原理》课程设计

 

题目基于8086的秒表设计与实现

 

199秒表设计背景及目的要求……………………………2

1.1设计目的………………………………………………3

1.2硬件选择………………………………………………4

2设计方案及基本原理……………………………………4

2.1LED显示原理……………………………………………4

2.2系统设计………………………………………………4

2.3硬件工作原理……………………………………………5

3设计流程……………………………………………………6

4调试结果………………………………………………9

5结果分析………………………………………………9

6结论与体会………………………………………………10

7参考文献………………………………………………11

附录1:

电路图………………………………………………11

附录2:

源程序………………………………………………12

 

199秒秒表设计背景及目的要求

1.1设计目的

随着芯片应用的日益广泛,在校学生加强对单片机的认识和动手能力,已经是非常重要的一项锻炼。

课程设计就是为加强实践机会、培养学生动手能力的一个重要环节,将理论知识与实际联系起来的一个关键机会。

本课程设计的基本要求是:

1.掌握LED数码管原理及使用方法

2.初步掌握8086芯片汇编语言一般编程技巧。

1.2硬件选择

装有Windows系统和μ’nSP™IDE仿真环境的PC机一台,μ’nSP™十六位单片机实验箱一个。

本设计用到的实验箱硬件模块为:

SPCE061A核心及周边电路模块(包含32个I/O口),LED数码管。

做此实验用51板也可以,因为51板也提供了相应的LED模组,因为实验室里面给我们提供了61板,所以我决定选用SPCE061A单片机实验箱。

本装置将实现0-99的计数,每一秒钟,计数器将加1,在数码管上显示当前计数值,并可用键盘按制计数的起始,以及归零。

具体要求如下:

1.开机时数码管显示00。

2.每一秒钟,计数器自动加1。

3.按键控制计数,分别控制开始计时、停止计时和归零,功能分配如下:

表1-1按键功能分配

按键

功能描述

KEY1

开始计时

KEY2

停止计时

KEY3

归零

2设计方案及基本原理

2.1LED显示原理

静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。

动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。

这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。

基本的半导体数码管是由七个条状发光二极管芯片排列而成的,可实现0~9的显示。

LED数码管是由发光二级管显示字段组成的显示器,有8段和“米”字段之分,这种显示器有共阳级和共阴极两种。

所谓共阳方式是指笔画显示器各段发光管的阳极(即P区)是公共的,而阴极互相隔离。

所谓共阴方式是笔画显示器各段发光管的阴极(即N区)是公共的,而阳极是互相隔离的。

2.2系统设计

根据设计题目的要求分析,并考虑到题目的可扩展性,可将系统分成两大部分:

1.时间的产生和显示。

2.按键控制计数起始、归零。

根据系统的功能现选择61板作为单片机控制处理部分,利用一2位LED作为显示部分,而按键采用61板上自带的三个按键,如图2-1所示。

图2-1系统框图

2.3硬件工作原理

两位数的显示采用的是一个2位共阳极LED数码管(LG5621AH),连接方法是SPCE061A的IOB0-IOB6接LED焊接板的A-G,小数显示部分可以省略不要;IOB8-IOB9分别接LED的位选COM1、COM2,电路原理图如图2-4。

LED与SPCE061A的引脚连接如表2-1。

采用凌阳大学计划的LED键盘模组和61板搭配可以很容易的完成这个课程设计的题目。

它的连结图如图所示,IOB的低八位控制数码管显示段位,高八位控制点亮哪一个数码管。

表2-1LED引脚连接表

SPCE061A

LED模块

SPCE061A

LED模块

IOB8

A

IOB0

COM1

IOB9

B

IOB1

COM2

IOB10

C

IOB11

D

IOB12

E

IOB13

F

IOB14

G

图2-2LED键盘模组和61板连接图

3设计流程

根据设计要求的功能,程序主要分为三部分,即:

(1)计时显示部分;

(2)秒计时部分;

(3)按键控制部分。

(4)程序主流程主要完成键盘扫描、计时处理、键值分支控制的任务,流程图如图所示:

图3-1主程序流程图

显示部分是在IRQ4的1KHz中断中控制显示的,采用动态扫描的方式,1KHz的时基中断每1ms进一次中断,在中断中对2ms计数器i进行累加,当i从0累加到2时,则刚好为2ms,此时更新一个位的LED显示,并对i进行清零;当下一次累计到2ms时,则会再更新显示下一位LED数码管,当更新到最后一位时,返回重第一位开始更新;依此循环更新显示,而更新显示的数据保存在缓冲区当中,用户需要更新显示的数据时,只需要改变对应的缓冲区中的数据即可。

具体流程图如下。

秒计时采用IRQ5的2Hz时基中断进行计时,流程图如图3-3所示。

键盘输入利用61板自带的三个按键,输入的端口为IOA0—IOA2。

图3-2IRQ41KHz时基中断流程图3-3IRQ52Hz时基中断流程图

4调试结果

4-1

5.1调试结果

本装置将实现0-99的计数,每一秒钟,计数器将加1,在数码管上显示当前计数值,并可用键盘按制计数的起始,以及归零。

具体要求如下:

1.开机时数码管显示00。

2.每一秒钟,计数器自动加1。

3.按键控制计数,分别控制开始计时、停止计时和归零,功能分配如下:

按KEY1开始计时数码管显示从00开始计时到99结束再从00开始循环;

按KEY2停止计时数码管显示当前数值;

按KEY3归零;按KEY4复位.

5.2结果分析

本设计应该熟悉凌阳十六位单片机系统板-61板的基本构成,掌握LED数码管原理及使用方法,掌握61板的使用方法,初步掌握SPCE061A单片机汇编语言一般编程技巧,初步掌握61板系统调试的一般步骤及方法。

设计结构现实:

开机时数码管显示为00,每一秒钟计数器自动加一,按KEY1键开始计时,按KEY2键停止计时并现实当前数值,按KEY3键归零。

6结论与体会

两周的单片机课程设计结束了,最初的目的是想学到一些对将来就业很有实质性帮助的东西。

结果还算可以接受,虽然说与预期的有不少出入,但锻炼自己这个主要目标算是达成了。

通过这次课程设计,我对如何完成一项实际的计划有了进一步的认识,对如何加强自己的合作能力有了更进一步的思考。

通过这次课程设计,我想下学期的毕业设计会少点困难,以后在工作中也能够有更多的经验好借鉴。

在这段日子里,我实践、思考、反思、总结,所得收获都已经成为大学生涯中的宝贵财富。

或许大学生活中的片断随着岁月的流逝难免被遗忘,但是这段课程设计的日子相信仍会是记忆深刻,它作为我们走向社会的第一步,承载了即将面对现实和挑战的心情,必将难忘。

在此,感谢赵老师的细心辅导,有了这次的实践经验,为毕业设计奠定基础。

7参考文献

[1]杨季文.《汇编语言程序设计教程》清华大学出版社 ,2008,3.

[2] 康华光.数字电子技术基础,北京:

高等教育出版社,2008,1 .

[3] 张荣祥.《微型计算机原理》,北京:

中国电力出版社.

[4]黄正瑾.综合电子设计与实践[M].东南大学出版社,2002,3.

[5]马力.《 8086汇编语言程序设计》,机械工业出版社 ,2006,9.

[6]顾永杰.电工电子技术实训教程.上海:

上海交通大学出版社,1999 .

[7]杨志坚.《Intel8086/8088系列微型计算机原理及接口技术》[M].,北京:

中国电力出版社 ,2007年4月第三次印刷. 

附录1:

电路图

7-1

附录2:

源程序

ctrl_portEQU0106H

A_PORTEQU0100H

B_PORTEQU0102H

c_portequ0104h

countequ0206h

count0equ0200h

count1equ0202h

INTREQU0304H

INTR1EQU0306H

DCOUNTEQU6

datasegment

LEDTABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

BUFDB0,0,0,0,0,0

buffdb20dup(?

DAT1DB0

DAT2DB0

DAT3DB1

dat4db0

dataends

CODESEGMENT

ASSUMECS:

CODE,ds:

data

START:

CLI

PUSHDS

MOVSI,2*4

MOVAX,0

MOVDS,AX

MOV[SI],OFFSETINTB

MOV2[SI],SEGINTB

POPDS

MOVAL,00010011B

MOVDX,INTR

OUTDX,AL

MOVAL,00000010B

MOVDX,INTR1

OUTDX,AL

MOVAL,00000001B

MOVDX,INTR1

OUTDX,AL

STI

movax,data

movds,ax

moval,00110111b;8253初始化

movdx,count

outdx,al

movdx,count0

movax,500h

outdx,al

moval,ah

outdx,al

moval,01110111b

movdx,count

outdx,al

movdx,count1

movax,50h

outdx,al

moval,ah

outdx,al

MOVAL,10000001B;8255初始化,

MOVDX,CTRL_PORT

OUTDX,AL

back:

MOVDX,C_PORT

inal,dx

testal,00000010b

jzb2;判断是否清0

again:

MOVDX,C_PORT

inal,dx

testal,00000001b

jzb1;判断是暂停还是继续?

movcx,6

jia6:

incsi

loopjia6

MOVAL,00000000B

MOVDX,C_PORT

OUTDX,AL

MOVAL,DAT1;DTA1中是秒

CMPAL,100

JZA1

MOVBL,10

DIVBL

MOVBUF,AH;秒的个位

MOVBUF+1,AL;秒的十位

CALLDISPLAY_DEC

INCDAT1

JMPback

A1:

MOVDAT1,0;满60秒,对DAT1清0

MOVAL,0

MOVAH,0

MOVBUF,AH

MOVBUF+1,AL

CALLDISPLAY_DEC;先显示00,再进位

INCDAT2

MOVAL,DAT2;DAT2中是分

CMPAL,60

JZA2

MOVBL,10

DIVBL

MOVBUF+2,AH;分的个位

MOVBUF+3,AL;分的十位

CALLDISPLAY_DEC

MOVCX,60

LOOPAGAIN

A2:

MOVDAT2,0;满60分对DAT2清0

MOVAL,0

MOVAH,0

MOVBUF+2,AH

MOVBUF+3,AL

CALLDISPLAY_DEC;先显示00:

00再进位

MOVAL,DAT3;DAT3中是时

CMPAL,24

JZA3

MOVBL,10

DIVBL

MOVBUF+4,AH;时的个位

MOVBUF+5,AL;时的十位

CALLDISPLAY_DEC

MOVCX,60

DECCX

JZback

A3:

INCDAT3

JMPback

b1:

CALLDISPLAY_DEC

moval,01110000b;对8253送GATE1控制信号

movdx,c_port

outdx,al

callcunchu

CALLDELAY

jmpback

b2:

movdx,c_port

inal,dx

testal,00000100b

jnzli

callxianshicj

calldisplay_dec

movcx,1

jznext2

movsi,6

deccx

next2:

calldelay

jmpback

li:

movbuf,0;清0

movbuf+1,0

movbuf+2,0

movbuf+3,0

movbuf+4,0

movbuf+5,0

movdat2,0

movdat3,1

calldisplay_dec

;movbx,1000

;jzback

moval,10110000b;对8253送GATE0控制信号

movdx,c_port

outdx,al

CALLDELAY

;decbx

jmpback

DISPLAY_DECPROC

DA:

MOVDI,2

DISPAGAIN1:

MOVBL,BUF

MOVBH,0

LEASI,LEDTAB;以十进制显示

MOVAL,[BX][SI];取个位段码

notal;共阳

MOVDX,A_PORT

OUTDX,AL;用数码管显示个位

MOVAL,11100000B;位选,1点亮

MOVAH,0

MOVDX,B_PORT

OUTDX,AL

CALLDELAY

MOVAL,0H;清屏

MOVDX,B_PORT

OUTDX,AL

CALLDELAY1

CALLDELAY1

LEASI,LEDTAB

MOVBL,BUF+1

MOVBH,0

MOVAL,[BX][SI];取十位段码

notal

MOVDX,A_PORT

OUTDX,AL;用数码管显示十位

 

MOVAL,11010000B

MOVDX,B_PORT

OUTDX,AL

CALLDELAY

MOVAL,0H

MOVDX,B_PORT

OUTDX,AL

CALLDELAY1

LEASI,LEDTAB

MOVBL,BUF+2

MOVBH,0

MOVAL,[BX][SI];取分个位段码

notal

MOVDX,A_PORT

OUTDX,AL;用数码管显示分个位

 

MOVAL,11001000B

MOVDX,B_PORT

OUTDX,AL

CALLDELAY

MOVAL,0H

MOVDX,B_PORT

OUTDX,AL

CALLDELAY1

CALLDELAY1

LEASI,LEDTAB

MOVBL,BUF+3

MOVBH,0

MOVAL,[BX][SI];取分十位段码

notal

MOVDX,A_PORT

OUTDX,AL;用数码管显示分十位

 

MOVAL,11000100B

MOVDX,B_PORT

OUTDX,AL

CALLDELAY

MOVAL,0H

MOVDX,B_PORT

OUTDX,AL

CALLDELAY1

LEASI,LEDTAB

MOVBL,BUF+4

MOVBH,0

MOVAL,[BX][SI];取时个位段码

notal

MOVDX,A_PORT

OUTDX,AL;用数码管显示时个位

 

MOVAL,11000010B

MOVDX,B_PORT

OUTDX,AL

CALLDELAY

MOVAL,0H

MOVDX,B_PORT

OUTDX,AL

CALLDELAY1

CALLDELAY1

LEASI,LEDTAB

MOVBL,BUF+5

MOVBH,0

MOVAL,[BX][SI];取时十位段码

notal

MOVDX,A_PORT

OUTDX,AL;用数码管显示时十位

 

MOVAL,11000001B

MOVDX,B_PORT

OUTDX,AL

CALLDELAY

MOVAL,0H

MOVDX,B_PORT

OUTDX,AL

CALLDELAY1

DECDI

JNZDISPAGAIN1

RET

DISPLAY_DECENDP

DELAYPROC

MOVCX,1dh

LOOP$

RET

DELAYENDP

DELAY1PROC

MOVCX,3h

LOOP$

RET

DELAY1ENDP

cunchuproc

pushax

pushbx

pushcx

moval,buf

movah,buf+1

movbl,buf+2

movbh,buf+3

movcl,buf+4

movch,buf+5

movbuff[si],al

movbuff[si+1],ah

movbuff[si+2],bl

movbuff[si+3],bh

movbuff[si+4],cl

movbuff[si+5],ch

popax

popbx

popcx

ret

cunchuendp

xianshicjproc

pushax

pushbx

pushcx

moval,buff[si]

movah,buff[si+1]

movbl,buff[si+2]

movbh,buff[si+3]

movcl,buff[si+4]

movch,buff[si+5]

movbuf,al

movbuf+1,ah

movbuf+2,bl

movbuf+3,bh

movbuf+4,cl

movbuf+5,ch

popax

popbx

popcx

ret

xianshicjendp

INTBPROCFAR

PUSHAX

PUSHBX

PUSHCX

MOVSI,6

MOVAL,20H

OUT20H,AL

POPCX

POPBX

POPAX

IRET

INTBENDP

 

CODEENDS

ENDSTART

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

独创声明

本人郑重声明:

所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。

尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。

对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。

本声明的法律后果由本人承担。

 

作者签名:

二〇一〇年九月二十日

 

毕业设计(论文)使用授权声明

本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。

本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。

(保密论文在解密后遵守此规定)

 

作者签名:

二〇一〇年九月二十日

基本要求:

写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。

毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1