单片机实验指导书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
clr LED
mov TCON, #01h ; 外部中断0下降沿触发
mov IE, #81h ; 打开外部中断允许位(EX0)及总中断允许位(EA)
OK: ljmp OK
org 0030H
INTERRUPT:
push PSW ; 保护现场
cpl LEDBuf ; 取反LED
mov c, LEDBuf
ljmp$
ORG 0100H
T0Int:
push PSW
djnz R2,loop
cpl LED
mov r2,#20
loop:mov th0,#3CH
mov tl0,#0B0H
pop PSW
reti
end
五、思考题
1.如何将LED的状态间隔改为2秒,程序如何改写?
2.如果更换不同频率的晶振,会出现什么现象?如何调整程序?
2.安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着建立源程序,编译无误后,全速运行程序,连续按动单次脉冲产生电路的按键,发光二极管每按一次状态取反,即隔一次点亮。
4.可把源程序编译成可执行文件,用ISP烧录器烧录到89S52芯片中。(ISP烧录器的使用查看附录二)
四、流程图及参考程序
1.流程图
2.参考程序
LED BIT P1.0
LEDBuf BIT 0
org 0000H
ljmp Start
ORG 0003H
LJMP INTERRUPT
Start: clr LEDBuf
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
三、实验步骤及内容
本实验需要用到单片机最小应用系统(F1区)、查询式键盘(B2区)、动态显示模块(I3区)和十六位逻辑电平显示模块(I4区)。
1.用一根扁平数据插头线连接查询式键盘实验模块JD2B与十六位逻辑电平显示模块JD2I,无键按下时,键盘输出全为“1”发光二极管全部熄灭,有键按下,对应发光二极管点亮。
2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,输入源程序(实验(一)),进行编译,直到编译无误。
4.进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5.打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着建立源程序,编译无误后。
4.全速运行程序。
5.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。
四、实验框图以及参考程序
1.流程图
2.参考程序
LED BIT P1.0
org 0000H
2.中断服务的关键:
a、保护进入中断时的状态。
堆栈有保护断点和保护现场的功能使用PUSH指令,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。
b、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。
c、用POP指令恢复中断时的现场。
3.中断控制原理:
中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON、IE、SCON及IP。
六、电路图
实验
一、实验目的
1.掌握键盘和显示器的接口方法和编程方法
2.掌握键盘和八段码显示器的工作原理
二、实验说明
本实验提供了8个按钮的小键盘,可接到单片机的并行口,如果有键按下,则相应输出为低,否则输出为高。单片机通过识别,判断按下什么键。有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。
INT0端接单次脉冲发生器。P1.0接LED灯,以查看信号反转。
三、实验内容及步骤
统模块(F1区)、单次脉冲源(A6区)和十六位逻辑电平显示模块(I4区)。
1.使用单片机最小应用系统模块,P1.0接十六位逻辑电平显示的一个发光二极管,P3.2(INTO)接单次脉冲源的输出端。
单片机实验指导书
白城师范学院
机械工程学院系
一、实验目的
1. 熟悉单片机实验版、Keil C51软件使用
2.学习简单程序的调试方法
3. 掌握存储器读写方法
二、实验说明
本实验指定某块存储器的起始地址和长度,要求能将其内容置1。通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。
机器周期=12÷12MHz=1uS
定时常数(初值)=65536-50mS/1uS=15536=3CB0H。然后对50mS中断次数计数20次,就是1秒钟。
在本实验的中断处理程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。
三、实验内容及步骤
mov LED, c
pop PSW ; 恢复现场
reti
end
五、思考题
1.简述中断处理的一般过程。
六、原理图
一、实验目的
1.学习89C51内部定时计数器的使用和编程方法
2.进一步掌握中断处理程序的编写方法
二、实验说明
关于内部计数器的编程主要是定时常数(初值)的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器,定时为一秒钟。CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。
MOV R7, 0
DelayLoop:DJNZ R6,DelayLoop
DJNZ R7,DelayLoop
RET
本模块使用11.0592MHz晶振,粗略计算此程序的执行时间为多少?
六、电路图
一、实验目的
1.掌握外部中断技术的基本使用方法
2.掌握中断处理程序的编写方法
二、实验说明
1.外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断触发方式设置。中断触发方式设置一般有两种方式:电平触发方式和脉冲(边沿)触发方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.3)引入,本实验由INT0(P3.2)引入。
Loop:
MOV @R0,A
INC R0
DJNZ R2,Loop
NOP
LJMP $
END
2.流程图
五、思考题
如何将存储器块的内容移动到另一位置。
一、实验目的
1.进一步熟悉汇编语言编程和程序调试
2.学习P1口的使用方法
3.学习延时子程序的编写和使用
二、实验说明
P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。
三、实验内容及步骤
1.安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。
2.启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的项目文件中输入源程序,进行编译,编译无误后,执行程序,点击全速执行快捷按钮,点击暂停按钮,观察存储块数据变化情况,点击复位按钮,可再次运行程序。(KEIL软件使用详见附录)
2.输入源程序(实验(二)),编译无误后,全速运行程序,拨动拨断开关,观察发光二极管的亮灭情况。向上拨为熄灭,向下拨为点亮。
3.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)
注:在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到原来的位置!以下将不再重述。
3.打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及参考程序
1.参考程序
ORG 0000H
START EQU 30H
MOV R0, #START ;起始地址
MOV R2, #10 ;设置10字节计数值
mov a,#01h
4.中断响应的过程:
首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。
ORG 0030H
START:SETB KEYLEFT
SETB KEYRIGHT
LOOP: MOV C,KEYLEFT
MOV LEDLEFT,C
MOV C,KEYRIGHT
MOV LEDRIGHT,C
LJMPLOOP
END
注:BIT为定义位名称伪指令。
五、思考题
(1)对于本实验延时子程序
Delay:MOV R6,0
实验(二):
用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。
三、实验内容及步骤
实验(一):
本实验需要用到单片机最小应用系统(F1区)和十六位逻辑电平显示模块(I4区)。
用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
1.使用单片机最小应用系统。用扁平数据线连接单片机P1口JD1F与十六位逻辑电平显示模块JD2I,打开相关模块电源。
ljmp Start
org 000BH
LJMP T0Int
Start:
mov TMOD, #01h ; 方式1, 定时器
mov TH0, #3CH ;初值高位
mov TL0, #0B0H ;初值低位
mov IE, #b ; EA=1, IT0 = 1
setb TR0 ; 开始定时
clrLED
mov r2,#20
定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是12MHZ,本程序工作于方式1,即16位方式定时器, 定时器50mS中断一次, 所以定时常数的设置可按以下方法计算:
使P1.0所接发光二极管隔一秒点亮一次,点亮时间为一秒。
本实验需要用到单片机最小应用系统模块(F1区)和十六位逻辑电平显示模块(I4区)。
1.用导线将P1.0接到十六位逻辑电平显示的任意一只发光二极管上。
2.安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。
2.使用动态显示模块显示键值。单片机最小应用系统1的 P1口JD1F接查询式键盘输出口JD2B。最小系统的P0口JD7F接动态显示区I2的段码JD0I,最小系统的P2口接动态显示区I2的位选JD1I。当P1.X所接键被按下时LED显示P1.X字样。
3.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
四、流程图及参考程序
1.流程图
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:
相关文档
最新文档