微机原理课程设计报告.docx
- 文档编号:24842827
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:55
- 大小:2.80MB
微机原理课程设计报告.docx
《微机原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计报告.docx(55页珍藏版)》请在冰豆网上搜索。
微机原理课程设计报告
微型计算机技术
课程设计
指导教师:
班级:
姓名:
学号:
班内序号:
课设日期:
_________________________
1
目 录
一、课程设计题目 .................................3
二、设计目的 .....................................3
三、设计内容 .....................................3
四、设计所需器材与工具 ...........................3
五、设计思路 .....................................4
六、设计步骤(含流程图和代码) .....................4
七、课程设计小结 ................................36
2
一、课程设计题目:
点阵显示系统电路及程序设计
利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片 8253、
8255A、8259 设计一个基于微机控制的点阵显示系统。
二、设计目的
1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字
电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。
2.掌握接口芯片 8253、8255A、8259 等可编程器件、译码器 74LS138、8 路
同相三态双向总线收发器 74LS245、点阵显示器件的使用。
3.学会用汇编语言编写一个较完整的实用程序。
4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、
元器件选用、布线、编程、调试、撰写报告等步骤。
三、设计内容
1.点阵显示系统启动后的初始状态
在计算机显示器上出现菜单:
dot matrix display system
1.←left shift display
2.↑up shift display
3.s stop
4.Esc Exit
2.点阵显示系统运行状态
按计算机光标←键,点阵逐列向左移动并显示:
“微型计算机技术课程设计,
点阵显示系统,计科 11302 班,陈嘉敏,彭晓” 。
按计算机光标↑键,点阵逐行向上移动并显示:
“微型计算机技术课程设计,
点阵显示系统,计科 11302 班,陈嘉敏,彭晓” 。
按计算机光标 s 键,点阵停止移动并显示当前字符。
3.结束程序运行状态
按计算机 Esc 键,结束点阵显示系统运行状态并显示“停”。
四.设计所需器材与工具
1.一块实验面包板(内含时钟信号 1MHz 或 2MHz)。
2.可编程芯片 8253、8255、74LS245、74LS138 各一片,16×16 点阵显示器
件一片。
3
3.导线若干。
4.示波器、万用表、常用工具等共用(从实验室现借现还)。
五、设计思路
1.利用 74LS138 设计地址译码电路,8255 端口地址:
300H~303H,8253 端
口地址:
304H~307H。
2.74LS245 用于总线和 8253、8255 之间的双向传输和隔离。
3.利用面包板上时钟(1MHz 或 2MHz)和 8253 设计一个 1 毫秒定时电路,
将定时信号(1 毫秒方波)接到总线的 IRQ2 或 IRQ10 送给 8259 控制点阵左移或
上移。
4.选择 8255 的 PA0、PA4、PA5 和 PB4、PB5、PB6、PB7,7 个位控制点阵显
示器件行和列的数据串行输入、输入脉冲、锁存脉冲(并行输出脉冲)。
六、设计步骤
1.电路原件介绍
(1)74LS245 数据总路线缓冲器图 6-1-1
74LS245 的功能表 图 6-1-2
4
图 6-1-3
(2)74LS138图 6-1-4
5
标准地址译码电路 图 6-1-5
8255CS 对应的地址为 300H~303H, 8253CS 对应的地址为 304H~307H。
简化后的非标准地址译码电路 图 6-1-6
6
(3).8253 定时/计数器图 6-1-7
(4).8255A图 6-1-8
7
(5).点阵显示器件图 6-1-9图 6-1-10
附 4、课程设计所用器件 图 6-1-12
8
附 5、点阵生成图图 6-1-13
图 6-1-14
9
图 6-1-15
图 6-1-16
10
图 6-1-17
图 6-1-18
11
图 6-1-19
图 6-1-20
12
2.流程图
开始
初始化 8253、8255A 及 8259
芯片,选择计数器 1、2,输出
端口 A、B,工作方式 0
显示主界面信息,点阵显示出
字模,停止不移动
中断服务程序,不断扫描键盘,等待有键
按下(1.2.3.4)并执行相应服务程序
按键 1
启动 LeftShift
功能,调用左
移程序,并显
示在点阵上
3.电路图
按键 2
启动 UpShift
功能,调用上
移程序,并显
示在点阵上
按键 3
启动
StopDisplay 功
能,调用停止
程序,点阵停
止移动并显示
当前字符
按键 4
启动 Esc 功能,
调用退出程序,
点阵显示
“停”,并结
束显示。
图 6-3-1
13
注:
(1)电路箱总芯片上已集成 8259 芯片,实际连接时 8253 的 OUT2 直接接到总
芯片的 IRQ10 处;
(2)实际连接时,是由 8255A 芯片的 PA0、PA4、PA5、PB4、PB5、PB6、PB7
控制点阵显示屛;PA0→R1、PA4→SCK、PA5→LATCH、PB4→A、PB5→B、PB6→C、
PB7→D。
GND 和 EN/OE 接地,+5V 接电源正极。
4.正确运用所给器件布线,搭接硬件电路
初始接线图图 6-4-1
测试中发现 8255 无法正常工作,检查得知面包板底下有短路,
重新申请新的面包板,更改部分线路,最后得到线路图如下,并测试
成功。
14
最终接线图及测试图 6-4-2
15
5.详细汇编代码
DATA SEGMENT
微 db 12H, 10H, 12H, 10H, 2AH, 90H, 4AH, 0A4H, 8AH, 0BEH, 1FH, 0C4H,20H,
24H,7FH, 0A8H, 0A0H,28H,2FH,28H, 29H,10H,29H,50H,29H, 0A8H,
29H,28H,30H,46H, 20H,84H
型 db 01H,04H,7FH,84H,12H, 24H,12H,24H,12H,24H, 0FFH, 0A4H,
12H, 24H, 12H, 24H, 12H, 04H, 23H, 14H, 41H, 08H, 7FH, 0FCH, 01H,00H,
01H,04H, 0FFH, 0FEH, 00H,00H
计 db 00H, 40H, 20H, 40H, 10H, 40H, 10H, 40H, 00H, 40H, 00H, 44H, 0F7H,
0FEH,10H, 40H,10H,40H,10H,40H, 10H,40H,12H,40H,14H, 40H,
18H,40H,10H,40H, 00H,40H
算 db 20H,80H,3EH, 0FCH,49H, 20H,9FH, 0F0H,10H,10H, 1FH, 0F0H,
10H,10H,1FH, 0F0H,10H,10H,1FH, 0F0H, 08H,24H, 0FFH, 0FEH,08H,
20H,08H,20H,10H,20H, 20H,20H
机db 10H,00H,10H,10H,11H, 0F8H,11H,10H, 0FDH,10H, 11H,10H,
31H, 10H, 39H, 10H, 55H, 10H, 51H, 10H, 91H, 10H, 11H, 10H, 11H, 12H,
12H,12H,14H,0EH, 18H,00H
技 db 10H,40H,10H,40H,10H, 48H,13H, 0FCH, 0FCH,40H, 10H,40H,
10H,40H,13H, 0F8H,1AH,08H,31H,10H, 0D1H,10H,10H, 0A0H,10H,
40H,10H, 0B0H,51H,0EH, 26H,04H
术 db 01H,00H,01H,40H,01H, 30H,01H,10H,01H,04H, 0FFH, 0FEH,
01H,00H,03H,80H,05H,40H,09H,20H, 11H,10H,21H,0EH, 0C1H,
04H,01H,00H,01H,00H, 01H,00H
课 db 00H, 08H, 43H, 0FCH, 22H, 48H, 22H, 48H, 03H, 0F8H, 02H, 48H, 0E2H,
48H,23H, 0F8H,20H,40H,2FH, 0FEH, 20H, 0E0H,29H,50H,32H, 48H,
24H,4EH,08H,44H, 00H,40H
程 db08H,04H,1DH, 0FEH, 0F1H, 04H,11H,04H,11H,04H, 0FFH,04H,
11H, 0FCH, 38H, 00H, 37H, 0FEH, 54H, 20H,50H, 28H, 91H, 0FCH, 10H, 20H,
10H,24H,17H, 0FEH, 10H,00H
设db 01H, 0F0H,21H,10H,11H,10H,11H,10H,01H,10H, 02H,0EH,
0F4H,00H,13H, 0F8H,11H,08H,11H,10H, 10H,90H,10H, 0A0H,14H,
40H,18H, 0B0H,13H,0EH, 0CH, 04H
计 Db 00H, 40H, 20H, 40H, 10H, 40H, 10H, 40H, 00H, 40H, 00H, 44H, 0F7H,
0FEH,10H, 40H,10H,40H,10H,40H, 10H,40H,12H,40H,14H, 40H,
18H,40H,10H,40H, 00H,40H
Dou0 db 00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H, 00H,00H,
00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 18H, 00H, 18H, 00H, 10H, 00H,
20H,00H,00H,00H, 00H,00H
点db 02H,00H,02H,00H,02H, 08H,03H, 0FCH,02H,00H, 02H,10H,
3FH, 0F8H, 20H, 10H, 20H, 10H, 20H, 10H, 3FH, 0F0H, 00H, 00H, 29H, 10H,
24H, 0C8H, 44H,44H, 80H,04H
阵 db 00H,80H,78H,84H,4FH, 0FEH,50H,80H,50H, 0A0H, 61H, 20H,
51H,28H,4BH, 0FCH,48H,20H,48H,20H, 68H,24H,57H, 0FEH,40H,
16
20H,40H,20H,40H,20H, 40H,20H
显 db 00H,10H,1FH, 0F8H,10H,10H,10H,10H,1FH, 0F0H, 10H,10H,
10H,10H,1FH, 0F0H,14H,50H,44H,44H, 34H,4CH,14H,50H,04H,
40H,04H,44H, 0FFH, 0FEH, 00H,00H
示 db 00H, 10H, 3FH, 0F8H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 04H, 0FFH,
0FEH,01H, 00H,01H,00H,09H,20H, 19H,18H,21H,0CH,41H, 04H,
01H,00H,05H,00H, 02H,00H
系 db 00H,38H,7FH, 0C0H,04H, 00H,04H,10H,08H,20H, 3FH, 0C0H,
01H, 00H, 02H, 20H, 04H, 10H, 3FH, 0F8H, 01H, 08H, 09H, 20H, 09H, 10H,
11H,08H,25H,08H, 02H,00H
统 db 10H,80H,10H,40H,20H, 48H,27H, 0FCH,48H,80H, 0F9H,10H,
12H,08H,27H, 0FCH,41H,24H, 0F9H,20H, 41H,20H,01H,20H,1AH,
22H, 0E2H,22H,44H,1EH, 08H,00H
Dou2db 00H,00H,00H,00H,00H, 00H,00H,00H,00H,00H, 00H,00H,
00H,00H,00H, 00H,00H,00H,00H,00H,18H,00H,18H,00H,10H,
00H,20H,00H,00H,00H,00H,00H
Zhang Db09H,00H, 0FDH,08H,09H, 08H,09H,10H,09H,20H, 79H,
40H,41H, 04H, 47H, 0FEH, 41H, 40H, 79H, 40H, 09H, 20H, 09H, 20H, 09H,
10H,09H,4EH,51H,84H, 21H,00H
strmenuDB'dotmatrixdisplaysystem',0AH,0DH,'1.','L','leftshift
display',0AH,0DH,'2.','U','upshiftdisplay',0AH,0DH,'3.Sstop',0AH,0DH,'4.Esc
Exit',0AH,0DH,0AH,0DH,'$'
OUTSET DW 0000H;用于存放字符首地址,增加程序可移植性。
COUNT DB 35;用于指示汉字的个数-----------------------
---------------------------------------
--------------------
StopFlag DB 00H;暂停标志位:
用于辅助实现暂停功能。
(1)如果为 0 收到中断后,可以
MoveStep;
(2)否则不行。
Status DB 00H;辅助实现第一种中断。
;为了实现“利用中断来刷屏”,需要用到两个变量。
IndexOfLine DW 0006H; 行 标 , 用 来 指 示 当 前 刷 屏 从 第 几 行 开 始 。
用 于 辅 助 实 现
ShowUpward 范围是 0~count*16-1。
当超过的时候,应该使其等于 00
IndexOfWord DB 00H;汉字的指针(只能放 256 个汉字喽),辅助实现 ShowLeftward 的
MoveStep DB 00H;以每个汉字为中心,的位移量,用于 Left。
@:
出于我们点阵的数据格
式,其范围在 0~16 之间。
;用于恢复原中断向量
INT0A_OFF DW(?
)
17
INT0A_SEG DW(?
)
;Test:
用于辅助做测试的变量。
Times DB 00h
DATA ENDS
CODE SEGMENT 'CODE'
ASSUME DS:
DATA,CS:
CODE
;------------------------------------------------------------Start
START:
MOV DX,DATA
MOV DS,DX
LEA DX,wEI ;设置字符的开始位置----------------------
---------------------------------------
---------------------------
MOV OUTSET,DX
CALL InI8255
CALL Ini8253
MOV AX,3572H;获取原中断向量
INT 21H
MOV INT0A_OFF,BX;保存原中断向量
MOV BX,ES
MOV INT0A_SEG,BX
CLI;关中断
MOV AX,2572H
MOV DX,SEG MoveStepLeft;设置新的中断向量
PUSH DS
MOV DS,DX
MOV DX,OFFSET MoveStepLeft
INT 21H
POP DS
STI;开中断
IN AL,0A1H;打开 IRQ10
AND AL,0FBH
OUT 0A1H,AL
IN AL,21H;打开 IRQ2
18
AND AL,0FBH
OUT 21H,AL
LEA DX,strmenu
MOV AH,09H
INT 21H
;刷屏。
NOTEND:
MOV AH,0BH;检查是否有键按下
INT 21H
INC AL
JNZ NOTEND2; 若无键按下,则跳过判断
MOV AH,08H;如有’Q’或’q’键按下,则程序退出
INT 21H
CMP AL,'s';当键入为's'的时候,停止 LED 滚动
JZ JStop
CMP AL,'S';
JZ JStop
CMP AL,1BH;当键入为 Esc 的时候,退出程序
JZ JEXIT
CMP AL,'u';当键入 U 的时候,调用 Up:
(1)改变 Status 变量=2;
(2)改变
StopFlag;(3)改变中断表向量为“MoveLeftStep",从而实现中断移位
JZ JUp
CMP AL,'U';
JZ JUp
CMP AL,'l';当键入 L 的时候,调用 Left:
(1)改变 Status 变量=2;
(2)改变
StopFlag;(3)改变中断向量表为“MoveLeftStep",从而实现中断移位
JZ JLeft
CMP AL,'L';
JZ JLeft
CMP AL,'Q'
JZJEXIT
CMP AL,'q'
JZJEXIT
NOTEND2:
CMP Status,01H
JZ JLeftShow;以向左的方式,刷屏
CMP Status,02H
JZ JUpShow;以向上的方式刷屏
;CALL DELAY
CALL DELAY
JMP NOTEND
19
JStop:
CALL Stop
JMP NOTEND
JLeft:
CALL Left
JMP NOTEND
JUp:
CALL UP
JMP NOTEND
JEXIT:
CALL EXIT
JLeftShow:
CALL ShowLeftward
;CALL DELAY;?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
也许对于 cpu 位的位移,这个 delay 最好是
放在 MoveStepLeft 函数的内部
;CALL MoveStepLeft;---如果中断没起作用,那就用 CUP 来位移。
MOV AH,2
MOV DL,'L'
INT 21H
JMP NOTEND
JUpShow:
CALL ShowUpward
;CALL DELAY
;CALL MoveStepUp;---如果中断没起作用,那就用 CUP 来位移。
MOV AH,2
MOV DL,'U'
INT 21H
JMP NOTEND
;----------------------------------------------------------------------------根据键盘输入,改变中断向量表,
从而选择是向上,还是向下移动。
-----------------
20
Left:
;
(1)把中断处理程序“向左左位”的中断程序放入中断向量表中。
;
(2)同时将 status 置为 1,表示的是以向左的方式刷屏
;(3)置暂停位为 00h;
;(4)开始循环。
PUSH AX
PUSH DX
MOV AH,2
MOV DL,'L'
INT 21H
CLI;关中断
MOV AX,2572H
MOV DX,SEG MoveStepLeft;设置新的中断向量
PUSH DS
MOV DS,DX
MOV DX,OFFSET MoveStepLeft
INT 21H
POP DS
STI;开中断
IN AL,0A1H;打开 IRQ10
AND AL,0FBH;11111011
OUT 0A1H,AL
IN AL,21H;打开 IRQ2
AND AL,0FBH
OUT 21H,AL
MOV Status,1;
(2)
MOV StopFlag,00H;(3)置暂停位
POP DX
POP AX
RET
Up:
;
(1)把中断处理程序“向上位移”的中断程序放入中断向量表中。
;
(2)同时将 status 置为2,表示的是以向左的方式刷屏
;(3)置暂停位为 00h;
;(4)开始循环。
PUSH AX
PUSH DX
MOV AH,2
21
MOV DL,'U'
INT 21H
CLI;关中断
MOV AX,2572H
MOV DX,SEG MoveStepUp ;设置新的中断向量
PUSH DS
MOV DS,DX
MOV DX,OFFSET MoveStepUp
INT 21H
POP DS
STI;开中断
IN AL,0A1H;打开 IRQ10
AND AL,0FBH;11111011
OUT 0A1H,AL
IN AL,21H;打开 IRQ2
AND AL,0FBH
OUT 21H,AL
;开中断
MOV Status,2;
(2)
MOV StopFlag,00H;置暂停位
POP DX
POP AX
RET
Stop:
PUSH AX
PUSH DX
MOV AH,2
MOV DL,'S'
INT 21H
MOV S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 报告