微机原理实验报告.docx
- 文档编号:11791604
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:19
- 大小:235.65KB
微机原理实验报告.docx
《微机原理实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
微机原理实验报告
微机系统实验报告
实验一汇编语言编程实验
一.实验目的
(1)掌握汇编语言的编程方法
(2)掌握DOS功能调用的使用方法
(3)掌握汇编语言程序的调试运行过程
二.实验设备
PC机一台。
三.实验内容
(1)将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。
(2)在屏幕上显示自己的学号姓名信息。
(3)循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。
(4)自主设计输入显示信息,完成编程与调试,演示实验结果。
实验中使用的DOS功能调用:
INT21H
表3-1-1显示实验中可使用DOS功能调用
AH值
功能
调用参数
结果
1
键盘输入并回显
AL=输出字符
2
显示单个字符(带Ctrl+Break检查)
DL=输出字符
光标在字符后面
6
显示单个字符(无Ctrl+Break检查)
DL=输出字符
光标在字符后面
8
从键盘上读一个字符
AL=字符的ASCII码
9
显示字符串
DS:
DX=串地址,‘$’为结束字符
光标跟在串后面
4CH
返回DOS系统
AL=返回码
四.实验步骤
(1)运行QTHPCI软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。
(2)使用“项目”菜单中的“编译”或“编译连接”命令对实验程序进行编译、连接。
(3)“调试”菜单中的“进行调试”命令进入Debug调试,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。
按F9连续运行。
(4)更改数据区的数据,考察程序的正确性。
实验二数码转换实验
3.2.1实验目的
(1)掌握不同进制数及编码相互转换的程序设计方法。
(2)掌握运算类指令编程及调试方法。
(3)掌握循环程序的设计方法。
3.2.2实验设备
PC机一台。
3.2.3实验内容及说明
(1)重复从键盘输入不超过五位的二进制数,按回车键结束输入;
(2)将该十进制数转换成二进制数;结果以2进制数的形式显示在屏幕上;
(3)如果输入非数字字符,则报告出错信息,重新输入;
(4)直到输入“Q”或‘q’时程序运行结束。
(5)键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。
转换过程参考流程如图3-2-2所示。
十进制数可以表示为:
Dn*10n+Dn-1*10n-1+…+D0*100=Di*10i
其中Di代表十进制数1、2、3、…、9、0。
上式可以转换为:
Di*10i=(((Dn*10n+Dn-1)*10+Dn-2)*10+…+D1)*10+D0
由上式可归纳出十进制数转换为二进制数的方法:
从二进制数的最高位Dn开始做乘10加次位的操作。
依此类推,则可求出二进制数结果。
表3-3-1数码转换对应关系
十六进制
BCD码
二进制机器码
ASCII码
七段码
共阳
共阴
0
0000
0000
30H
40H
3FH
1
0001
0001
31H
79H
06H
2
0010
0010
32H
24H
5BH
3
0011
0011
33H
30H
4FH
4
0100
0100
34H
19H
66H
5
0101
0101
35H
12H
6DH
6
0110
0110
36H
02H
7DH
7
0111
0111
37H
78H
07H
8
1000
1000
38H
00H
7FH
9
1001
1001
39H
18H
67H
A
101
41H
08H
77H
B
1011
42H
03H
7CH
C
1100
43H
46H
39H
D
1101
44H
21H
5EH
E
1110
45H
06H
79H
F
1111
46H
0EH
71H
五:
实验结果
实验三可编程定时器/计数器8254(8253)实验
一.实验目的
(1)掌握8254定时/计数器的编程方法。
(2)学习8254的几种工作方式。
(3)了解计数器的硬件连接及时序关系。
二.实验内容
(1)将32Hz的晶振频率作为8254的时钟输入,利用定时器8254产生1Hz的方波,用发光二极管显示输出结果(发光二极管闪烁)。
(2)开关控制结束程序执行,发光二极管熄灭。
(3)开关控制发光二极管闪烁的速度(输出不同频率的方波)。
考核方式:
完成实验内容
(1)
(2)通过,完成实验内容(3)优秀。
三.实验原理
1.8254工作原理
8254是一种可编程的定时器/计数器芯片,它具有3个独立的16位计数器通道,每个计数器都可以按照二进制或二-十进制计数,每个计数器都有6种工作方式,计数频率可高达24MHz,芯片所有的输入输出都与TTL兼容。
计数器都有6种工作方式:
方式0—计数过程结束时中断;方式1—可编程的单拍脉冲;方式2—频率发生器;方式3—方波发生器;方式4—软件触发;方式5—硬件触发。
6种工作方式主要有5点不同:
一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号GATE对计数操作的影响不同;三是OUT输出的波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程的不同。
8254管脚图:
2.8254工作方式和编程
根据片选信号CS及地址线A1、A0,8254具有四个端口地址。
当A1A0=00时,选中的为0通道计数器;A1A0=01时,选中的为1通道计数器;A1A0为10时,选中的为2通道计数器;A1A0=11时,选中控制字寄存器。
8253通道及操作地址分配如下表所示:
CS
RD
WR
A1
A0
操作
0
0
1
0
0
读计数器0
0
0
1
0
1
读计数器1
0
0
1
1
0
读计数器2
0
0
1
1
1
无操作(禁止读)
0
1
0
0
0
计数常数写入计数器0
0
1
0
0
1
计数常数写入计数器1
0
1
0
1
0
计数常数写入计数器2
0
1
0
1
1
写入方式控制字
1
X
X
X
X
禁止(三态)
0
1
1
X
X
不操作
通过对控制字符寄存器写入控制字可设定8254的某一个通道的六种工作方式,其格式如下:
D7
D6
D5
D4
D3
D2
D1
D0
SC1
SC0
RL1
RL0
M2
M1
M0
BCD
SC1、SC0用来选择计数器通道:
SC1
SC0
选择通道
0
0
选中0通道计数器
0
1
选中1通道计数器
1
0
选中2通道计数器
1
1
非法
RL1、RL0用来选择读计数值及向计数器送入数据的方式:
RL1
RL0
读/输入选择
0
0
计数器锁存
0
1
只读/输入低字节
1
0
只读/输入高字节
1
1
先读/输入低字节,后读/输入高字节
M2、M1、M0用来选择工作方式:
M2
M1
M0
工作方式
0
0
0
方式0
0
0
1
方式1
X
1
0
方式2
X
1
1
方式3
1
0
0
方式4
1
0
1
方式5
BCD用来选择二进制计数及十进制计数。
当此位为0时,为16位二进制计数器;当此位为1时,为4位二-十进制计数器。
方式0为计数结束申请中断的方式。
当方式控制字写入后,输出为低电平。
在写入计数值后,计数器开始计数。
计数器减到0后,输出变为高电平,此高电平信号一直维持到写入新的控制字,或写入新的计数值为止。
此时可利用计数到0时,输出由低电平变为高电平的信号申请中断。
如果在计数过程中写入新的计数值,则在写入第一个字节时中止计数,写入第二个字节时启动新的计数。
方式1为单脉冲发生方式。
输出的负脉冲宽度由计数值决定。
在设定工作方式和写入计数值之后,输出为高电平。
门控信号的上升沿使输出变为低电平,并开始计数。
当计数结束时,输出为高电平,当门控信号为高电平时,计数器从最初计数值启动。
由于计数器写入控制字后输出为高电平,当写入计数值后才开始并输出脉冲,因此也可通过写入计数值来实现软件同步。
方式3为方波发生方式。
类似于方式2,当计数值为偶数时,前N/2为高电平,后N/2为低电平。
当计数值为奇数时,则(N+1)/2为高电平,(N-1)/2为低电平。
方式4为软件触发脉冲方式。
在写入控制字后,输出为高电平,写入计数值后开始计数。
计数结束产生一个负脉冲,宽度为一个时钟周期。
计数期间若写入新的计数值,不影响当前周期,但影响下一个计数周期。
在计数期间如门控信号变为低电平,计数停止。
方式5为硬件触发选通方式。
写入控制字和计数值后,输出保持高电平,在门控信号的上升沿开始计数,计数结束产生一个时钟周期的负脉冲。
在计数过程中可重新启动,在门控信号的上升沿重新计数。
3.8254编程方法
对8254的编程分两部分:
(1)向控制字寄存器写入方式控制字。
(2)向规定的通道写入计数值。
在写入计数值时,应向设定的通道写入。
而且必须按控制字所规定的一个或两个字节的计数长度写入。
由于在8254内部每个计数器均有自己的方式控制字寄存器,因此在写入控制字及计数值时不一定按0通道、1通道、2通道的次序,而可按编程时的方便来决定。
在将8254作为计数器时,可以在计数过程中将计数值读出来。
读数时可按控制字规定的方式向该通道/读出一个字节或两个字节的计数值。
为保证读数的正确性,可通过门控信号使其停止计数,或控制外部脉冲源禁止输入。
控制的另一个办法是向控制字寄存器写入一锁存计数值的命令,使当前的计数值锁存下来。
然后用读通计数值的方法将其读出。
锁存计数操作的格式如下:
SC1
SC0
0
0
x
x
x
x
SC1、SC0用来指定被锁存的计数器,分别为00、01、10。
四.实验步骤
(1)按照实验内容设计实验连线图,正确连接线路。
(2)编写实验程序,调试运行程序。
(3)观察发光二极管闪烁情况,修改程序使8254输出不同频率的方波信号。
五.实验结果
Led二极管每秒闪烁一次,把输入频率调大,也跟着变大
实验四可编程并行接口8255实验
一.实验目的
了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。
二.实验内容
(1)流水灯实验:
利用8255的A口、B口循环点亮发光二极管。
(2)交通灯实验:
利用8255的A口模拟交通信号灯。
(3)I/O输入输出实验:
利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示。
(4)通过开关控制交通红绿灯的亮灭。
(5)通过开关控制流水灯的循环方向和循环方式。
考核方式:
完成实验内容
(1)
(2)(3)其中之一通过,完成实验内容(4)或(5)优秀。
三.实验说明
1、8255A的内部结构
(1)数据总线缓冲器:
这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。
输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
(2)三个端口A,B和C:
A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
(3)A组和B组控制电路:
这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。
方式控制字的高5位决定A组工作方式,低3位决定B组的工作方式。
对C口按位复位命令字可对C口的每一位实现置位或复位。
A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
(4)读写控制逻辑:
用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
2、8255A的工作方式
方式0—基本输入输出方式;方式1—选通输入输出方式;方式2—双向选通输入输出方式。
3、8255A的状态字
4、8255A的控制字
表6-3-38255A方式控制字
1
D6
D5
D4
D3
D2
D1
D0
特
征
位
A组方式
00=方式001=方式1
1X=方式2
A口
0=输出
1=输入
C口高4位
0=输出
1=输入
B组方式
0=方式0
1=方式1
B口
0=输出
1=输入
C口低4位
0=输出
1=输入
表6-3-4按位置位/复位控制字
0
D6
D5
D4
D3
D2
D1
D0
特征位
不用
位选择
000=C口0位……111=C口7位
0=复位
1=置位
3.4.4实验原理图
图6-3-5可编程并行接口8255电路
五.实验步骤
1、流水灯实验
(1)实验连线
Ø该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。
Ø该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据(LD0~LD7)、地址线(LA0~LA7)。
Ø8255模块选通线CE连到ISA总线接口模块的0000H。
Ø8255的PA0~PA7连到发光二极管的L0~L7;8255的PB0~PB7连到发光二极管的L8~L15。
(2)运行程序,观察发光二极管。
2、交通灯实验
(1)实验连线:
Ø该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。
Ø该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据(LD0~LD7)、地址线(LA0~LA7)。
Ø8255模块选通线CE连到ISA总线接口模块的0000H。
Ø8255的PA0-L7、PA1-L6、PA2-L5、PA3-L3、PA4-L2、PA5-L1。
(2)运行程序,观察发光二极管
3、I/O输入输出实验
(1)实验连线
Ø该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。
Ø该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据(LD0~LD7)、地址线(LA0~LA7)。
Ø8255模块选通线CE连到ISA总线接口模块的0000H。
Ø8255的PA0~PA7接开关K0~K7,8255的PB0~PB7接发光二极管L0~L7。
(2)
运行程序,拨动开关,观察发光二极管。
六.实验结果
Led二极管灯成流水一样闪烁。
交通灯每隔一段时间亮一次。
实验五键盘显示实验
一.实验目的
(1)熟悉并掌握系统中扩展键盘显示接口的方法。
(2)掌握键盘显示的工作原理和编程的方法。
二.实验说明
键盘的接口一般分为独立式和矩阵式。
独立式按键就是各按键相互独立、每个按键各接一根输入线,一根输入线上的按键是否按下不会影响其他输入线上的工作状态。
因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。
独立式按键电路配置灵活,软件结构简单。
但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂。
故此种键盘适用于按键较少或操作速度较高的场合。
若采用此方式,各按键开关均采用上拉电阻,这是为了保证在按键断开时,各IO口线有确定的高电平。
当然如输入口线内部已有上拉电阻,则外电路的上拉电阻可省去。
矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上,一个4*4的行、列结构可以构成一个含有16个按键的键盘。
很明显,在按键数量较多的场合,矩阵键盘与独立式按键键盘相比,要节省很多的I/O口。
行、列线分别接到按键的两端。
行线通过上拉电阻接到+5V上。
平时无按键时,行、列线处于高电平状态,而当有键按下时,行、列线将导通,因此行线电平状态将由与此行线相连的列线电平决定。
按键的识别一般采用扫描法。
让所有的列线处于低电平,当有键按下时,按键所在的行电平将被拉成低电平,根据此行电平的变化,便能判定此行有键被按下。
为了进一步判定到底哪一列的键被按下,可在某一时刻只让一条列线处于低电平,而其余所有列线处于高电平。
八段数码管的显示有静态和动态两种。
静态显示方法:
当显示器显示某一字符时,相应的发光二极管恒定地导通或截止。
这种显示方式的各位相互独立,公共端恒定接地(共阴极)或接+5V(共阳极)。
每位的8段(a~dp)分别与一个8位I/O口地址相连,I/O只要有段码输出相应的字符即显示出来,并保持不变,直到I/O输出新的数码。
采用静态显示方式,较小的电流就能得到较高的亮度,但占用的口线较多,适合于显示器位数较少的场合,当显示位数较多时一般采用动态显示。
动态显示方法:
就是一位一位轮流点亮各位显示器(位扫描)。
通常各位显示器的段选码相应并联在一起,由一个8位的I/O口控制。
而各位的位选线(共阴或共阳极)分别由相应的I/O口线的不同位控制,分时选通。
采用动态扫描即在同一时刻只选通一个显示器,并送出相应的段码,而在下一时刻再选通另一个显示器,并送出相应的段码,如此循环下去,就可以使各位显示出将要显示的字符,虽然这些字符在不同时刻分别显示的,但由于人眼有视觉暂留现象,只要每位显示间隔足够短,就可以给人同时显示的感觉。
三.实验内容
(1)由键盘输入相应的数据在LED显示。
在初始状态,没键按下时,最高位闪烁显示P,按一个键在LED上显示该键值(4个数码管同时显示一个值)。
(2)修改程序,用一位数码管显示对应按下的键值,即‘0’—‘F’。
四.实验原理图
图6-9-1键盘与显示电路
五.实验步骤
(1)实验连线:
Ø8255模块的WR、RD分别连到ISA总线接口的IOWR、IORD。
Ø8255模块的数据(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口的数据(LD0~LD7)、地址线(LA0~LA7)。
Ø8255模块选通线CE连到ISA总线接口模块的0000H。
Ø8255的PA0~PA7连到键盘显示模块的KD0~KD7;8255的PB0~PB3连到键盘显示模块的KL1~KL4;PC0~PC3连到键盘显示模块的KH1~KH4。
(2)运行程序。
KEYDISP.ASM,按动键盘,观察数码管的变化。
(3)修改程序,完成实验内容
(2)
六.实验结果
按下按键显示出相应的结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 报告