微型计算机原理课设.docx
《微型计算机原理课设.docx》由会员分享,可在线阅读,更多相关《微型计算机原理课设.docx(10页珍藏版)》请在冰豆网上搜索。
微型计算机原理课设
《微型计算机原理》
课程设计题目:
竞赛抢答器设计
姓名:
赵浩淞
学号:
40850020
班级:
电081
指导教师:
董洁
日期:
2010.12
前言
本次课程设计的内容是设计一个6路抢答器,并对抢答成功、抢答犯规、响铃提示等实际情况进行软硬件模拟。
设计过程中,主要用到的芯片有可编程中断控制器8259A、可编程并行接口芯片8255A、可编程定时器/计数器芯片8253等。
硬件方面,原理图的设计是基于Labcenterelectronics公司出版的Proteus,它强大的仿真能力让我赞叹不已的同时,也受益匪浅。
软件方面,程序的设计是基于8086/8088汇编语言在轻松汇编软件上进行编写和调试,它小巧方便且功能齐全。
反复推敲的设计思路,充满艰辛而又饶有趣味的设计过程,成功的软、硬件结合,再加上日复一日的努力奋斗,才有了今日之设计成果。
在要求的基础之上,我还加入了一些自主创新的东西。
设计完成之时,本人激动的心情,溢于言表。
虽然,我知道,我的设计成果之中一定还存在很多不足之处,很多可以优化的地方,甚至,有可能还会有一些漏洞。
但是,整个过程我的的确确努力了,并全身心投入于其中了。
我尽量做到了我所能做到的最好。
下面,我将对我的设计思路、设计过程、设计心得等逐一进行详细的阐释。
烦请老师审阅。
特此感谢董洁老师一学期悉心的教导。
目录
第一章课程设计任务书。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
4
第二章设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
5
2.1设计思路。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
5
2.2硬件设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
6
2.3软件设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
7
第三章小结及参考文献。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
10
第四章课程设计图纸。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
11
第五章程序清单。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
12
第一章设计要求
设计一个具有4(6)路抢答的抢答器,启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。
比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。
利用并行接口和开关键。
逻辑开关K0——K3(5)代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下。
若选手抢答成功,黄灯亮,七段数码管显示选手号码,扬声器鸣叫。
若选手抢答违规(主持人未按开始键),七段数码管显示违规选手号码,红灯亮,扬声器报警。
若系统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,七段数码管显示该选手的号码。
本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。
注:
1)抢答成功,扬声器的鸣叫声音频率为1KHz(1.5KHz)。
2)抢答失败,扬声器的鸣叫声音频率为0.5KHz(1KHz)。
3)抢答计时时间到,扬声器的鸣叫声音频率为0.75KHz(1.25KHz)。
4)扬声器鸣叫或报警的时间为12s(10s)。
第二章设计
2.1设计思路
由于本次实验需要用到数码显示、中断控制、倒计时等功能,股初步分析,需要8255、8259、8253等芯片。
经过分析,实验要点在于判断最先抢答者并锁存,同时不理睬其他信号。
因此,可将6个抢答按钮通过并行输入口接至微机。
当主持人启动抢答过程后,微机对6个口循环采样。
若有一组发出信号,则立刻停止,并记录组号。
为了对抢答后回答时间进行控制,可以用8253计时,先置初值再计时,时间到后亮灯并提示音。
本实验要设置一个启动键,如果在启动按钮未按下前抢答,则视为犯规,二极管发光并提示音。
2.2硬件设计
1.所需器件:
8088、8259A、8255、8253、74138、黄红绿二极管、扬声器、led显示器、8个按键
2.内存编址:
8259A:
20H、21H
8255A:
80H、81H、82H、83H
8253:
40H、41H、42H、43H
下面具体说明各个芯片和主要元件的功能。
1.8088CPU
8088CPU采用最小工作方式,它的地址/数据复用总线(A0~A16)通过3片地址锁存器8282和2片数据收发器8286连到各个主控芯片上,以向其发出地址信号,从而确定其端口地址和中断类型号等。
同时,负责接受芯片传送来的数据和向芯片发送数据。
2.可编程定时器/计数器芯片8253
芯片的端口地址为0CH~0FH。
计数器0为工,方式3,采用二进制计数;计数器1,方式2,只写入低8位,二进制计数;设置计数器二,方式3,二进制计数。
(1)计数器0作定时器使用,具体定时时间(10s或30s)由计时子程序提供计数初值而决定。
CLK0接5KHz时钟源。
GATE0由U3的PC7端口控制。
OUT0接到U4的IR1端口产生中断。
(2)计数器1作定时刷新装置,每2ms内刷新DRAM一次。
CLK1接1.19MHz时钟源。
GATE1接高电平。
OUT1接D触发器的时钟端。
(3)计数器2用于控制扬声器的鸣叫频率。
具体的鸣叫频率在响铃子程序中给计数器2赋初值决定。
CLK2接15KHz时钟源。
GATE2由U3的PB6端口控制。
OUT2输出和PB7通过与门控制扬声器发生,即当PB6和PB7均为高电平时,扬声器才能发生。
扬声器由一个共射放大电路控制,进行信号放大。
3.可编程并行接口芯片8255A
PA,PB,PC口均工作于方式0,输出方式。
芯片的端口地址为10H~13H。
PA0~PA6口控制显示抢搭成功选手号码的数码管。
PB0~PB5口控制选手抢搭成功时,代表选手的黄灯亮起(16~21号灯分别对应1~6号选手)。
PC0~PC6口控制显示抢答犯规选手号码的数码管。
4.8259A中断控制器
通过初始化编程向8259A写入相应的初始化命令ICW,可以使芯片处于一个规定的基本工作方式,并在此方式下进行工作。
8259A的初始化命令字共有4个ICW1-ICW4,进行初始化时要求ICW1-ICW4按一定的顺序写入。
5.译码器74LS138
用于对地址总线传来的地址进行译码,以唯一确定各芯片端口的地址。
2.3软件设计
第三章小结
通过这次为期一周的微机原理和接口技术课程设计,扎实了我们的理论,培养了我们的实际动手能力。
一周的设计,让我们更深入的理解了选用可编程并行接口芯片8255A和可编程计时/定时器8254的工作原理和工作方式,知道了数码管的显示方法,了解了计算机主板构成、接口技术及其应用编程方法。
这次设计也培养了我的做事认真细致有耐心的品质,锻炼了我的分析问题、解决问题的综合能力,为我们今后的学习和工作奠定了基础,让我们受益匪浅。
我在设计中遇到很多苦难,大都是芯片和应用还不熟练,还需更加努力更加深入的了解微机系统及功能。
由于我能力有限,且未通过硬件实现,设计中难免有问题有待改进。
参考文献
1、王忠民·《微型计算机原理》【M】西安电子科技大学出版社
2、仁向民·《微机接口技术实用教程》【M】清华大学出版社
3、阎石·《数字电子技术基础》【M】高等教育出版社
第四章课程设计图纸
第五章程序清单
DATASEGMENT
TABDB06H,5BH,4FH,66H,6DH,7CH,07H,7FH,67H;1~9字型码
BZDB00H
DATAENDS
STACKSEGMENTPARASTACK'stack'
DB100HDUP(?
)
STCKENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
;8259初始化
MOVAL,13H;ICW1
OUT20H,AL
MOVAL,08H;ICW2
OUT21H,AL
MOVAL,0DH;ICW4
OUT21H,AL
MOVAL,98H;8255初始化
OUT83H,AL
MOVAL,00001101;PC6置1
OUT80H,AL
MOVAL,73H;8253计数器1
OUT43H,AL
MOVAL,0B7H;计数器2
OUT43H,AL
MOVAH,25H;建立抢答中断向量表
MOVAL,0AH
MOVBX,SEGKEYINT
MOVDS,BX
MOVDX,OFFSETKEYINT
INT21H
STI;IF置1,开放中断
LOPM:
INAL,82H;检测开始键
TESTAL,20H;检测PC5
JZLOP2;开始键未按下
LOP1:
INAL,82H
TESTAL,20H
JNZLOP1;开始键没弹起重新检测
MOVAL,00H;关LED显示
OUT81H,AL;绿灯亮
MOVBZ,0FFH;送C口
MOVAL,1000;响铃1KHZ
OUT42H,AL
STI
LOP2:
INAL,82H;检测复位键
TESTAL,10H;检测PC4
JZLOPM;未按下
LOP3:
INAL,82H
TESTAL,10H
JNZLOP3;检测是否按下
MOVAL,00H;关显示,灯
OUT81H,AL
OUT82H,AL
MOVBZ,00H
STI
JMPLOPM
KEYINTPROCFAR
PUSHAX
PUSHBX
PUSHDX
PUSHDS
CLI;IF置0
INAL,80H;从A口获取选手信息
MOVCX,6;计六次
LOP4:
SHRAL,1
LOOPNZLOP4
MOVAX,CX;选手号给AX
MOVBX,OFFSETTAB
XLAT;选手号转换成LED字型码
OUT81H,AL
TESTBZ,0FFH
JZLOP5
MOVAL,00H
OUT42H,AL
MOVAL,10H
OUT42H,AL
MOVAL,03H;黄灯亮
OUT82H,AL
MOVAL,666;响铃1.5KHZ
OUT42H,AL
MOVDX,40H
MOVAL,64H
OUTDX,AL;写8253计数初值,定时12秒
MOVAL,00h
OUTDX,AL
MOVDX,41H
MOVAL,3EH
OUTDX,AL
MOVAL,03h
OUTDX,AL
JZLOP5
JNZKKK
LOP5:
MOVAL,00H
OUT42H,AL
MOVAL,20H
OUT42H,AL
MOVAL,05H;红灯亮
OUT82H,AL
MOVAL,800;响铃1.25KHZ
OUT42H,AL
KKK:
MOVAL,20H
OUT20H,AL
POPAX
POPBX
POPDX
POPDS
IRET
KEYINTENDP
CODEENDS
ENDSTART