目 录
实验一 单片机汇编语言程序设计实验……………………………………………1 实验二 单片机系统并行接口电路实验……………………………………………6 实验三 单片机键盘、显示器电路实验……………………………………………10
实验一、单片机汇编语言程序设计实验
一、实验目的
掌握汇编语言设计、编程及程序的调试方法,并熟悉键盘操作。 二、实验内容
(一)清零实验
把7000H~70FFH的内容清零。 1、实验程序及框图
开始R0=00DPTR=7000H00送到DPTRDPTR+1;R0+1R0=00?YN结束
ORG 0030H
CLEAR: MOV R0,#00H MOV DPTR,#7000H CLEAR1: CLR A MOVX @DPTR,A INC DPTR INC R0
CJNE R0,#00H,CLEAR1 CLEAR2: SJMP CLEAR2 END
2、实验步骤
① 当DVCC单片机仿真实验系统独立工作时
1
1)自己输入程序
(1)输入程序指令的机器代码,假设程序存放起始地址为0030H。 (2)通过键盘输入实验程序的起始地址,再按执行键EXEC,表示连续运行该程序,稍侯,按RESET键退出运行;如果以单步运行程序,则输入0030后,按SETP键,按一次执行一条语句,直到执行到003C为止,按MON键退出运行;如果以断点运行程序,则先输入003CH(断点地址),再按F1键,再输入0030(起始地址),然后按EXEC键执行程序,当执行到003CH时自动停下来,此时按MON键退出。
(3) 用存贮器读写方法检查7000H~70FFH中的内容应全是00H(注:在程序运行之前可向7000H~70FFH中存入不为00H的内容)。 2)利用固化区EPROM中实验程序
(1) 将固化区EPROM中实验程序目标码传送到仿真RAM区,操作如下:输入0后按F1键,再输入0FFF后按F2键,再输入0后按EPMOV稍等,系统返回初始状态,显示“P.”。
(2)通过键盘输入实验程序的起始地址0030H,再按执行键EXEC,表示连续运行该程序,稍侯,按RESET键退出运行;如果以单步运行程序,则输入0030后,按SETP键,按一次执行一条语句,直到执行到003CH为止,按MON键退出运行;如果以断点运行程序,则先输入003CH(断点地址),再按F1键,再输入0030(起始地址),然后按EXEC键执行程序,当执行到003CH时自动停下来,此时按MON键退出。
(3) 用存贮器读写方法检查7000H~70FFH中的内容应全是00H(注:在程序运行之前可向7000H~70FFH中存入不为00H的内容)。 ② 当DVCC仿真实验系统联PC机时
(1)打开DVCC软件,点击新建文件输入程序,另存为:起文件名。 (2)点击编译,观察程序能否正确进行编译;
(3)打开实验箱电源,查看设备是否在初始状态(在八段数码管显示闪动的P.),若不是按复位键可返回初始状态;
(4)在初始状态按PCDBG,点联机,联机成功后调试,调试成功再运行实验程序;(可连续运行程序(F9)或单步(F8)或断点运行程序)
2
(5)要结束运行,要先按RESET,再按PCDBG,最后点击运行框中的“OK”即可; (6)运行完后,在存贮器窗口内检查7000H~70FFH中的内容是否全为00H。 (二) 拆字实验
把7000H的内容拆开,高位送7001H低位,低位送7002H低位。7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区时用。
1、实验程序框图
开始 7000内容送A 高低位交换
屏蔽高位后送7001H
7000H内容送A
屏蔽高位后送7002H
结束
ORG 0050H
CWORD: MOV DPTR,#7000H MOVX A,@DPTR MOV B,A SWAP A
ANL A,#0FH INC DPTR
MOVX @DPTR,A INC DPTR MOV A,B ANL A,#0FH MOVX @DPTR,A CWORD1: SJMP CWORD1 END
2、实验步骤
3
(1)先用存贮器读写方法将7000H单元置成34H;
(2) 打开DVCC软件,新建文件,输入程序,保存并联机运行;
(3)检查7001H和7002H单元中的内容应为03H和04H(注:在程序运行之前可先观察7000H~7002H中的内容)。
(三)多分支实验
编写散转程序,根据8032片内20H中的内容(00或01或02或03)进行散转。
1、实验程序框图
开始 (20H)→A A+散转首地0字循环 1字循环 2字循环 3字循环 ORG 0250H
MJUP: MOV A,20H
MOV DPTR,#TABADDR RL A
JMP @A+DPTR TABADDR:SJMP DISP0 SJMP DISP1 SJMP DISP2 SJMP DISP3
DISP0: MOV 20H,#0C0H LJMP MJUP1
DISP1: MOV 20H,#0F9H LJMP MJUP1
DISP2: MOV 20H,#0A4H LJMP MJUP1
DISP3: MOV 20H,#0B0H MJUP1: MOV A,20H MOV R0,#22H MOV R1,#21H MOVX @R0,A
4