基于8086的秒表设计与实现Word格式.docx

上传人:b****2 文档编号:3682129 上传时间:2023-05-02 格式:DOCX 页数:25 大小:280.16KB
下载 相关 举报
基于8086的秒表设计与实现Word格式.docx_第1页
第1页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第2页
第2页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第3页
第3页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第4页
第4页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第5页
第5页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第6页
第6页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第7页
第7页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第8页
第8页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第9页
第9页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第10页
第10页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第11页
第11页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第12页
第12页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第13页
第13页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第14页
第14页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第15页
第15页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第16页
第16页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第17页
第17页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第18页
第18页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第19页
第19页 / 共25页
基于8086的秒表设计与实现Word格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于8086的秒表设计与实现Word格式.docx

《基于8086的秒表设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《基于8086的秒表设计与实现Word格式.docx(25页珍藏版)》请在冰点文库上搜索。

基于8086的秒表设计与实现Word格式.docx

1.3硬件选择

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

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

SPCE061A核心及周边电路模块(包含32个I/O口),LED数码管.做此实验用51板也可以,因为51板也提供了相应的LED模组,因为实验室里面给我们提供了61板,所以我决定选用SPCE061A单片机实验箱。

1.4设计内容

本装置将实现0—99的计数,每一秒钟,计数器将加1,在数码管上显示当前计数值,并可用键盘按制计数的起始,以及归零.具体要求如下:

开机时数码管显示00.

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

3。

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

表1—1按键功能分配

按键

功能描述

KEY1

开始计时

KEY2

停止计时

KEY3

归零

2设计方案及基本原理

2.1预备知识

1。

熟悉凌阳单片机的工作原理。

(1)I/O口的使用原理和设置;

(2)定时器或时基的设置、使用;

(3)中断的设定。

2.了解数码管的显示原理。

3.熟悉键盘扫描原理。

熟悉汇编语言或C语言。

2.2LED显示原理

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

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

这两种显示方式各有利弊;

静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;

动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间.

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

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

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

2。

3元器件选择

61板一个,共阳极2位LED数码管一个,电路板一个,8050三极管二个,1k的电阻8个,33k电阻2个,导线若干,排针(10位)2个。

4系统设计

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

时间的产生和显示.

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

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

图2-1系统框图

5硬件工作原理

两位数的显示采用的是一个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模块

IOB8

A

IOB0

COM1

IOB9

B

IOB1

COM2

IOB10

C

IOB11

D

IOB12

E

IOB13

F

IOB14

G

2.6硬件连接

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

3设计流程图

3.1设计步骤

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

(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程序

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

MOVAL,00000001B

OUTDX,AL

STI

movax,data

movds,ax

moval,00110111b;

8253初始化

movdx,count

outdx,al

movdx,count0

movax,500h

outdx,al

moval,ah

moval,01110111b

movdx,count1

movax,50h

moval,ah

MOVAL,10000001B;

8255初始化,

MOVDX,CTRL_PORT

back:

MOVDX,C_PORT

inal,dx

testal,00000010b

jzb2;

判断是否清0

again:

inal,dx

testal,00000001b

jzb1;

判断是暂停还是继续?

movcx,6

jia6:

incsi

loopjia6

MOVAL,00000000B

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

MOVBUF+2,AH;

分的个位

MOVBUF+3,AL;

分的十位

MOVCX,60

LOOPAGAIN

A2:

MOVDAT2,0;

满60分对DAT2清0

MOVBUF+2,AH

MOVBUF+3,AL

CALLDISPLAY_DEC;

先显示00:

00再进位

MOVAL,DAT3;

DAT3中是时

CMPAL,24

JZA3

MOVBL,10

MOVBUF+4,AH;

时的个位

MOVBUF+5,AL;

时的十位

MOVCX,60

DECCX

JZback

A3:

INCDAT3

b1:

moval,01110000b;

对8253送GATE1控制信号

movdx,c_port

callcunchu

CALLDELAY

jmpback

b2:

movdx,c_port

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

;

movbx,1000

jzback

moval,10110000b;

对8253送GATE0控制信号

decbx

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

MOVAL,0H;

清屏

CALLDELAY1

LEASI,LEDTAB

MOVBL,BUF+1

MOVBH,0

MOVAL,[BX][SI];

取十位段码

notal

OUTDX,AL;

用数码管显示十位

MOVAL,11010000B

MOVDX,B_PORT

MOVAL,0H

MOVBL,BUF+2

MOVAL,[BX][SI];

取分个位段码

MOVDX,A_PORT

用数码管显示分个位

MOVAL,11001000B

MOVBL,BUF+3

MOVAL,[BX][SI];

取分十位段码

用数码管显示分十位

MOVAL,11000100B

MOVAL,0H

CALLDELAY1

MOVBL,BUF+4

MOVAL,[BX][SI];

取时个位段码

OUTDX,AL;

用数码管显示时个位

MOVAL,11000010B

LEASI,LEDTAB

MOVBL,BUF+5

MOVAL,[BX][SI];

取时十位段码

OUTDX,AL;

用数码管显示时十位

MOVAL,11000001B

DECDI

JNZDISPAGAIN1

RET

DISPLAY_DECENDP

DELAYPROC

MOVCX,1dh

LOOP$

RET

DELAYENDP

DELAY1PROC

MOVCX,3h

LOOP$

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

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

xianshicjendp

INTBPROCFAR

PUSHAX

PUSHBX

PUSHCX

MOVSI,6

MOVAL,20H

OUT20H,AL

POPCX

POPBX

POPAX

IRET

INTBENDP

CODEENDS

ENDSTART

电路图

5。

1调试结果

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

具体要求如下:

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

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

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

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

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

按KEY3归零;

按KEY4复位.

5.2结果分析

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

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

6结论与体会

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

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

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

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

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

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

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

7.参考文献

[1] 

康华光,数字电子技术基础,北京:

高等教育出版社,2008年1月。

[2]数字电子技术《实验指导书》 

[3]顾永杰。

电工电子技术实训教程。

上海:

上海交通大学出版社,1999 

[4]宋春荣。

通用集成电路速查手册.山东科学技术出版社,1995 

[5]吕思忠.数子电路实验与课程设计。

哈尔滨工业大学出版社,2001 

[6]谢自美.电子线路设计、实验、测试。

华中理工大学出版社,2000

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2