资源描述
第一部分 软件实验
实验一 存储器块清零
一、实验目的
1、掌握存储器读写方法
2、了解存储器的块操作方法
二、实验说明
本实验指定某块存储器的起始地址和长度,要求能将其内容清零。通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。
三、实验内容及步骤
1、启动计算机,打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着进行仿真器的设置,设置为软件仿真状态(设置方法见附录二说明)。
2、添加“TH01.ASM”源程序,进行编译,直到编译无误。编译无误后,打开Memory window数据窗口,在“Address:”后面输入“X:0x008000”后按回车键,使地址8000H出现在窗口上,观察8000H起始的256个字节单元的内容,若全为0,则点击各单元,用键盘输入不为0的值。执行程序,点击运行按钮,再点击停止按钮,观察存储块数据变化情况,256个字节全部清零。点击复位按钮,可再次运行程序。
3、单步运行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序
1.源程序
ORG 0000H
BLOCK EQU 8000H ;起始地址
MOV DPTR, #BLOCK
MOV R0, #0 ;设置256字节计数值
CLR A
LOOP:
MOVX @DPTR,A
INC DPTR ;指向下一个地址
DJNZ R0,LOOP ;计数值减一
LJMP $
END
2.流程图
是
设置块长度
地址加1
当前地址内容清零
是否清除完?
否
结束
设置块起始地址
五、思考题
如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请用户修改程序,完成此操作。
实验二 二进制BCD码转换
一、实验目的
1、掌握简单的数值转换算法
2、基本了解数值的各种表达方法
二、实验说明
单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基本功。我们将给定的一字节二进制数,转换成二十进制(BCD)码。将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#123。
三、实验内容及步骤
1、启动计算机,打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着进行仿真器的设置,设置为软件仿真状态。
2、添加“TH02.ASM”源程序,进行编译,直到编译无误。编译无误后,打开Memory window数据窗口,在“Address:”后面输入“D:0x30”后按回车键,使地址30H出现在窗口上,执行程序,点击运行按钮,再点击停止按钮,观察地址30H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。用键盘输入改变地址30H、31H、32H的值,点击复位按钮后,可再次运行程序,观察其实验效果。修改源程序中给累加器A的赋值,重复实验,观察实验效果。
3、单步运行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序
1.源程序
RESULT EQU 30H
ORG 0000H
LJMP START
START:
MOV SP,#40H
MOV A,#123
CALL BINTOBCD
LJMP $
BINTOBCD:
MOV B,#100
DIV AB
MOV RESULT,A ;除以100得百位数
MOV A,B
MOV B,#10
DIV AB
MOV RESULT+1,A ;余数除以10得十位数
MOV RESULT+2,B ;余数为个位数
RET
END
2.流程图
给出要转换的二进制数
将数除以100,得百位数
保存百位数
将余数再除以10,得十位数
保存十位数
余数为个位数,将其保存
结束
实验三 二进制ASCII码转换
一、实验目的
1、了解BCD值和ASCII值的区别
2、掌握用查表的方法将BCD值转换成ASCII值
二、实验说明
此实验主要让学生了解数值的BCD码和ASCII码的区别,利用查表方法可以快速地进行数值转换。进一步掌握数值的各种表达方式。现在我们给出一个BCD数,将其转换成ASCII值。如下:将累加器A的值拆为二个ASCII码,并存入Result开始的二个单元,例程A赋值#1AH。
三、实验内容及步骤
1、启动计算机,打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着进行仿真器的设置,设置为软件仿真状态。
2、添加“TH03.ASM”源程序,进行编译,直到编译无误。编译无误后,打开Memory window数据窗口,在“Address:”后面输入“D:0x30”后按回车键,使地址30H出现在窗口上,执行程序,点击运行按钮,再点击停止按钮,观察地址30H、31H的数据变化,30H更新为31,31H更新为41。用键盘输入改变地址30H、31H的值,点击停止复位按钮后,可再次运行程序,观察其实验效果。修改源程序中给累加器A的赋值,重复实验,观察实验效果。
3、单步运行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序
1.源程序
RESULT EQU 30H
ORG 0000H
LJMP START
START:
MOV SP,#40H
MOV A,#1AH
CALL BINTOHEX
LJMP $
BINTOHEX:
MOV DPTR,#ASCIITAB
MOV B,A ;暂存A
SWAP A
ANL A,#0FH ;取高四位
MOVC A,@A+DPTR ;查ASCII表
MOV RESULT,A
MOV A,B ;恢复A
ANL A,#0FH ;取低四位
MOVC A,@A+DPTR ;查ASCII表
MOV RESULT+1,A
RET
ASCIITAB:
DB '0123456789ABCDEF' ;定义数字对应的ASCII表
END
2.流程图
取出BCD码高四位
查表得到ASCII码
保存高位ASCII码
取出BCD码低四位
查表得到ASCII码
保存低位ASCII码
给出要转换数BCD码
结束
实验四 程序跳转表
一、实验目的
1、了解程序的多分支结构
2、掌握多分支结构程序的编程方法
二、实验说明
多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。
三、实验内容及步骤
1、启动计算机,打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着进行仿真器的设置,设置为软件仿真状态。
2、添加“TH04.ASM”源程序,进行编译,直到编译无误。编译无误后,打开Memory window数据窗口,在“Address:”后面输入“D:0x30”后按回车键,使地址30H出现在窗口上,执行程序,点击运行按钮,再点击停止按钮,观察地址30H、31H、32H、33H的数据变化,30H更新为0,31H更新为1,32H更新为2,33H更新为3。用键盘输入改变地址30H、31H、32H、33H的值,点击复位按钮后,可再次运行程序,观察其实验效果。修改源程序中给30H~33H的赋值,重复实验,观察实验效果。
3、单步运行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序
根据调用号查表
得到跳转地址
跳转到相应程序段
调用返回
设置调用号
1、流程图
2.源程序
ORG 0000H
LJMP START
START:
MOV A, #0
CALL FUNCENTER
MOV A, #1
CALL FUNCENTER
MOV A, #2
CALL FUNCENTER
MOV A, #3
CALL FUNCENTER
SJMP $
FUNCENTER:
ADD A, ACC ; AJMP 为二字节指令, 调用号 X 2
MOV DPTR, #FUNCTAB
JMP @A+DPTR
FUNCTAB:
AJMP FUNC0
AJMP FUNC1
AJMP FUNC2
AJMP FUNC3
FUNC0: MOV 30H, #0
RET
FUNC1: MOV 31H, #1
RET
FUNC2: MOV 32H, #2
RET
FUNC3: MOV 33H, #3
RET
END
实验五 内存块移动
一、实验目的
1、了解内存块的移动方法
2、加深对存储器读写的认识
二、实验说明
块移动是单片机常用操作之一,多用于大量的数据复制和图像操作。本程序是给出起始地址,用地址加一方法移动块,将指定源地址和长度的存储块移到指定目标地址为起始地址的单元中去。移动3000H-->4000H,256字节。
三、实验内容及步骤
1、启动计算机,打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着进行仿真器的设置,设置为软件仿真状态。
2、添加“TH05.ASM”源程序,进行编译,直到编译无误。编译无误后,打开Memory window数据窗口,在“Address:”后面输入“X:0x003000”后按回车键,使地址3000H出现在窗口上,观察地址3000H起始256个字节存储块和4000H起始的256个字节存储块,若各单元内数据对应相同,则用键盘输入改变其中一块的数据,执行程序,点击运行按钮,再点击停止按钮,观察两个存储块的数据,可以看到两块数据已相同,说明存储块已移动。
3、单步运行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序
1.源程序
ORG 0000H
MOV R0, #30H
MOV R1, #00H
MOV R2, #40H
MOV R3, #00H
MOV R7, #0
LOOP: MOV DPH, R0
MOV DPL, R1
MOVX A, @DPTR
MOV DPH, R2
MOV DPL, R3
MOVX @DPTR, A
CJNE R1, #0FFH, GOON1
INC R0
GOON1: INC R1
CJNE R3, #0FFH, GOON2
INC R2
GOON2: INC R3
DJNZ R7, LOOP
SJMP $
END
2.流程图
是
设置块的目标地址
设置移动长度
从源地址取数
是否移动完?
保存到目标地址中
源地址加1
目标地址加1
结束
设置块的源地址
否
五、思考题
1.若源块地址和目标块地址有重叠,该如何避免?
2.请思考给出块结束地址,用地址减一方法移动块的算法。
实验六 数据排序
一、实验目的
1、了解数据排序的简单算法
2、掌握数列的有序和无序概念
3、学会将单片机与数学相联系
二、实验说明
有序的数列更有利于查找。本程序用的是“冒泡排序”法,给出一组随机数存储在所指定的单元里,将此组数据排列,使之成为有序数列。其算法是将一个数与后面的每个数相比较,如果比后面的数大,则交换,如此操作下去将所有的数都比较一遍后,最大的数就会在数列的最后面。然后取第二个数,再进行下一轮比较,再找出第二大数据,循环下去,直到全部数据有序。
三、实验步骤及内容
1、启动计算机,打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着进行仿真器的设置,设置为软件仿真状态。
2、添加“TH06.ASM”源程序,进行编译,直到编译无误。编译无误后,打开Memory window数据窗口,在“Address:”后面输入“D:0x50”,使地址50H出现在窗口上,用键盘输入不同的数据到地址50H~59H。执行程序,点击运行按钮,再点击停止按钮,观察DATA窗口地址50H~59H的数据已从小到大排序完成。输入不同数据,按复位后,可再次运行程序,观察实验效果。
3、单步运行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序
1.源程序
ORG 000H
SIZE EQU 10 ;数据个数
ARRAY EQU 50H ;数据起始地址
FLAG BIT 0 ;交换标志
SORT:
MOV R0, #ARRAY ;首地址输入到R0
MOV R7,#SIZE-1 ;数据个数减一输入到R7
CLR FLAG ;交换标志置零
GOON:
MOV A,@R0 ;将首地址中的内容读到A
MOV R2,A ;将数据写入到R2中
INC R0 ;首地址加1
MOV B,@R0 ;将首地址中的内容读到B
CJNE A,B,NOTEQUAL ;不相等则跳转
SJMP NEXT
NOTEQUAL:
JC NEXT ;前小后大, 不交换
SETB FLAG ;前大后小, 置交换标志
XCH A,@R0 ;交换
DEC R0 ;R0减1
XCH A,@R0
INC R0
NEXT:
DJNZ R7,GOON ;R7不等于0时转到GOON(即没有交换完)
JB FLAG,SORT ;FLAG=1时转到SORT使FLAG清零
SJMP $
END
2.流程图
是
设置数据区地址
设置数据区长度
清除交换标志
当前地址取数A
地址加1
当前地址取数B
结束
A<=B?
设置交换标志
交换A,B数位置
数据比较完
全部有序?
是
是
否
否
否
第二部分 硬件基础实验
实验七 P1口输入、输出实验
一、实验目的
1、学习P1口的使用方法
2、学习延时子程序的编写和使用
二、实验说明
P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据可能是不正确的。
三、实验内容及步骤
实验(一):
用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
1、使用单片机最小应用系统模块。关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH07_P1_A.ASM”源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。
实验(二):
用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。程序读取开关状态,并在发光二极管上显示出来。
1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。
2、添加“TH07_P1_B.ASM”源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。向上拨为熄灭,向下拨为点亮。
四、流程图及源程序
1.流程图
(B)P1口输入输出程序框图
(A)P1口循环点灯程序框图
开始
设置初始值
设移位次数
数据输出
左一位
延时
移位次数完成?
是
否
开始
P1.0,P1.1置一
读入P1.0口值
将读入的值输出到P1.2
读入P1.1口值
将读入的值输出到P1.3
2.源程序:
(一)实验一
ORG 0000H
LJMP START
ORG 0030H
START: MOV A, #0FEH
MOV R5, #8
OUTPUT:MOV P1, A
RL A
CALL DELAY
DJNZ R5, OUTPUT
LJMP START
DELAY: MOV R6, #0
MOV R7, #0
DELAYLOOP: ;延时子程序
DJNZ R7, DELAYLOOP
DJNZ R6, DELAYLOOP
RET
END
(二)实验二
KEYLEFT BIT P1.0 ;定义
KEYRIGHT BIT P1.1
LEDLEFT BIT P1.2
LEDRIGHT BIT P1.3
ORG 0000H
LJMP START
ORG 0030H
START:SETB KEYLEFT ;欲读先置一
SETB KEYRIGHT
LOOP: MOV C,KEYLEFT
MOV LEDLEFT,C
MOV C,KEYRIGHT
MOV LEDRIGHT,C
LJMP LOOP
END
五、思考题
(1)对于本实验延时子程序
DELAY: MOV R6,0
MOV R7, 0
DELAYLOOP:DJNZ R6,DELAYLOOP
DJNZ R7,DELAYLOOP
RET
如使用12MHz晶振,粗略计算此程序的执行时间为多少?
六、电路图
实验八 音频控制实验
一、实验目的
1.学习输入/输出端口控制方法
2.了解音频发声原理
二、实验说明
本实验是利用80C51端口输出脉冲方波,方波经放大滤波后,驱动扬声器发声,声音的频率高低由延时长短控制。本实验只给出发出单频率的声音的程序,请用户思考,修改程序,可以让扬声器发出不同频率,不同长短的声音。
三、实验内容及步骤
P1.0输出音频信号接音频驱动电路,使扬声器周期性的发声。
1、使用单片机最小应用系统模块,用导线将P1.0接到音频驱动电路输入端。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 “TH08_音频控制.ASM”源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,扬声器周期性的发出单频声音。
四、流程图及源程序
1.流程图
2.源程序
OUTPUT BIT P1.0 ;P1.0 端口
ORG 0000H
LJMP LOOP
ORG 0030H
Loop: CLR C
MOV OUTPUT,C
CALL Delay
SETB C
MOV OUTPUT,C
CALL Delay
SJMP Loop
Delay: ;延时子程序
MOV R6,#05H
A1: MOV R7,#0FFH
DLOOP: DJNZ R7,DLOOP
DJNZ R6,A1
RET
END
五、电路图
实验九 8255输入、输出实验
一、实验目的
1、了解8255芯片结构及接口方式
2、掌握8255输入、输出的编程方法
二、实验说明
了解用到的芯片引脚及功能:
8255是可编程的并行输入/输出接口芯片,通用性强且使用灵活。8255按功能可分为三个部分,即:总线接口电路,口电路和控制逻辑电路。
1、口电路:8255共有三个八位口,其中A口和B口是单纯的数据口,供数据I/O口使用。
2、总线接口电路:它用于实现8255和单片机芯片的信号连接。
(1)CS——片选信号。
(2)RD——读信号。
(3)WR——写信号。
(4)A0、A1——端口选择信号。8255共有四个可寻址的端口,用二位编码可以实现。
3、控制逻辑电路:它是控制寄存器,用于存放各口的工作方式控制字。
本实验是利用8255可编程并行口芯片,实现数据的输入、输出。可编程通用接口芯片8255有三个八位的并行的I/O口,它有三种工作方式。本实验采用的方式为0:PA口输出,PB口输入。工作方式0是一种基本的输入输出方式。在这种方式下,三个端口都可以由程序设置为输入或输出,其基本功能可概括如下:
1、可具有两个八位端口(A、B)和两个4位端口(C口的上半部分和下半部)。
2、数据输出时可锁存,输入时没有锁存功能。
本实验中,8255的端口地址由单片机的P2.0、P2.1和P2.7控制。控制口的地址为7FFFH;A口的地址为7CFFH;B口的地址为7DFFH;C口的地址为7EFFH。
三、内容及步骤
本实验分两种情况来进行:(一) PA口作为输出口。 (二) PA口作为输出口,PB口作为输入口。
(一)PA口作为输出口,接8位发光二极管,程序功能使发光二极管单只从右到左轮流循环点亮。
1、单片机最小应用系统的 P0口接8255的D0~D7口,8255的PA0~PA7接八位逻辑电平显示,单片机最小应用系统的P2.0、P2.1、P2.7、RD、WR分别接8255的A0、A1、CS、RD、WR,RESET接上单次脉冲电路的低电平。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 “TH09_8255_A.ASM”源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,发光二极管单只从右到左轮流循环点亮。
(二) PB口作为输入口,读入开关信号;PA口作为输出口,送八位逻辑电平显示模块显示。
1、单片机最小应用系统的 P0口接8255的D0~D7口,8255的PA0~PA7接八位逻辑电平显示,PB0~PB7口接八位逻辑电平输出模块,单片机最小应用系统的P2.0、P2.1、P2.7、RD、WR分别接8255的A0、A1、CS、RD、WR,RESET接上单次脉冲电路的低电平。
2、添加“TH09_8255_B.ASM”源程序,进行编译,直到编译无误。
3、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
4、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,拨八位逻辑电平输出的各个开关,观察发光二极管的亮灭情况,发光二极管与开关状态相对应,向下为点亮,向上为熄灭。
四、流程图及源程序
1.源程序
(一) PA口输出:
PORTA EQU 7CFFH ;A口
PORTB EQU 7DFFH ;B口
PORTC EQU 7EFFH ;C口
CADDR EQU 7FFFH ;控制字地址
ORG 0000H
LJMP START
ORG 0030H
START:MOV A,#80H ;方式0
MOV DPTR, #CADDR
MOVX @DPTR, A
LOOP: MOV A, #0FEH
MOV R2, #8
OUTPUT:MOV DPTR, #PORTA
MOVX @DPTR, A
CALL DELAY
RL A
DJNZ R2, OUTPUT
LJMP LOOP
DELAY: MOV R6, #0
MOV R7, #0
DELAYLOOP:
DJNZ R6, DELAYLOOP
DJNZ R7, DELAYLOOP
RET
END
(二)PA口输出,PB口输入
MODE EQU 082H ; 方式0,PA,PC输出,PB输入
PORTA EQU 7CFFH ; PORT A
PORTB EQU 7DFFH ; PORT B
PORTC EQU 7EFFH ; PORT C
CADDR EQU 7FFFH ; 控制字地址
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#MODE
MOV DPTR,#CADDR
MOVX @DPTR ,A
EX_B:
MOV DPTR,#PORTB
MOVX A,@DPTR ; 读入PORTB
MOV DPTR,#PORTA
MOVX @DPTR,A ; 输出到PORTA
LJMP EX_B
END
2.流程图
置8255工作方式
读8255PB口
写8255PA口
开 始
延 时
置8255工作方式
置8255PA口
数据左移
开 始
延 时
五、思考题
试用8255PA口作为输出口,PB作为输入口,PC作为输入口完成8255的输入、输出实验(其中PA口LED数码显示,PB接拨断开关,PC接查询式键盘实验模块)。
六、电路图
实验十 8155输入、输出实验
一、实验目的
1、了解8155芯片结构及接口方式
2、掌握8155输入、输出的编程方法
二、实验说明
1、本实验利用8155可编程并行口芯片,实现数据的输入、输出。实验中8155的PA口、PB口作为输出口。与8255比,8155具有更强的功能,因为它除能提供并行接口外还包括有256字节RAM存储器和14位定时器/计数器。8155具有三个可编程I/O口,其中PA、PB为八位口,PC口为6位口。PA口、PB口为通用的输入输出口,主要用于数据的I/O传送,他们都是数据口,因此只有输入输出两种工作方式。在实际应用中PA口可以用于输出LED的8条段控线(有小数点显示),PB口用于输出位控线,位控的数目等于显示器的位数。
2、了解实验用到的芯片引脚及功能:
8155是一种可编程多功能接口芯片,功能丰富,使用方便,特别适合于扩展少量RAM和定时器/计数器的场合。其部分引脚功能如下:
(1) AD0~AD7——地址/数据总线,双向三态。
1)8155有256字节静态RAM,每一字节均有相应地址,输入输出数据均通过AD0~AD7口传送。
2)8155内部有6个寄存器:A口,B口,C口,命令状态寄存器,定时/计数器低8位,定时/计数器高6位加2位输出信号形式,6个寄存器有各自相应的地址。地址及写入或读出的数据均通过AD0~AD7传送。
3)AD0~AD7传送数据的方向由RD,WR信号控制。
(2) CE——片选信号,输入,低电平有效。
(3) WR——写信号,输入,低电平有效。
(4) RD——读信号,输入,低电平有效。
(5) PA0~PA7——A口8位通用I/O线。
(6) PB0~PB7——B口8位通用I/O线。
(7) PC0~PC5——C口6位I/O线既可作通用I/O口,又可作A口和B口工作于选通方式下的控制信号。
(8) IO/M——I/O与RAM选择信号。8155内部I/O口与RAM是分开编址的,因此要使用控制信号进行区分。IO/M=0,对RAM进行读写;IO/M=1,对I/O进行读写。
3、本实验8155的端口地址由单片机的P0口和P2.7以及P2. 0 控制。控制口的地址为7F00H;PA口的地址为7F01H;PB口的地址为7F02H。
三、实验内容及步骤
本实验分两种情况来进行:(一) PA口作为输出口。 (二) PA口作为输出口,PB口作为输入口。
(一)PA口作为输出口,接八位逻辑电平显示,程序功能使发光二极管单只从右到左轮流循环点亮。
1、单片机最小应用系统的 P0口接8155的D0~D7口,8155的PA0~PA7接八位逻辑电平显示,单片机最小应用系统的P2.0、P2.7、RD、WR、ALE分别接8155的IO/M、CE、RD、WR、ALE,RESET接上单次脉冲电路的低电平。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 “TH10_8155_A.ASM”源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,发光二极管单只从右到左轮流循环点亮。
(二) PB口作为输入口,读入开关信号;PA口作为输出口,送八位逻辑电平显示模块显示。
1、单片机最小应用系统的 P0口接8155的D0~D7口,8155的PA0~PA7接八位逻辑电平显示,PB0~PB7口接八位逻辑电平输出模块,单片机最小应用系统的P2.0、P2.7、RD、WR、ALE分别接8155的IO/M、CE、RD、WR、ALE,RESET接上单次脉冲电路的低电平。
2、添加“TH10_8155_B.ASM”源程序,进行编译,直到编译无误。
3、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
4、打开模块电源和总电源,点击开始调试按钮,点
展开阅读全文