《单片机与接口技术》实验指导书合肥校区Word格式.docx
《《单片机与接口技术》实验指导书合肥校区Word格式.docx》由会员分享,可在线阅读,更多相关《《单片机与接口技术》实验指导书合肥校区Word格式.docx(30页珍藏版)》请在冰豆网上搜索。
实验十四简易电子琴实验26
实验一P1口输出实验
一、实验目的
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握P1口的使用方法;
了解单片机实验仪的工作原理。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、实验内容
采用51单片机的P1口控制8只LED指示灯循环点亮(当P1口某一位输出低电平时,对应的LED被点亮)。
四、实验原理图
五、实验接线
A3区:
JP51(8针插座)
8芯排线(小号对小号)
G6区:
JP65(8针插座)
P1.0
——
D1区:
Ctrl(蜂鸣器)
六、参考程序
ORG
0000H
LJMP
MAIN
0030H
MAIN:
MOV
SP,#70H
A,#0FFH
CLR
C
AGAIN:
RLC
A
P1,A
ACALL
DELAY
SJMP
AGAIN
DELAY:
R5,#02H
;
延时
DELAY1:
R6,#00H
DELAY2:
R7,#00H
DJNZ
R7,$
R6,DELAY2
R5,DELAY1
RET
END
思考:
(1)上述实验的灯是向右移动的,如何实现向左移动?
(2)如何改变灯移动的频率?
实验二外部中断实验
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握P1口和P3口外部中断的使用方法。
三、实验接线
P3.5
P3.4
K7
P3.3
K8
四、实验内容
用51单片机的P1.0~P1.7控制8道工序,现模拟控制8只LED,低电平点亮,将每道工序所占的时间假定为延时;
P3.4接K7,为开工启动开关,下降沿有效;
P3.3接K8,为外部故障模拟输入开关,P3.3=1时设备正常,P3.3=0时,设备出故障,系统报警;
P3.5接D1区蜂鸣器的Ctrl,为报警时的声音输出。
初始状态,K7和K8均拨到下面(高电平),此时8只LED均未点亮。
运行程序后,将K7拨到上面再拨下来,二极管开始点亮,顺序动作开始;
把K8拨到上面时,发声报警,再将K8拨到下面时,报警停止。
五、参考程序
ORG0000H
LJMPPO10
ORG0013H
LJMPPO16
ORG0030H
PO10:
MOVP1,#0FFH
PO11:
JBP3.4,PO11;
等待开工启动
ORLIE,#10000100B;
(EA)=1,(EX1)=1
ORLIP,#00000100B;
(PX1)=1
MOVPSW,#00H
MOVSP,#70H
PO12:
MOVP1,#11111110B
ACALLDELAY
MOVP1,#11111101B
MOVP1,#11111011B
MOVP1,#11110111B
MOVP1,#11101111B
MOVP1,#11011111B
MOVP1,#10111111B
MOVP1,#01111111B
SJMPPO12
PO16:
NOP;
中断服务子程序
CLRP3.5;
开启蜂鸣器
JNBP3.3,$;
等待报警解除
SETBP3.5;
关闭蜂鸣器
RETI;
中断子程序返回
MOVR5,#02H
MOVR6,#00H
MOVR7,#00H
DJNZR7,$
DJNZR6,DELAY2
DJNZR5,DELAY1
RET
END
(1)等待开工启动时P3.4为什么只需查询一次?
(2)若将中断换成INT0,程序将如何修改?
实验三外部事件计数实验
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机的T0、T1对外部事件进行计数的工作方式。
8芯排线(小号对大号)
P3.4(T0)
B2区:
单脉冲
(1)上、下拨动正脉冲开关一次,产生的脉冲下降沿使得单片机T0计数器的计数值加1,LED-8点亮;
(2)不断上、下拨动开关,观察8只LED的点亮情况(8位二进制数,亮为“1”)。
ORG0000H
LJMPMAIN
MOVP1,#11111111B;
LED-1~LED-8全灭
MOVTMOD,#00000101B;
T0计数器初始化,方式1计数
MOVTH0,#00H
;
T0的计数初值设为0
MOVTL0,#00H
SETBTR0;
T0计数器开始计数
MOVA,TL0;
读取T0计数器的低8位计数值
CPLA
MOVP1,A
SJMPAGAIN
(1)高速计数时,如何读取稳定的计数值?
(2)若将T0换成T1,如何修改程序?
实验四计数到中断实验
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机T0、T1计数到中断的工作方式。
拔掉实验三的8芯排线,按下表连线:
P1.6
LED-1
P1.7
LED-3
(1)上、下拨动单脉冲
开关5次→再上、下拨动5次→循环往复……;
(2)观察、记录、解释实验现象,彻底理解实验程序。
ORG0000H
JMPMAIN
ORG000BH
JMPTIME0
ORG0030H
MOVP1,#11111111B
MOVTMOD,#00000110B;
T0,方式2,8位计数器,计5个脉冲即中断
MOVTH0,#0FBH;
方式2为计数初值自动重装方式
MOVTL0,#0FBH
SETBET0
SETBEA
SETBTR0
CLRP1.6
JMP$
TIME0:
SETBP1.6
CPLP1.7
RETI
END
(1)在中断服务子程序中,为什么不需要重新装载计数初值?
实验五等待计数结束实验
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机T0、T1计数器的“等待计数结束”的工作方式。
三、实验接线(与实验四完全相同)
MOVTMOD,#00000101B;
T0,方式1,16位计数器
;
计5个脉冲后将P1.7取反
MOVTH0,#0FFH
LOOP:
JNBTF0,$;
软件查询T0的溢出标志
CLRTF0;
查到溢出标志随即清除
MOVTH0,#0FFH;
重新装载计数初值
SETBP1.6
JMPLOOP
(1)“等待计数结束”这种方式有何优缺点?
实验六定时到中断实验
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机T0、T1定时器的“定时到中断”工作方式。
三、自行设计实验
已知AT89S52单片机的晶振频率为11.0592MHz,要求从P1.7引脚用定时的方式输出周期2s、占空比1:
1的连续方波。
自己接线、编程。
实验七内、外RAM数据传送实验
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机内、外RAM的数据传输方法。
三、实验接线
P1.2
LED