推荐基于8086的秒表设计与实现课程设计 精品 精品.docx

上传人:b****2 文档编号:23238108 上传时间:2023-05-15 格式:DOCX 页数:23 大小:223.53KB
下载 相关 举报
推荐基于8086的秒表设计与实现课程设计 精品 精品.docx_第1页
第1页 / 共23页
推荐基于8086的秒表设计与实现课程设计 精品 精品.docx_第2页
第2页 / 共23页
推荐基于8086的秒表设计与实现课程设计 精品 精品.docx_第3页
第3页 / 共23页
推荐基于8086的秒表设计与实现课程设计 精品 精品.docx_第4页
第4页 / 共23页
推荐基于8086的秒表设计与实现课程设计 精品 精品.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

推荐基于8086的秒表设计与实现课程设计 精品 精品.docx

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

推荐基于8086的秒表设计与实现课程设计 精品 精品.docx

推荐基于8086的秒表设计与实现课程设计精品精品

郑州科技学院

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

 

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

学生姓名

专业班级

学号

院(系)信息工程学院

指导教师

完成时间20XX年12月18日

 

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的位选1、2,电路原理图如图2-4。

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

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

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

表2-1LED引脚连接表

SPCE061A

LED模块

SPCE061A

LED模块

IOB8

A

IOB0

1

IOB9

B

IOB1

2

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]杨季文.《》清华大学出版社 ,20XX,3.

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

高等教育出版社,20XX,1 .

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

中国电力出版社.

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

[5]马力.《 8086汇编语言程序设计》, ,20XX,9.

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

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

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

中国电力出版社 ,20XX年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