《单片机与接口技术》实验指导书合肥校区要点.docx
《《单片机与接口技术》实验指导书合肥校区要点.docx》由会员分享,可在线阅读,更多相关《《单片机与接口技术》实验指导书合肥校区要点.docx(30页珍藏版)》请在冰豆网上搜索。
![《单片机与接口技术》实验指导书合肥校区要点.docx](https://file1.bdocx.com/fileroot1/2023-1/8/a5a3973b-0227-4b10-a052-c64ffdebd976/a5a3973b-0227-4b10-a052-c64ffdebd9761.gif)
《单片机与接口技术》实验指导书合肥校区要点
《单片机与接口技术》
实验指导书
王玉琳编写
STARES598PCI
合肥工业大学机械与汽车工程学院
2015年12月(第2版)
目录
实验一P1口输出实验3
实验二外部中断实验4
实验三外部事件计数实验6
实验四计数到中断实验7
实验五等待计数结束实验9
实验六定时到中断实验10
实验七内、外RAM数据传送实验11
实验八8255控制交通灯实验13
实验九8255的PC口综合实验16
实验十DAC0832实验19
实验十一ADC0809实验21
实验十二LED16×16点阵实验25
实验十三图形点阵显示实验26
实验十四简易电子琴实验26
实验一P1口输出实验
一、实验目的
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握P1口的使用方法;了解单片机实验仪的工作原理。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、实验内容
采用51单片机的P1口控制8只LED指示灯循环点亮(当P1口某一位输出低电平时,对应的LED被点亮)。
四、实验原理图
五、实验接线
A3区:
JP51(8针插座)
8芯排线(小号对小号)
G6区:
JP65(8针插座)
A3区:
P1.0
——
D1区:
Ctrl(蜂鸣器)
六、参考程序
ORG
0000H
LJMP
MAIN
ORG
0030H
MAIN:
MOV
SP,#70H
MOV
A,#0FFH
CLR
C
AGAIN:
RLC
A
MOV
P1,A
ACALL
DELAY
SJMP
AGAIN
DELAY:
MOV
R5,#02H
;延时
DELAY1:
MOV
R6,#00H
DELAY2:
MOV
R7,#00H
DJNZ
R7,$
DJNZ
R6,DELAY2
DJNZ
R5,DELAY1
RET
END
思考:
(1)上述实验的灯是向右移动的,如何实现向左移动?
(2)如何改变灯移动的频率?
实验二外部中断实验
一、实验目的
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握P1口和P3口外部中断的使用方法。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、实验接线
A3区:
JP51(8针插座)
8芯排线(小号对小号)
G6区:
JP65(8针插座)
A3区:
P3.5
——
D1区:
Ctrl(蜂鸣器)
A3区:
P3.4
——
G6区:
K7
A3区:
P3.3
——
G6区:
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
ACALLDELAY
MOVP1,#11111011B
ACALLDELAY
MOVP1,#11110111B
ACALLDELAY
MOVP1,#11101111B
ACALLDELAY
MOVP1,#11011111B
ACALLDELAY
MOVP1,#10111111B
ACALLDELAY
MOVP1,#01111111B
ACALLDELAY
SJMPPO12
PO16:
NOP;中断服务子程序
CLRP3.5;开启蜂鸣器
JNBP3.3,$;等待报警解除
SETBP3.5;关闭蜂鸣器
RETI;中断子程序返回
DELAY:
MOVR5,#02H
DELAY1:
MOVR6,#00H
DELAY2:
MOVR7,#00H
DJNZR7,$
DJNZR6,DELAY2
DJNZR5,DELAY1
RET
END
思考:
(1)等待开工启动时P3.4为什么只需查询一次?
(2)若将中断换成INT0,程序将如何修改?
实验三外部事件计数实验
一、实验目的
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机的T0、T1对外部事件进行计数的工作方式。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、实验接线
A3区:
JP51(8针插座)
8芯排线(小号对大号)
G6区:
JP65(8针插座)
A3区:
P3.4(T0)
——
B2区:
单脉冲
四、实验内容
(1)上、下拨动正脉冲开关一次,产生的脉冲下降沿使得单片机T0计数器的计数值加1,LED-8点亮;
(2)不断上、下拨动开关,观察8只LED的点亮情况(8位二进制数,亮为“1”)。
五、参考程序
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVP1,#11111111B;LED-1~LED-8全灭
MOVTMOD,#00000101B;T0计数器初始化,方式1计数
MOVTH0,#00H ;T0的计数初值设为0
MOVTL0,#00H
SETBTR0;T0计数器开始计数
AGAIN:
MOVA,TL0;读取T0计数器的低8位计数值
CPLA
MOVP1,A
SJMPAGAIN
END
思考:
(1)高速计数时,如何读取稳定的计数值?
(2)若将T0换成T1,如何修改程序?
实验四计数到中断实验
一、实验目的
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机T0、T1计数到中断的工作方式。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、实验接线
拔掉实验三的8芯排线,按下表连线:
A3区:
P3.4(T0)
——
B2区:
单脉冲
A3区:
P1.6
——
G6区:
LED-1
A3区:
P1.7
——
D1区:
Ctrl(蜂鸣器)
D1区:
Ctrl(蜂鸣器)
——
G6区:
LED-3
四、实验内容
(1)上、下拨动单脉冲
开关5次→再上、下拨动5次→循环往复……;
(2)观察、记录、解释实验现象,彻底理解实验程序。
五、参考程序
ORG0000H
JMPMAIN
ORG000BH
JMPTIME0
ORG0030H
MAIN:
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)在中断服务子程序中,为什么不需要重新装载计数初值?
(2)若将T0换成T1,如何修改程序?
实验五等待计数结束实验
一、实验目的
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机T0、T1计数器的“等待计数结束”的工作方式。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、实验接线(与实验四完全相同)
A3区:
P3.4(T0)
——
B2区:
单脉冲
A3区:
P1.6
——
G6区:
LED-1
A3区:
P1.7
——
D1区:
Ctrl(蜂鸣器)
D1区:
Ctrl(蜂鸣器)
——
G6区:
LED-3
四、实验内容
(1)上、下拨动单脉冲
开关5次→再上、下拨动5次→循环往复……;
(2)观察、记录、解释实验现象,彻底理解实验程序。
五、参考程序
ORG0000H
JMPMAIN
ORG0030H
MAIN:
MOVP1,#11111111B
MOVTMOD,#00000101B;T0,方式1,16位计数器
;计5个脉冲后将P1.7取反
MOVTH0,#0FFH
MOVTL0,#0FBH
SETBTR0
CLRP1.6
LOOP:
JNBTF0,$;软件查询T0的溢出标志
CLRTF0;查到溢出标志随即清除
MOVTH0,#0FFH;重新装载计数初值
MOVTL0,#0FBH
SETBP1.6
CPLP1.7
JMPLOOP
END
思考:
(1)“等待计数结束”这种方式有何优缺点?
(2)若将T0换成T1,如何修改程序?
实验六定时到中断实验
一、实验目的
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机T0、T1定时器的“定时到中断”工作方式。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、自行设计实验
已知AT89S52单片机的晶振频率为11.0592MHz,要求从P1.7引脚用定时的方式输出周期2s、占空比1:
1的连续方波。
自己接线、编程。
实验七内、外RAM数据传送实验
一、实验目的
熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机内、外RAM的数据传输方法。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、实验接线
A3区:
P1.0
——
G6区:
LED-1
A3区:
P1.2
——
G6区:
LED-3
三、实验内容
(1)编制程序1:
将内部RAM从Address1开始的16个字节内容,传送到外部RAM从Address2开始的16个单元里,然后再作比较。
Address1DATA30H
Address2XDATA1000H
ORG0000H
LJMPSTAR
ORG0100H
STAR:
MOVSP,#60H
MOVR0,#Address1
MOVDPTR,#Address2
MOVR7,#10H
STAR1:
MOVA,@R0;传送
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,STAR1
MOVR0,#Address1
MOVDPTR,#Address2
MOVR7,#10H
STAR2:
MOVB,@R0;比较
MOVXA,@DPTR
CJNEA,B,STAR3
INCR0
INCDPTR
DJNZR7,STAR2
CLRP1.0
SJMP$;传送正确
STAR3:
CLRP1.2
SJMP$;传送错误
END
(2)编制程序2:
将外部RAM从Address2开始的16个字节内容,传送到内部RAM从Address1开始的16个单元里,然后再作比较。
Address1DATA30H
Address2XDATA1000H
ORG0000H
LJMPSTAR
ORG0100H
STAR:
MOVSP,#60H
MOVR0,#Address1
MOVDPTR,#Address2
MOVR7,#10H
STAR1:
MOVXA,@DPTR;传送
MOV@R0,A
INCR0
INCDPTR
DJNZR7,STAR1
MOVR0,#Address1
MOVDPTR,#Address2
MOVR7,#10H
STAR2:
MOVB,@R0;比较
MOVXA,@DPTR
CJNEA,B,STAR3
INCR0
INCDPTR
DJNZR7,STAR2
CLRP1.0
SJMP$;传送正确
STAR3:
CLRP1.2
SJMP$;传送错误
END
(3)编制程序3:
将外部RAM中的0000H~1FFFH所有单元均清零。
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVP1,#0FFH
MOVDPTR,#0000H
AGAIN:
CLRA
MOVX@DPTR,A
INCDPTR
MOVA,DPH
CJNEA,#20H,AGAIN
CLRP1.0;P1.0接LED-1
SJMP$;结束时绿灯亮
以上清零程序为一种方法,你还能想出其它方法吗?
实验八8255控制交通灯实验
一、实验目的
熟练使用星研集成环境软件,学习51单片机汇编程序设计技巧,掌握8255芯片的工作方式0。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、实验内容
使用8255芯片的PA口控制8只LED指示灯,模拟交通信号灯。
四、实验原理图
五、实验接线
B4区:
CS、A0、A1
——
A3区:
CS1、A0、A1
B4区:
JP56(PA口)
8芯排线(小号对大号)
G6区:
JP65
六、参考程序
COM_ADDXDATA0F003H
PA_ADDXDATA0F000H
PB_ADDXDATA0F001H
PC_ADDXDATA0F002H
ORG0000H
LJMPSTAR
ORG0100H
STAR:
MOVSP,#60H
MOVDPTR,#COM_ADD
MOVA,#80H;PA、PB、PC为基本输出模式
MOVX@DPTR,A
MOVDPTR,#PA_ADD;灯全熄灭
MOVA,#0FFH
MOVX@DPTR,A
START1:
MOVA,#37H
MOVCA,@A+PC
MOVX@DPTR,A;东西绿灯,南北红灯
ACALLDL5S
MOVR4,#6
START2:
MOVA,#30H
MOVCA,@A+PC
MOVX@DPTR,A;东西绿灯闪烁,南北红灯
ACALLDL500ms
MOVA,#29H
MOVCA,@A+PC
MOVX@DPTR,A
ACALLDL500ms
DJNZR4,START2
MOVA,#23H;东西黄灯亮,南北红灯
MOVCA,@A+PC
MOVX@DPTR,A
ACALLDL3S
MOVA,#1EH;东西红灯,南北绿灯
MOVCA,@A+PC
MOVX@DPTR,A
ACALLDL5S
MOVR4,#6
START3:
MOVA,#17H;东西红灯,南北绿灯闪烁
MOVCA,@A+PC
MOVX@DPTR,A
ACALLDL500ms
MOVA,#10H
MOVCA,@A+PC
MOVX@DPTR,A
ACALLDL500ms
DJNZR4,START3
MOVA,#0AH;东西红灯,南北黄灯亮
MOVCA,@A+PC
MOVX@DPTR,A
ACALLDL3S
SJMPSTART1
DB01111110B;东西绿灯,南北红灯
DB11111110B;东西绿灯闪烁,南北红灯
DB10111110B;东西黄灯亮,南北红灯
DB11011011B;东西红灯,南北绿灯
DB11011111B;东西红灯,南北绿灯闪烁
DB11011101B;东西红灯,南北黄灯亮
DL500ms:
MOVR5,#25
DL500ms1:
MOVR6,#100
DL500ms2:
MOVR7,#100
DJNZR7,$
DJNZR6,DL500ms2
DJNZR5,DL500ms1
RET
DL3S:
MOVR4,#6
DL3S1:
LCALLDL500ms
DJNZR4,DL3S1
RET
DL5S:
MOVR4,#10
DL5S1:
LCALLDL500ms
DJNZR4,DL5S1
RET
END
思考:
(1)若将PA口换成PB或PC口,如何修改程序?
(2)8255的输出口可以读出内容进行修改,然后再回送,你知道吗?
实验九8255的PC口综合实验
一、实验目的
熟练使用星研集成环境软件,学习51单片机汇编程序设计技巧,掌握8255芯片PC口的输入、输出方式以及位控方式,巩固外部中断的使用方法。
二、实验设备
上海星研STARES598PCI实验仪一套,PC机一台。
三、实验接线
拔掉实验八的8芯排线:
B4区:
CS、A0、A1
——
A3区:
CS1、A0、A1
B4区:
PC0、PC1
——
G6区:
LED-1、LED-2(K1、K2的下面)
B4区:
PC6、PC7
——
G6区:
K7、K8
A3区:
INT0
——
G6区:
K5
A3区:
P1.7
——
D1区:
Ctrl(蜂鸣器)
四、实验内容
将8255芯片PC口的高四位PC4-7设为输入、低四位PC0-3设为输出,对PC口进行I/O操作和位控操作。
五、实验步骤
(1)初始状态时,将K5、K6、K7拨下;
(2)程序运行后,将K6先拨上,LED-1闪烁10次,之后熄灭;
(3)再将K7拨上,LED-2闪烁10次,之后LED-1又闪烁10次,如此循环往复;
(4)随机地将K5拨上,蜂鸣器立即报警;
(5)将K5拨下时,报警解除。
六、参考程序
COM_ADDXDATA0F003H;8255的控制口地址
PC_ADDXDATA0F002H;8255的PC口地址
ORG0000H
JMPMAIN
ORG0003H
JMPITR0
ORG0100H
MAIN:
MOVSP,#70H
MOVPSW,#00H
CLRIT0;中断0电平触发
SETBPX0;中断0高优先级
SETBEX0;中断0允许
SETBEA;总中断允许
MOVDPTR,#COM_ADD;8255控制口地址
MOVA,#10001000B;PA、PB、PC0-3为基本输出模式
MOVX@DPTR,A;PC4-7为基本输入模式
MOVDPTR,#PC_ADD;PC口地址
MOVA,#11111111B;PC口输出全1
MOVX@DPTR,A
LOOP1:
MOVDPTR,#PC_ADD;PC口地址
MOVXA,@DPTR;读PC口
JBACC.6,LOOP1
MOVB,#10D;PC6=0
AGAIN1:
MOVDPTR,#COM_ADD
MOVA,#01110000B;PC0=0
MOVX@DPTR,A
CALLDELAY
MOVDPTR,#COM_ADD
MOVA,#01110001B;PC0=1
MOVX@DPTR,A
CALLDELAY
DJNZB,AGAIN1
LOOP2:
MOVDPTR,#PC_ADD;PC口地址
MOVXA,@DPTR;读PC口
JBACC.7,LOOP2
MOVB,#10D;PC7=0
AGAIN2:
MOVDPTR,#COM_ADD
MOVA,#01110010B;PC1=0
MOVX@DPTR,A
CALLDELAY
MOVDPTR,#COM_ADD
MOVA,#01110011B;PC1=1
MOVX@DPTR,A
CALLDELAY
DJNZB,AGAIN2
JMPLOOP1
DELAY:
MOVR5,#25
DL1:
MOVR6,#100
DL2:
MOVR7,#100
DJNZR7,$
DJNZR6,DL2
DJNZR5,DL1
RET
ITR0:
CLR