北京科技大学微机课程设计.docx
- 文档编号:8008690
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:28
- 大小:1MB
北京科技大学微机课程设计.docx
《北京科技大学微机课程设计.docx》由会员分享,可在线阅读,更多相关《北京科技大学微机课程设计.docx(28页珍藏版)》请在冰豆网上搜索。
北京科技大学微机课程设计
北京科技大学
本科生课程设计说明书
题目:
六路抢答器
学院:
专业:
姓名:
学号:
指导教师签字:
2012年月日
摘 要
随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。
各种技术都离不开计算机,计算机已经在人们生活的各个方面普及了。
本课程设计是微机原理及接口技术的简单应用。
运用所学的微机原理和接口技术知识完成六路抢答器。
通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了六路抢答器出现的各种情况。
该抢答器以主持人为中心,操作抢答器的开始与复位,选手们可以根据主持人的提示进行抢答,该抢答器基本能满足现在社会抢答的需要,设计简单,成本低,适合小型抢答场合。
关键词:
抢答器硬件电路软件编程模拟系统
前 言
随着人们生活水平的提高,微机已经成为人们生活中重要的部分,掌握微机原理是我们信息类专业的必备知识。
8086/8088CPU是基础且广泛应用的处理器,它由执行单元和总线接口部分组成。
本说明书是包括课程设计的要求、汇编语言程序以及相关的硬件设计等内容组成。
根据汇编语言的优点,运用汇编语言的来编写程序,使程序更加便于阅读和理解。
本说明书是根据本人课堂上所学的知识以及参考相关文献的基础上编写的。
通过这次的编写,使我对微机原理和各种软硬件系统的认识变得更加深刻,打下实践的基础。
全书共分为4章,第1章为课题的来源,为本说明书的导论,基本概括来介绍了本设计题目的基本要求。
第2章为总体的设计思路,系统的介绍了本课题的具体如何实现。
第3章为硬件设计,该部分主要介绍了所需要的硬件和硬件的连接。
第4章为软件设计,该部分主要介绍了设计流程和具体实现的程序代码。
本说明书的编写得到了许多同学的关心和帮助,正是由于他们的指导、帮助和大力支持,才使本说明书得以顺利的完成。
由于本人水平有限,说明书中难免存在不足与疏漏之处,恳请老师不吝指正。
目 录
课程设计任务书
一.设计内容
设计一个具有6路抢答的抢答器,启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。
比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。
利用并行接口和开关键。
逻辑开关K0——K5代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下。
若选手抢答成功,黄灯亮,七段数码管显示选手号码,扬声器鸣叫。
若选手抢答违规(主持人未按开始键),七段数码管显示违规选手号码,红灯亮,扬声器报警。
若系统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,七段数码管显示该选手的号码。
本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。
对抢答后的回答时间30秒进行倒计时控制,如回答超时,则以扬声器报警。
注:
1)抢答成功,扬声器的鸣叫声音频率为1.5KHz。
2)抢答失败,扬声器的鸣叫声音频率为1KHz。
3)抢答计时时间到,扬声器的鸣叫声音频率为1.25KHz。
4)扬声器鸣叫或报警的时间为10s。
二.目标
尽自己大的努力,实现上述的设计要求,并使上述现象能够很好地显示出来。
3.进度安排
1)11月17日,下载相关资料,并通过查找资料和询问同学老师,了解程序设计的要求、目的和任务。
2)11月18日,想好要设计的内容,并对所要设计的内容做好详细的计划安排。
根据要设计的题目和计划,写好课程设计任务书。
3)11月19日至11月21日,设计硬件图。
4)11月22日至11月23日,根据设计的题目要求,运用汇编语言编写相关的程序,并检查所编写的程序,且调试并改正错误。
5)11月24日,编写说明书的封面、前言和目录。
6)11月25日至11月26日,编写说明书的正文部分。
7)11月30日,最终检查确认后,上交课程设计说明书。
1课题来源
1.1需求分析
1.1.1课题来源的意义
随着社会经济的发展,越来越多的地方需要用到抢答器,比如在一些娱乐节目中。
随着抢答器的应用范围越来越广泛,这就需要我们采取最合适的算法来设计抢答器。
所以,如何采用适合的控制方法,最大限度的利用好硬件的性能,使抢答器电路稳定运行,越来越成为需要解决的重要问题。
所以,由此而产生来灵感,利用汇编语言设计安全可靠的六路抢答器。
1.1.2设计内容
利用可编程芯片8255,8253,8259设计六路抢答器的接口方案,根据设计的方案画出程序流程图,并编写程序进行调试。
1.1.3设计目的
综合运用《微机原理与接口技术》课程知识,利用集成电路设计实现一些中小规模电子电路且完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计能力及实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。
针对此次课程设计主要是运用本课程的理论知识进行六路抢答器分析及设计,掌握8255,8253,8259的使用与编程方法,从而复习巩固了课堂所学的理论知识,提高了对所学知识的综合应用能力。
1.1.4系统功能
根据要求,我所设计的系统主要是由主持人利用开始,复位键控制抢答的系统,基本能满足日常抢答所需。
2总体设计思路
2.1设计思路
由于本次实验要用到七段数码显示、中断控制、倒计时等功能,故初步分析,
需要8255、8259、8253等芯片。
经过分析,实验的关键是准确判断出最先抢答者的信号并锁存,而同时不理
睬其他抢答者的信号。
为此,可将6个抢答按钮信号通过一个8位并行输入口接
至微机中。
当主持人启动抢答过程后,微机通过该并行输入口循环对6路抢答信
号进行采样。
当采样到那一组的抢答信号已经发出,则立即停止采样,并记录下
该组的组号,每路抢答按钮电路可以按图4.1设计。
由图可知,当6个选手均未按下抢答按钮时,送入到并行接口的6位抢答状态
都是0,而当微机采样到这6位数据不为0时,则表示有一组获得了抢答机会,然后
通过逐位查询状态,即可判断出哪一个选手抢答成功,最后利用并行输出接口将抢
答成功的选手号显示出来.在本设计方案中,可以用一位7段数码管来显示抢答选
手的组号.
为了对抢答后的回答时间进行计时控制,可以利用一个可编程定时计时器,
先置计数初值,再计时,当计时时间到后,由并行接口输出一个扬声器信号提示
抢答选手的回答时间已到。
由于本系统要求对犯规的选手亮红灯警告,所以要设置一个启动按键,在主
持人按下启动按键之前,如果有抢答钮被按下,则该抢答选手犯规,可以通过并
行接口输出一个信号使该组的红色发光二级管点亮以示该组选手犯规。
2.2红黄绿灯的表示
1.通过8255并口来控制LED发光二极管的亮灭。
2.PC2口控制红灯,PC1口控制黄灯,PC3口控制绿灯。
3.输出为1则亮,输出为0则灭。
4.用8253定时来控制变换时间。
3硬件设计
3.1芯片8255,8253,8259
3.1.1芯片8255的引脚
图1芯片8255引脚图
8255A的引脚如图所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。
D7~D0(数据线):
三态、双向数据线,与CPU数据总线连接,用来传送数据。
CS:
片选信号线,低电平有效时,芯片被选中。
A1,A0(portaddress):
地址线,用来选择内部端口。
RD:
读出信号线,低电平有效时,允许数据读出。
WR:
写入信号线,低电平有效时,允许数据写入。
RESET:
复位信号线,高电平有效时,将所有内部寄存器清0。
PA7~PA0(端口A):
A口输入/输出信号线。
PB7~PB0(端口B):
B口输入/输出信号线。
PC7~PC0(端口C):
C口输入/输出信号线。
VCC:
+5V电源。
GND:
电源地线。
3.1.2芯片8255的工作方式
1)芯片8255主要有三种工作方式
方式0---基本输入输出方式;
方式1---选通输入输出方式;
方式2---双向选通输入输出方式。
2)方式控制字:
图2
3)c口复位/置位控制寄存器
图3
芯片8253的引脚
芯片8253的工作方式
A1、A0:
地址输入线,用来址8253内部的4个端口,即3个计数器和1
个控制字寄存器与CPU系统地址线相连。
CLK0、CLK1、CLK2:
时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。
CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。
当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计
数时,这个脉冲可以是不均匀的、断续的、周期不定的。
GATE0、GATE1、GATE3:
门控输入端,用于外部控制计数器的启动计数和
停止计数的操作。
两个或两个以上计数器连用时,可用此信号同步,也可
用于与外部某信号的同步。
OUT0、OUT1、OUT2:
计数输出,当计数器从初值开始完成计数操作进,OUT
引脚输出相应的信号。
③8253的工作方式
方式0:
减1计数到0,产生中断请求信号。
方式1:
减1计数到0,产生可重复触发的单稳态负脉冲信号。
方式2:
减1计数到1,分频器(速率信号发生器)。
方式3:
减1计数到初值的1/2,方波发生器。
方式4:
减1计数到0,软件触发产生选通负脉冲信号。
方式5:
减1计数到0,硬件触发产生选通负脉冲信号。
芯片8259的引脚
芯片8259的工作方式
D0-D7:
双向数据线,CPU与8259间利用这个数据总路线传送数据及命令。
WR:
写控制输入信号,同控制总路线上的IOW信号相连。
RD:
读控制输入信号,同控制总路线上的IOR信号相连。
A0:
地址选择信号,用来对8259A内部的两个可编程寄存器进行选择。
CS:
片选输入信号,低电平有效。
有效时可通过数据总路线设置命令并对
内部寄存器进行读出。
当进入中断响应时序时,该引脚状态与进行的处理
无关。
INT:
由8259A向CPU发出的中断请求信号。
INTA:
输入信号,接收CPU送来的中断响应信号INTA。
三、80系列芯片简介
-7-
IR0-IR7:
8个中断请求输入信号,高电平或上升沿有效。
用于接收外设
接口来的中断请求。
③8259A工作方式
a.优先级设置方式:
全嵌套方式(固定优先级方式)、特殊全嵌套方
式(可响应同级中断方式)、轮转优先级方式、特殊轮转优先级方式。
b.中断源屏蔽方式:
普通屏蔽方式、特殊屏蔽方式。
c.中断结束方式:
中断自动结束方式、中断非自动结束方式(包括一
般中断结束方式、特殊中断结束方式)。
d.系统总路线连接方式:
缓冲方式、非缓冲方式。
e.中断请求信号触发方式:
边沿触发方式、电平触发方式。
3.2硬件连接
3.2.1硬件连接图
各模块连接图:
(1)抢答电路单元图
(2)LED电路单元图
(3)蜂鸣器模块
(4)复位键和开始键
(5)时钟模块
(6)8255模块
(7)8259模块
(8)8253模块
4软件设计
4.1程序流程图
软件定义
①定义一个TAB变量用来存储1-9的字形码信息,如下表
②定义一个HQ变量作为标志位,用来选手抢答是否违规,HQ=0FFH
时表示主持人已经按下开始键选手可以抢答,HQ=00H表示主持人未按下
开始按键,选手不可以抢答。
程序流程图
4.2程序设计
(部分子程序)
KEYINTPROCFAR
PUSHAX;保护现场
PUSHBX
PUSHDX
PUSHDS
CLI;并使本次中断压入堆栈中的IF=0(关中断)
INAL,80H;从8255的A口获取选手按键信息
NOTAL;将按键字节信息取反
MOVCX,8;计数8次
LOP4:
SHRAL,1;获取选手号码
LOOPNZLOP4
MOVAX,CX;把选手号传给AX
MOVBX,OFFSETTAB;查段码(字形码)
XLAT;将选手号转换成TAB中对应的LED字形码
OUT81H,AL
TESTHQ,0FFH;判断标志位是否为FFH,检查是否按下开始键
JZLOP5;未按下,跳至LOP5
MOVAL,67H;置8253通道2计数值667,蜂鸣器频率1.5KHz
OUT42H,AL
MOVAL,06H
OUT42H,AL
MOVAL,01H;使蜂鸣器响
OUT82H,AL
MOVAL,03H;黄灯亮,抢答成功
OUT82H,AL
JMPKKK
LOP5:
MOVAL,00H;置8253通道2计数值1000,蜂鸣器频率1KHz
OUT42H,AL
MOVAL,10H
OUT42H,AL
MOVAL,01H;使蜂鸣器响
OUT82H,AL
MOVAL,05H;红灯亮,抢答违规
OUT82H,AL
KKK:
MOVAL,00H;送计数器0当前计数值锁存命令
OUT63H,AL
INAL,61H
MOVCL,AL
INAL,61H
MOVCH,AL
TESTCX,0
JNZKKK
MOVAL,00H;置8253通道2计数值800,蜂鸣器频率1.25KHz
OUT42H,AL
MOVAL,08H
OUT42H,AL
MOVAL,01H;使蜂鸣器响
OUT82H,AL
MOVAL,20H;给8259发中断结束命令,写OCW2
OUT20H,AL
POPAX;恢复现场
POPBX
POPDX
POPDS
IRET
KEYINTENDP
CODEENDS
ENDSTART
小结
这次的课程设计不仅考验了一个人对于专业知识的掌握程度,更是对一个人毅力耐力的一次检阅。
此次课程设计可以说是获益匪浅,通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:
仔细谨慎,精益求精。
通过本次课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术,对课本上的知识有了更深的理解,课本上的知识是机械的,表面的。
通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。
本次课程设计我学到了很多新的东西,极大地拓宽了知识面,锻炼了能力,综合素质得到较大提高,感到收获不小。
同时也发现了大量问题,有些在设计过程中已经解决,有些还要待今后慢慢学习,只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。
通过本次课程设计我也获得了许多收益,首先,让我更好的掌握了8259A、8255A、8253芯片的工作原理、方式及其应用。
其次,让我学会了如何设计一个简单的微机系统,以及设计一个简单微机系统所需要的步骤和设计中需要注意的地方。
总之,课程设计作为一种教学方式,巩固了我们课堂上所学的知识,提高了我们对知识学习的热情,锻炼了我们运用知识解决实际问题的能力,让我们收获了很多。
由于本人水平有限,所编写的程序可能存在不足与疏漏之处,恳请老师不吝指正。
参考文献
[1]《微型计算机原理》王忠民西安电子科技大学出版社
[2]《微机原理、汇编与接口技术》朱定华清华大学出版社
[3]《微型计算机原理及接口技术》李伯成清华大学出版社
[4]《微机原理与接口技术实验指导与习题集》周明德清华大学出版社
[5]《微机原理与接口技术实验教程》陈春华东北大学出版社
课程设计图纸:
程序清单:
主程序:
DATASEGMENT
TABDB06H,5BH,4FH,66H,6DH,7CH,07H,7FH,67H;1~9的段码;(字形码)
HQDB00H
DATAENDS
STACK1SEGMENTPARASTACK'STACK'
DB100HDUP(?
)
STACK1ENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK1
MOVSS,AX
;8259A初始化
MOVAL,13H;初始化8259A的ICW1
OUT20H,AL
MOVAL,08H;送中断类型码基值,8259A的ICW2
OUT21H,AL
MOVAL,0DH;一般中断结束方式,8259A的ICW4
OUT21H,AL
;8255A初始化
MOVAL,98H;置8255A工作方式
OUT83H,AL
SUBAL,AL;B口、C口初始化
OUT81H,AL
OUT82H,AL
;扬声器8253初始化
MOVAL,37H;置8253通道0控制字
OUT43H,AL
MOVAL,00H;置8253通道0计数初值为4000
OUT40H,AL
MOVAL,40H
OUT40H,AL
MOVAL,73H;置8253通道1控制字
OUT43H,AL
MOVAL,00H;置8253通道1计数初值为2500
OUT41H,AL
MOVAL,25H
OUT41H,AL
MOVAL,0B7H;置8253通道2控制字
OUT43H,AL
;计时8253初始化
MOVAL,37H;置8253通道0控制字
OUT63H,AL
MOVAL,00H;置8253通道0计数初值为4000
OUT60H,AL
MOVAL,40H
OUT60H,AL
MOVAL,73H;置8253通道1控制字
OUT63H,AL
MOVAL,00H
OUT62H,AL
MOVAL,75H
OUT62H,AL
MOVAL,00H;置8253通道2计数初值为0
OUT42H,AL
MOVAL,00H
OUT42H,AL
;中断设置
PUSHDS
MOVDX,OFFSETKEYINT;取中断服务程序的偏移地址
MOVAX,SEGKEYINT;取中断服务程序的段地址
MOVDS,AX
MOVAH,25H;设置抢答按键中断向量
MOVAL,0AH;中断类型号为入口参数
INT21H
POPDS
STI;使IF置1,开放可屏蔽中断
;主循环
HQWM:
INAL,82H;检测开始键
TESTAL,20H;检测C口的PC5端
JZHQWM;开始键未按下即PC5=0,则跳转检测复位键
HQ1:
INAL,82H;检测开始键是否已经弹起,即PC5=0
TESTAL,20H
JNZHQ1;开始键没有弹起再重新检测
MOVAL,00H;关LED显示器
OUT81H,AL;送到B口
MOVAL,07H;绿灯亮
OUT82H,AL;送到C口
MOVHQ,0FFH;置标志
STI
HQ2:
INAL,82H;检测复位键
TESTAL,10H;检测C口的PC4端
JZHQWM;复位键未按下即PC4=0,则跳转再检测开始键
HQ3:
INAL,82H;检测复位键是否弹起,即PC4=0
TESTAL,10H
JNZHQ3;位键没有弹起,则重新检测
XORAL,AL;关LED显示器、指标灯
OUT81H,AL
OUT82H,AL
MOVHQ,00H;清标志
STI
JMPHQWM
;中断服务子程序
KEYINTPROCFAR
PUSHAX;保护现场
PUSHBX
PUSHDX
PUSHDS
CLI;并使本次中断压入堆栈中的IF=0(关中断)
INAL,80H;从8255的A口获取选手按键信息
NOTAL;将按键字节信息取反
MOVCX,8;计数8次
HQ4:
SHRAL,1;获取选手号码
LOOPNZHQ4
MOVAX,CX;把选手号传给AX
MOVBX,OFFSETTAB;查段码(字形码)
XLAT;将选手号转换成TAB中对应的LED字形码
OUT81H,AL
TESTHQ,0FFH;判断标志位是否为FFH,检查是否按下开始键
JZHQ5;未按下,跳至HQ5
MOVAL,67H;置8253通道2计数值667,蜂鸣器频率1.5KHz
OUT42H,AL
MOVAL,06H
OUT42H,AL
MOVAL,01H;使蜂鸣器响
OUT82H,AL
MOVAL,03H;黄灯亮,抢答成功
OUT82H,AL
JMPKKK
HQ5:
MOVAL,00H;置8253通道2计数值1000,蜂鸣器频率1KHz
OUT42H,AL
MOVAL,10H
OUT42H,AL
MOVAL,01H;使蜂鸣器响
OUT82H,AL
MOVAL,05H;红灯亮,抢答违规
OUT82H,AL
JMPHQ6
KKK:
MOVAL,00H;送计数器0当前计数值锁存命令
OUT63H,AL
INAL,61H
MOVCL,AL
INAL,61H
MOVCH,AL
TESTCX,0
JNZKKK
MOVAL,00H;置8253通道2计数值800,蜂鸣器频率1.25KHz
OUT42H,AL
MOVAL,08H
OUT42H,AL
MOVAL,01H;使蜂鸣器响
OUT82H,AL
MOVAL,20H;给8259发中断结束命令,写OCW2
OUT20H,AL
HQ6:
POPAX;恢复现场
POPBX
POPDX
POPDS
IRET
KEYINTENDP
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京科技大学 微机 课程设计