单片机原理及应用实验指导书修改版.docx
《单片机原理及应用实验指导书修改版.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实验指导书修改版.docx(56页珍藏版)》请在冰豆网上搜索。
单片机原理及应用实验指导书修改版
淮阴工学院
单片机原理及应用
实验指导书
编者:
严石郑蓉建付丽辉
电子与电气工程学院
2011年1月8日
目录
实验一熟悉单片机实验环境1
实验二定时/计数/中断式音乐播放实验5
实验三键盘和显示实验9
实验四接口实验—直流电机实验13
实验五接口实验—步进电机实验17
实验六A/D转换实验20
实验七8155扩展实验24
实验八RS-232串口通信实验28
实验九红外收发实验30
附录DP-51PRO快速入门33
实验一熟悉单片机实验环境
一、实验目的
1.熟悉KeilC51集成开发环境的使用方法及环境调试功能的使用;
2.熟悉DP-51PRO单片机综合仿真实验仪的使用;
3.利用单片机的P1口作I/O口,使用户学会利用P1口作为输入和输出口。
二、实验设备
微型计算机一台
DP-51PRO单片机综合仿真实验仪一台
三、实验内容
学习实验指导书中快速入门的内容,练习KeilC51集成开发环境的仿真调试及实验仪的使用。
然后按照实验要求建立文件并调试。
1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮;
2.编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭(P1.7接按键,按下时LED亮,不按时LED灭。
)
四、实验要求
1.熟练掌握KeilC51集成开发环境的工程建立、编辑与编译功能;
2.学会使用单片机的P1口作I/O口,也可以利用P3口作I/O口来做本实验。
五、实验步骤
1.用导线把A2区的J61接口与D1区的J52接口相连。
原理如图1.1A所示
2.先编写一个延时程序;
3.将LED轮流亮的程序编写完整并调试运行;
4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连。
5.编写P1.7控制LED的程序,并调试运行。
(按下K1看是否全亮);
6.A2区J61接口的P1.7与D1区的J54的SW1相连。
然后再运行程序,拨动拨动开关MOD_SW1查看结果。
六、实验预习要求
阅读课本相关内容,理解本实验的硬件结构。
先把程序编好,然后在KeilC51环境下进行软件仿真,然后在联机调试。
图1.1实验1原理图
七、实验参考程序
(一)程序1:
ORG8000H;此为硬件仿真调试程序,使用软件仿真或直接运行,
;应改为0000H
LJMPMain
ORG8100H;此为硬件仿真调试程序,使用软件仿真或直接运行,
;应改为0100H
Main:
MOVA,#0FFH
CLRC
MainLoop:
CALLDelay
RLCA
MOVP1,A;把A的值输出到P1口
SJMPMainLoop
Delay:
;延时
MOVR7,#0
Loop:
MOVR6,#0
DJNZR6,$
DJNZR6,$
DJNZR6,$
DJNZR7,Loop
RET
;
END
(二)程序2:
ORG8000H;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为
;0000H
LJMPMain
ORG8100H;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为
;0100H
Main:
JBP1.7,SETLED;按键没有按下时,跳转到SETLED
CLRLED:
CLRP1.0
CLRP1.1
CLRP1.2
CLRP1.3
CLRP1.4
CLRP1.5
CLRP1.6
SJMPMain
SETLED:
SETBP1.0
SETBP1.1
SETBP1.2
SETBP1.3
SETBP1.4
SETBP1.5
SETBP1.6
SJMPMain
;
END
(三)程序3:
该部分程序由学生们自拟,根据以上两个程序以及硬件接口,自行编写代码,实现
(1)用P1口作为控制端口,使D1区的LED轮流亮,但点亮方式不同以上程序2的运行结果,可以随意更改点亮形式;
(2)编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭(P1.7接按键),点亮方式可以是按下时LED灭,不按时LED亮或者按照预先设定的方式来点亮。
八、实验思考题
(1)设计几个实现以上功能的编程方法;
(2)第二个程序中如果使用KEY1作为外部中断控制LED的亮和灭时,程序应如何修改。
实验二定时/计数/中断式音乐播放实验
一、实验目的
利用单片机的P1口作I/O口,学会蜂鸣器的使用。
二.实验设备及器件
微型计算机一台
DP-51PRO单片机综合仿真实验仪一台
三、实验内容
1.编写一段程序,用P1.3口控制(输出3K到4K频率的方波),使D4区的蜂鸣器发出嘹亮的响声;
2.按照例程输入一段程序,用P1.3口控制,使D4区的蜂鸣器发出“生日快乐”的音乐。
图1.2蜂鸣器原理图
四、实验步骤
1.使用导线把A2区的J61接口的P13与D4区的J8接口的其中一脚相连;
2.先编写一个延时程序(120~200us);
3.再编写一个循环程序,改变P1.3脚的电平,然后延时。
这样,这个循环就使P1.3口输出一个频率为2.5KHz-4KHz的方波。
在DP-51PRO单片机综合仿真实验仪上运行该程序时,D4区的蜂鸣器将发出嘹亮的响声;
4.阅读参考程序,编写音乐发声程序。
五、实验参考程序
(一)程序1:
ORG8000H
JMPMAIN
ORG800BH
JMPINTT0
ORG8100H
MAIN:
MOVSP,#60H
MOVTMOD,#01H;初始化定时器及器中断
SETBET0;开定时器0中断
SETBEA
SETBTR0;启动定时器0
START0:
SETBP1.3
MOV30H,#00H
NEXT:
MOVA,30H
MOVDPTR,#TABLE;从TABLE中读取数据――声响时间
MOVCA,@A+DPTR
MOVR2,A
JZENDD
ANLA,#0FH
MOVR5,A
MOVA,R2
SWAPA
ANLA,#0FH
JNZSING
CLRTR0
JMPD1
SING:
DECA
MOV22H,A
RLA
MOVDPTR,#TABLE1;从TALBE1中读取数据――声调
MOVCA,@A+DPTR
MOVTH0,A
MOV21H,A
MOVA,22H
RLA
INCA
MOVCA,@A+DPTR
MOVTL0,A
MOV20H,A
SETBTR0
D1:
CALLDELAY;声音延时
INC30H
JMPNEXT
ENDD:
CLRTR0
JMPSTART0
INTT0:
;定时器0中断服务程序
PUSHPSW
PUSHACC
MOVTL0,20H
MOVTH0,21H
CPLP1.3
POPACC
POPPSW
RETI
DELAY:
;R5的值就是声响持续时间
MOVR7,#02
DELAY0:
MOVR4,#187
DELAY1:
MOVR3,#248
DJNZR3,$
DJNZR4,DELAY1
DJNZR7,DELAY0
DJNZR5,DELAY
RET
TABLE:
DB82H,01H,81H,94H,84H,0B4H,0A4H,04H
DB82H,01H,81H,94H,84H,0C4H,0B4H,04H
DB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H
DB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H
DB82H,01H,81H,94H,84H,0B4H,0A4H,04H
DB82H,01H,81H,94H,84H,0C4H,0B4H,04H
DB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H
DB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H,00H
TABLE1:
DW64260,64400,64524,64580,64684,64777,64820,64898
DW64968,65030,65058,65110,65157,65178,65217
;
END
(二)程序2:
该部分程序由学生们自拟,根据以上程序以及硬件接口,自行编写代码,实现
(1)改变以上程序的节拍或频率,观察改变后的结果;
(2)编写一段程序,实现其他音乐,比如“梁祝”的播放。
六、实验思考题
1.参考程序中是如何通过程序来实现音乐播放的;
2.结合实验仪上的硬件,设计一个可以任意选曲播放的电子音乐盒。
实验三键盘和显示实验
一、实验目的
1.掌握单片机键盘接口的编程方法
2.动态LED数码显示的原理及编程。
3.利用单片机的I/O口进行LED点阵的扫描显示。
二、实验设备
微型计算机一台
DP-51PRO单片机综合仿真实验仪一台
三、实验内容
阅读实验参考程序,理解如何实现显示字符“×”,然后再编写一段程序,用P1口控制扫描,用C5区的74HC164控制显示输出,使C3区的8×8LED点阵显示一个字符或
字符串。
四、实验要求
1.会使用单片机对LED点阵进行扫描显示。
2.利用I2C总线及其I2C主控器软件包实现ZLG7290键盘LED控制功能,显示初始时间及键值。
五、实验步骤
1.使用导线把A2区的J61接口与C3区的J46接口从P10~P17到LD_1~LD_8对应相连。
2.使用导线把C5区的J97接口与C3区的J47接口从Q0~Q7到LD_A~LD_H对应相连。
3.使用导线把A2区的J58接口和C5区的J43接口从INT0到CLK、从INT1到DINA、从T0到DINB、从T1到CLR对应相连,另外再短接C5区JP10和C3区JP2。
4.编写一段从74HC164输出八位数据的程序。
5.再编写一个完整的LED点阵扫描程序,显示“×”。
六、实验预习要求
阅读课本相关内容,理解硬件结构,并先把程序编好,然后在KeilC51环境下进行软件仿真。
七、实验参考程序
(一)程序1:
CLKEQUP3.2
DINAEQUP3.3
DINBEQUP3.4
CLEAREQUP3.5
ORG8000h
AJMPmain
ORG8100h
main:
MOVSP,#70h;设置堆栈指针
MOV50H,#07EH;设置发送的列数据
MOV51H,#0BDH
MOV52H,#0DBH
MOV53H,#0E7H
MOV54H,#0E7H
MOV55H,#0DBH
MOV56H,#0BDH
MOV57H,#07EH
CLRCLEAR;初始化IO口
SETBCLK
SETBDINA
SETBDINB
SETBCLEAR
mainloop:
MOVR6,#8h;设置扫描次数
MOVDPTR,#09000h;读取扫描端口数据
MOVR1,#50H;指定列数据指针
flashcy:
MOVA,@R1;读取列数据
MOVR0,A