微机原理倒计时器课程设计.docx

上传人:b****1 文档编号:3269861 上传时间:2023-05-05 格式:DOCX 页数:16 大小:78.30KB
下载 相关 举报
微机原理倒计时器课程设计.docx_第1页
第1页 / 共16页
微机原理倒计时器课程设计.docx_第2页
第2页 / 共16页
微机原理倒计时器课程设计.docx_第3页
第3页 / 共16页
微机原理倒计时器课程设计.docx_第4页
第4页 / 共16页
微机原理倒计时器课程设计.docx_第5页
第5页 / 共16页
微机原理倒计时器课程设计.docx_第6页
第6页 / 共16页
微机原理倒计时器课程设计.docx_第7页
第7页 / 共16页
微机原理倒计时器课程设计.docx_第8页
第8页 / 共16页
微机原理倒计时器课程设计.docx_第9页
第9页 / 共16页
微机原理倒计时器课程设计.docx_第10页
第10页 / 共16页
微机原理倒计时器课程设计.docx_第11页
第11页 / 共16页
微机原理倒计时器课程设计.docx_第12页
第12页 / 共16页
微机原理倒计时器课程设计.docx_第13页
第13页 / 共16页
微机原理倒计时器课程设计.docx_第14页
第14页 / 共16页
微机原理倒计时器课程设计.docx_第15页
第15页 / 共16页
微机原理倒计时器课程设计.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理倒计时器课程设计.docx

《微机原理倒计时器课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理倒计时器课程设计.docx(16页珍藏版)》请在冰点文库上搜索。

微机原理倒计时器课程设计.docx

微机原理倒计时器课程设计

倒计时器设计

摘要

本次设计采用的是8255A、数码管、按键开关以及拨位开关组成的一个简单的倒计时器。

电路具有时间显示功能,能在一位数码管上从9开始递减,每隔1秒钟,计时器减1。

有外部开关能控制其暂停、复位,在倒计时为零0时发出声光警报。

 

目录

前言…………………………………………………………………………………………4

第一章倒计时器的设计要求与设计方案…………………………5

1.1倒计时器的设计的要求……………………………………………………………5

1.2设计方案的论证与比较……………………………………………………………5

1.3设计方案的确定 …………………………………………………………………5

第二章倒计时器的硬件设计…………………………………………6

2.1倒计时的硬件框图 …………………………………………………………………6

2.28255A的基本资料 …………………………………………………………………6

2.3显示电路的连接 …………………………………………………………………9

2.4控制电路的连接…………………………………………………………………9

2.5报警电路的连接   ……………………………………………………………10

第三章倒计时器的软件设计………………………………………11

3.1主程序框图……………………………………………………………………………11

3.2源程序的设计…………………………………………………………………………11

第四章安装与调试……………………………………………………13

4.1硬件的调试……………………………………………………………………………13

4.2软件调试………………………………………………………………………………13

4.3调试过程………………………………………………………………………………13

第五章设计体会与总结………………………………………………14

附录……………………………………………………………………………………15

附一系统硬件原理图 ……………………………………………………………………15

附二源程序与参考文献……………………………………………………………………15

 

前言

微机原理和接口技术是一门实践性强的学科,其中很多的原理、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。

在进行课程设计的过程中,可以让学生体验分析问题、提出解决方案、通过编程等手段实现解决方案、不断调试最终达到设计要求的全过程,从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。

本次设计的基于单片的倒计时器相较传统机械式倒计时器具有可以灵活可调、性价比高等优点,有在现实生活中得到广泛应用的发展潜力。

 

第一章倒计时器的设计要求与设计方案

1.1倒计时器的设计的要求

1电路具有时间显示功能,要求用1位七段数码管;

2要求电路为9秒递减计时,每隔1秒钟,计时器减1;

3要有外部开关,控制计数器的直接清零、启动和暂停/连续计时功能;

4当计时器倒计时为零时,即定时时间到,显示为零,同时发出声光报警信号。

1.2方案的论证与比较

1使用8253作为秒脉冲输出,用8255A作为输入/输出接口分别接控制端、输出显示端、报警器,使用8259作为中断控制倒计时的复位/暂停。

这种方案具有走时精准、可扩展性好的有点,但是制作成本最高。

2使用软件延时,在程序中使用延时语句来输出秒脉冲。

用8255A作为输入/输出接口分别接控制端、输出显示端、报警器,使用8259作为中断控制倒计时的复位/暂停。

此方案具有控制响应速度快,制作成本因为舍弃8253成本适中,但是由于使用了软件延时,因为芯片损耗以及芯片在工作时间过长后走时会不够准确。

3芯片只选择8255A,使用软件延时,在程序中使用延时语句来输出秒脉冲,使用8255A作为输入/输出接口。

采用在软件中控制循环程序的方式来控制倒计时的复位/暂停。

此方案性价比最高,但是相应的由于使用了软件延时,因为芯片损耗以及芯片在工作时间过长后走时会不够准确。

由于8259的弃用在系统扩展方面会不如以上两种。

1.3设计方案的确定

考虑各方因素,因为本次课程设计所提供的实验箱上8253只提供了一个工作通道,实验箱上所给的标准脉冲为1.8M。

这样在通过8253分频后最小只能提供F=1.8M/65535=27HZ,这样就只能在软件中在通过延时程序来达到1HZ的脉冲,这种情况下8253的使用就没有走时准确的优势,故舍弃方案①。

本次课程设计要求并未要求设计成品需要扩展功能,故舍弃方案②。

方案③达到课程设计要求并且成本最低,所以确定以方案③来设计。

 

第二章倒计时器的硬件设计

2.1倒计时的硬件框图

框图如下:

2.28255A的基本资料

一.8255A内部结构如图3-4所示。

 

8255A内部结构

①8255A3个8位数据接口,即接口A、接口B和接口C。

使用者可以用软件使它们分别作为输入端口或输出端口。

(1)端口A:

一个8位数据输入锁存器和一个8位数据输出锁存器/缓冲器,用来传送数据。

数据输入均被锁存。

(2)端口B:

一个8位数据输入缓冲器和一个8位数据输出锁存器/缓冲器,用来传送数据。

数据输入时不被锁存,数据输出时被锁存。

(3)端口C:

一个8位数据输入缓冲器和一个8位数据输出锁存器/缓冲器。

用作输入端口时,数据不被锁存;而作为输出端口是,数据被锁存。

②A组控制和B组控制

这两组控制电路一方面接收芯片内部总线上的控制字,一方面接收来自读/写控制逻辑电路的读/写命令,从而解决端口的工作方式和读/写操作。

其中,A组控制电路控制端口A和端口C高4位(PC7-PC4)的工作方式和读/写操作:

而B组控制电路控制端口B和端口C低4位(PC3-PC0)工作方式和读写操作。

③读/写控制逻辑电路

读/写控制逻辑电路负责管理8255A的数据传输过程。

它接收来自系统总线的信号A1,A0和控制总线信号RESET、WR、RD,将这些信号组合后,得到A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,完成对数据、状态信息的传输。

④数据总线缓冲器

这是个双向三态8位数据缓冲器,9255A通过它与系统数据总线相连。

输入数据、输出数据、CPU发给8255A的控制字都是通过这个缓冲器传递的。

二.8255的引脚信号

8255的引脚信号如图所示

1与外部设备端相连的引脚

(1)PA7-PA0:

A端口的输入/输出引脚。

(2)PB7-PB0:

B端口的输入/输出引脚。

(3)PC7-PC0:

C端口的输入/输出引脚。

②与CPU相连的引脚

(1)RESET:

复位信号,低电平有效。

当RESET信号来到时,所有内部寄存器都被清0,同时3个端口被自动设为输入端口。

(2)D7-D0:

8255A的数据线,和系统数据总线相连。

(3)CS:

芯片选择信号。

只有当CS有效时,读出信号RD和写入信号WR才对8255A有效。

(4)RD:

读出信号。

CPU通过IN指令使RD有效,将数据或状态信息从8255A中读到CPU。

(5)WR:

写入信号。

CPU通过OUT指令使WR有效,将数据或状态信息从CPU中写道8255A.

(6)A1,A0:

端口选择信号。

8255A内部有3个数据端口和1个控制端口,共4个端口。

规定A1,A0为00、01、10和11时,分别选中端口A、端口B、端口C和控制端口。

三.8255的控制字

①方式选择控制字

(1)方式选择控制字把A、B、C三个端口分为A、B两组来设定工作方式。

A组包括端口A和端口C的上半部,B组包括端口B和端口C的下半部。

(2)端口A可工作于3种方式中的任何一种:

端口B只能工作于方式0和方式1;而端口C除用作输入、输出口(方式0)外,通常用来配合端口A和端口B提供联络控制信号和状态信号。

(3)归在同一组的两个端口可分别作为输入端口或输出端口,不要求同为输入或输出。

②端口C按位置位/复位控制字

(1)端口C按位置位/复位控制字尽管是对端口C进行操作的,但此控制字必须写入控制口,而不写入端口C。

(2)一个控制字只能完成端口C中某一位置的置1或置0,要对多位置1或置0,必须使用多个控制字。

 

2.3显示电路的连接

显示电路的连接如下图:

实验箱上有四个数码管,故需要把其中一个数码管的片选端口接地予以选通。

在程序内设置8255的控制字D2-D1位分别为00,使B端口工作在方式0作为输出端,PB0-PB7分别对应连接数码管的A-DP。

七段发光二极管为阳极LED器件。

要让A段点亮,要求PB0输出高电平“1”;要使B段熄灭,要求从PB1输出低电平“0”。

其余各段以此类推。

要使LED上显示0-9十个数字,需要按照如下段码表来驱动数码管的七段LED。

显示字符

0

1

2

3

4

5

6

7

8

9

七段代码

3FH

06H

5BH

4FH

66H

6DH

7DH

07H

7FH

6FH

2.4控制电路的连接

控制电路的连接如下图:

设置8255A的控制字D3D0位分别为“1”,让C端口作为输入端,考虑到实验箱所给的连接线没有单口连接线,为了便于连线,每两位设置一个开关。

其中暂停键使用的是拨位开关,这样能保持一个持续的电平,便于控制。

而开始和复位则使用了按键开关。

当按下“开始”后倒时开始计数,把“暂停”拨到接地后计数会停止,按下“复位”计数器会重新复位到9直至按下“开始”倒计时重新开始倒计时。

2.5报警电路的连接

报警电路的连接如下图所示:

设置A端口工作在方式0下,作为输出端,则控制字的D6D5D4位为“000”。

电路连接如上图,在倒计时器显示为“0”的时候蜂鸣器和LED灯会被接通开始报警。

 

第三章倒计时的软件设计

3.1主程序设计框图

3.2程序的设计

①8255A控制字的设计

由硬件电路的设计可知,要使A、B端口工作在方式0,作为输出,D6D5D4为000,D2D1为00。

C端口作为输入端,其控制字D3D0为11。

则8255A的控制字为10001001。

2显示程序的设计

根据如下段码表来设计。

显示字符

0

1

2

3

4

5

6

7

8

9

七段代码

3FH

06H

5BH

4FH

66H

6DH

7DH

07H

7FH

6FH

3延时程序的设计

控制一个循环程序循环N次以到达延时的目的。

具体语句如下:

procnear;秒延时

pushcx

movcx,0ffffh

YS:

XXXX

Loopys

popcx

ret

endp

4控制程序的设计

为了保证控制按钮的响应速度,控制程序设置延时程序内。

其中暂停可以用一个循环程序来实现,当暂停键拨下时,循环程序会进入死循环状态,直至暂停键拨回。

复位则只需按条件跳转至显示“9”的程序语句即可。

5报警程序的设计

当程序运行至显示“0”的语句时给予报警电路高电平,其中报警语句还需加入复位语句,以停止报警。

 

第四章安装与调试

4.1硬件的调试

①断电调试

为了安全,首先进行断电调试,用万用表检测系统是否有短路现象,再检查严原理是否正确。

经检测,原理正确也没有短路现象。

②通电调试

检查彩灯,蜂鸣器是否能正常工作,检查数码显示是否乱码。

4.2软件的调试

将已编好的程序下载到已连接好电路的实验箱上,逐句调试语句,再根据实验现象调试此程序并改正,最终得到符合实验要求的程序。

4.3调试过程

①秒脉冲输出的测定,拿示波器测量以确定延时程序的循环次数。

②在运行程序的时候出现了程序开始运行,报警器就工作的现象。

在程序中加入了初始化报警电路的语句后运行正常。

4在最初设计的程序中出现按下复位和暂停键后有明显延迟的情况,在把复位和暂停程序写入延时程序后,延迟明显降低。

 

第五章设计体会与总结

此次课程设计,大大深了我对微机原理的理解。

在这次设计中,我学到了很多课本上没有的,以及平时被我们所忽视的东西。

平时在上完课后认为对老师所讲的东西都很理解,但是在真正自己设计程序时却无从下手。

不能清晰的理解理论知识,就不能在实际实践中熟练的应用。

不仅是理论知识的理解,在此次课程设计后,我对很多电子器件有了更深入的理解,比如数码管在微机中的应用,8255A的实际应用及功能。

本次设计虽然是8255A非常简单的应用,但让我掌握了学习可编程接口芯片和可编程接口芯片的方法,为以后的学习实践打下了基础。

在设计过程当中也发现了自己经验的不足,尤其是在编程序方面还需要大量的练习,为以后的学习打下基础。

万事开头难,在这次课程设计后我对自己的动手能力更加有信心。

由于时间和个人能力的不足,我没能做出多位数码管计时的设计,但是在以后的时间里我继续学习以补充自己知识的短板来完善自身。

 

附录

附一系统硬件原理图

附二部分源程序与参考文献

①源程序

sttsegmentstack

db64dup(0)

sttends

datasegment

dataends

codesegment

assumecs:

code,ds:

data,ss:

stt

start:

movax,data

movds,ax

moval,89h;控制字的写入

out63h,al

moval,0ffh

out62h,al

a1:

moval,30h;管脚清零

out60h,al

moval,6fh

out61h,al

a2:

inal,62h;开始

testal,08h

jnza2

calldelay1

moval,7fh

out61h,al

calldelay1

moval,07h

out61h,al

calldelay1

moval,7dh

out61h,al

calldelay1

moval,6dh

out61h,al

calldelay1

moval,66h

out61h,al

calldelay1

moval,4fh

out61h,al

calldelay1

moval,5bh

out61h,al

calldelay1

moval,06h

out61h,al

calldelay1

a3:

moval,3fh;显示“0”同时报警

out61h,al

moval,0c0h

out60h,al

inal,62h;复位停止报警

testal,01h

jza1

jmpa3

delay1proc;秒延时

pushcx

movcx,0ffffh

YS:

inal,62h;暂停循环

testal,10h

jzYS

inal,62h;复位跳转至显示“9”

testal,01h

jza1

loopYS

popcx

ret

delay1endp

codeends

endstart

②参考文献

[1]李伯成等《微型计算机原理及应用》西安电子科技大学出版社,1998.5

[2]陈忠强《现代微机原理与接口技术》冶金工业出版社.2006年

[3]郭兰英《微机原理与接口技术》清华大学出版社.2006年

[4]李银华《电子线路技术指导》北京航空航天大学出版社,2005

 

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

当前位置:首页 > 人文社科 > 法律资料

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

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