单片机实验指导书.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机实验指导书
白城师范学院
机械电子工程系
目录
实验一实验板使用,简单程序设计 (3)
实验二汇编语言程序设计 (4)
实验三中断系统应用实验 (7)
实验四定时器计数器使用 (9)
实验五8255 I/O扩展实验 (12)
实验六查询式键盘、显示实验 (15)
实验七DAC0832并行D/A转换实验 (18)
实验八 ADC0809并行A/D转换实验 (20)
实验一实验板使用,简单程序设计
一、实验目的
1. 熟悉单片机实验版、Keil C51软件使用
2. 学习简单程序的调试方法
3. 掌握存储器读写方法
二、实验说明
本实验指定某块存储器的起始地址和长度,要求能将其内容置1。通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。
三、实验内容及步骤
1.安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。
2.启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的项目文件中输入源程序,进行编译,编译无误后,执行程序,点击全速执行快捷按钮,点击暂停按钮,观察存储块数据变化情况,点击复位按钮,可再次运行程序。(KEIL软件使用详见附录)
3.打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及参考程序
1.参考程序
ORG 0000H
START EQU 30H
MOV R0, #START ;起始地址
MOV R2, #10 ;设置10字节计数值
mov a,#01h
Loop:
MOV @R0,A
INC R0
DJNZ R2,Loop
NOP
END
2.流程图
五、思考题
实验二汇编语言程序设计
一、实验目的
1.进一步熟悉汇编语言编程和程序调试
2.学习P1口的使用方法
3.学习延时子程序的编写和使用
二、实验说明
P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。
三、实验内容及步骤
实验(一):
本实验需要用到单片机最小应用系统(F1区)和十六位逻辑电平显示模块(I4区)。
用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
1.使用单片机最小应用系统。用扁平数据线连接单片机P1口JD1F与十六位逻辑电平显示模块JD2I,打开相关模块电源。
2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,输入源程序(实验(一)),进行编译,直到编译无误。
4.进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5.打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。
实验(二):
用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。程序读取开关状态,并在发光二极管上显示出来。
本实验需要用到单片机最小应用系统(F1区)、十六位逻辑电平显示模块(I4区)以及八位逻辑电平输出模块(B1区)。
1.用导线分别把单片机最小应用系统的 P1.0、P1.1连接到两个拨断开关(B1区)K0、K1,P1.2、P1.3连接到两个发光二极管(I4区)L0、L1。
2. 输入源程序(实验(二)),编译无误后,全速运行程序,拨动拨断开关,观察发光二极管的亮灭情况。向上拨为熄灭,向下拨为点亮。
3.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)
注:在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到原来的位置!以下将不再重述。
四、流程图及参考程序
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
注:BIT为定义位名称伪指令。
五、思考题
(1)对于本实验延时子程序
Delay: MOV R6,0
MOV R7, 0
DelayLoop:DJNZ R6,DelayLoop
DJNZ R7,DelayLoop
RET