1、单片机与接口技术实验指导书合肥校区要点单片机与接口技术实 验 指 导 书王 玉 琳 编写STAR ES598PCI合肥工业大学机械与汽车工程学院2015年12月(第2版)目 录实验一 P1口输出实验 3 实验二 外部中断实验 4 实验三 外部事件计数实验 6 实验四 计数到中断实验 7 实验五 等待计数结束实验 9 实验六 定时到中断实验 10 实验七 内、外RAM数据传送实验 11 实验八 8255控制交通灯实验 13 实验九 8255的PC口综合实验 16 实验十 DAC0832实验 19 实验十一 ADC0809实验 21 实验十二 LED1616点阵实验 25 实验十三 图形点阵显示实
2、验 26 实验十四 简易电子琴实验 26 实验一 P1口输出实验一、实验目的熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握P1口的使用方法;了解单片机实验仪的工作原理。二、实验设备 上海星研STAR ES598PCI实验仪一套,PC机一台。三、实验内容 采用51单片机的P1口控制8只LED指示灯循环点亮(当P1口某一位输出低电平时,对应的LED被点亮)。四、实验原理图五、实验接线 A3区:JP51(8针插座)8芯排线(小号对小号)G6区:JP65(8针插座)A3区:P1.0D1区:Ctrl(蜂鸣器)六、参考程序 ORG0000HLJMPMAINORG0030HMAIN:MOVS
3、P,#70HMOVA,#0FFHCLRCAGAIN:RLCAMOVP1,A ACALLDELAYSJMPAGAINDELAY:MOVR5,#02H;延时DELAY1:MOVR6,#00HDELAY2:MOVR7,#00HDJNZR7,$DJNZR6,DELAY2DJNZR5,DELAY1RETEND思考: (1)上述实验的灯是向右移动的,如何实现向左移动? (2)如何改变灯移动的频率?实验二 外部中断实验一、实验目的熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握P1口和P3口外部中断的使用方法。二、实验设备 上海星研STAR ES598PCI实验仪一套,PC机一台。三、实验接线
4、 A3区:JP51(8针插座)8芯排线(小号对小号)G6区:JP65(8针插座)A3区:P3.5D1区:Ctrl(蜂鸣器)A3区:P3.4G6区:K7A3区:P3.3G6区:K8四、实验内容 用51单片机的P1.0P1.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拨到上面再拨下
5、来,二极管开始点亮,顺序动作开始;把K8拨到上面时,发声报警,再将K8拨到下面时,报警停止。五、参考程序 ORG 0000H LJMP PO10 ORG 0013H LJMP PO16 ORG 0030HPO10: MOV P1,#0FFHPO11: JB P3.4,PO11 ;等待开工启动 ORL IE,#10000100B ;(EA)=1,(EX1)=1 ORL IP, #00000100B ;(PX1)=1 MOV PSW,#00H MOV SP,#70HPO12: MOV P1,#11111110B ACALL DELAY MOV P1,#11111101B ACALL DELAY M
6、OV P1,#11111011B ACALL DELAY MOV P1,#11110111B ACALL DELAY MOV P1,#11101111B ACALL DELAY MOV P1,#11011111B ACALL DELAY MOV P1,#10111111B ACALL DELAY MOV P1,#01111111B ACALL DELAY SJMP PO12PO16: NOP ;中断服务子程序 CLR P3.5 ;开启蜂鸣器 JNB P3.3,$ ;等待报警解除 SETB P3.5 ;关闭蜂鸣器 RETI ;中断子程序返回DELAY: MOV R5,#02H DELAY1: M
7、OV R6,#00H DELAY2: MOV R7,#00H DJNZ R7,$ DJNZ R6,DELAY2 DJNZ R5,DELAY1 RET END思考: (1)等待开工启动时P3.4为什么只需查询一次? (2)若将中断换成INT0,程序将如何修改?实验三 外部事件计数实验一、实验目的熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机的T0、T1对外部事件进行计数的工作方式。二、实验设备 上海星研STAR ES598PCI实验仪一套,PC机一台。三、实验接线 A3区:JP51(8针插座)8芯排线(小号对大号)G6区:JP65(8针插座)A3区:P3.4(T0)B2
8、区:单脉冲四、实验内容 (1)上、下拨动正脉冲开关一次,产生的脉冲下降沿使得单片机T0计数器的计数值加1,LED-8点亮;(2)不断上、下拨动开关,观察8只LED的点亮情况(8位二进制数,亮为“1”)。五、参考程序 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV P1,#11111111B ;LED-1LED-8全灭 MOV TMOD,#00000101B ;T0计数器初始化, 方式1计数 MOV TH0,#00H ;T0的计数初值设为0 MOV TL0,#00H SETB TR0 ;T0计数器开始计数AGAIN: MOV A,TL0 ;读取T0计数器的低8位计数
9、值 CPL A MOV P1,A SJMP AGAIN END思考: (1)高速计数时,如何读取稳定的计数值? (2)若将T0换成T1,如何修改程序?实验四 计数到中断实验一、实验目的熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机T0、T1计数到中断的工作方式。二、实验设备 上海星研STAR ES598PCI实验仪一套,PC机一台。三、实验接线 拔掉实验三的8芯排线,按下表连线:A3区:P3.4(T0)B2区:单脉冲A3区:P1.6G6区:LED-1A3区:P1.7D1区:Ctrl(蜂鸣器)D1区:Ctrl(蜂鸣器)G6区:LED-3四、实验内容 (1)上、下拨动单脉
10、冲开关5次再上、下拨动5次循环往复;(2)观察、记录、解释实验现象,彻底理解实验程序。五、参考程序 ORG 0000H JMP MAIN ORG 000BH JMP TIME0 ORG 0030HMAIN: MOV P1,#11111111B MOV TMOD,#00000110B ;T0,方式2, 8位计数器,计5个脉冲即中断 MOV TH0,#0FBH ;方式2为计数初值自动重装方式 MOV TL0,#0FBH SETB ET0 SETB EA SETB TR0 CLR P1.6 JMP $ TIME0: SETB P1.6 CPL P1.7 RETI END思考: (1)在中断服务子程序
11、中,为什么不需要重新装载计数初值? (2)若将T0换成T1,如何修改程序?实验五 等待计数结束实验一、实验目的熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机T0、T1计数器的“等待计数结束”的工作方式。二、实验设备 上海星研STAR ES598PCI实验仪一套,PC机一台。三、实验接线 (与实验四完全相同)A3区:P3.4(T0)B2区:单脉冲A3区:P1.6G6区:LED-1A3区:P1.7D1区:Ctrl(蜂鸣器)D1区:Ctrl(蜂鸣器)G6区:LED-3四、实验内容 (1)上、下拨动单脉冲开关5次再上、下拨动5次循环往复;(2)观察、记录、解释实验现象,彻底理
12、解实验程序。五、参考程序 ORG 0000H JMP MAIN ORG 0030HMAIN: MOV P1,#11111111B MOV TMOD,#00000101B ;T0,方式1,16位计数器 ;计5个脉冲后将P1.7取反 MOV TH0,#0FFH MOV TL0,#0FBH SETB TR0 CLR P1.6LOOP: JNB TF0,$ ;软件查询T0的溢出标志 CLR TF0 ;查到溢出标志随即清除 MOV TH0,#0FFH ;重新装载计数初值 MOV TL0,#0FBH SETB P1.6 CPL P1.7 JMP LOOP END思考: (1)“等待计数结束”这种方式有何优
13、缺点? (2)若将T0换成T1,如何修改程序? 实验六 定时到中断实验一、实验目的熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机T0、T1定时器的“定时到中断”工作方式。二、实验设备 上海星研STAR ES598PCI实验仪一套,PC机一台。 三、自行设计实验 已知AT89S52单片机的晶振频率为11.0592MHz,要求从P1.7引脚用定时的方式输出周期2s、占空比1:1的连续方波。 自己接线、编程。 实验七 内、外RAM数据传送实验一、实验目的熟悉星研集成环境软件的使用方法,学习51单片机的汇编指令,掌握51单片机内、外RAM的数据传输方法。二、实验设备 上海星研
14、STAR ES598PCI实验仪一套,PC机一台。 三、实验接线 A3区:P1.0G6区:LED-1A3区:P1.2G6区:LED-3三、实验内容(1)编制程序1:将内部RAM从Address1开始的16个字节内容,传送到外部RAM从Address2开始的16个单元里,然后再作比较。 Address1 DATA 30HAddress2 XDATA 1000H ORG 0000H LJMP STAR ORG 0100H STAR: MOV SP,#60H MOV R0,#Address1 MOV DPTR,#Address2 MOV R7,#10HSTAR1: MOV A,R0 ;传送 MOVX
15、 DPTR,A INC R0 INC DPTR DJNZ R7,STAR1 MOV R0,#Address1 MOV DPTR,#Address2 MOV R7,#10HSTAR2: MOV B,R0 ;比较 MOVX A,DPTR CJNE A,B,STAR3 INC R0 INC DPTR DJNZ R7,STAR2 CLR P1.0 SJMP $ ;传送正确 STAR3: CLR P1.2 SJMP $ ;传送错误 END(2)编制程序2:将外部RAM从Address2开始的16个字节内容,传送到内部RAM从Address1开始的16个单元里,然后再作比较。Address1 DATA 3
16、0HAddress2 XDATA 1000H ORG 0000H LJMP STAR ORG 0100H STAR: MOV SP,#60H MOV R0,#Address1 MOV DPTR,#Address2 MOV R7,#10HSTAR1: MOVX A,DPTR ;传送 MOV R0,A INC R0 INC DPTR DJNZ R7,STAR1 MOV R0,#Address1 MOV DPTR,#Address2 MOV R7,#10HSTAR2: MOV B,R0 ;比较 MOVX A,DPTR CJNE A,B,STAR3 INC R0 INC DPTR DJNZ R7,ST
17、AR2 CLR P1.0 SJMP $ ;传送正确 STAR3: CLR P1.2 SJMP $ ;传送错误 END(3)编制程序3:将外部RAM中的0000H1FFFH所有单元均清零。 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV P1,#0FFH MOV DPTR, #0000HAGAIN: CLR A MOVX DPTR,A INC DPTR MOV A, DPH CJNE A, #20H, AGAIN CLR P1.0 ;P1.0接LED-1 SJMP $ ;结束时绿灯亮 以上清零程序为一种方法,你还能想出其它方法吗?实验八 8255控制交通灯实验一、实
18、验目的熟练使用星研集成环境软件,学习51单片机汇编程序设计技巧,掌握8255芯片的工作方式0。二、实验设备上海星研STAR ES598PCI实验仪一套,PC机一台。 三、实验内容使用8255芯片的PA口控制8只LED指示灯,模拟交通信号灯。四、实验原理图五、实验接线B4区:CS、A0、A1A3区:CS1、A0、A1B4区:JP56(PA口)8芯排线(小号对大号)G6区:JP65六、参考程序COM_ADD XDATA 0F003HPA_ADD XDATA 0F000HPB_ADD XDATA 0F001HPC_ADD XDATA 0F002H ORG 0000H LJMP STAR ORG 01
19、00HSTAR: MOV SP,#60H MOV DPTR,#COM_ADD MOV A,#80H ;PA、PB、PC为基本输出模式 MOVX DPTR,A MOV DPTR,#PA_ADD ;灯全熄灭 MOV A,#0FFH MOVX DPTR,A START1: MOV A,#37H MOVC A,A+PC MOVX DPTR,A ;东西绿灯,南北红灯 ACALL DL5S MOV R4,#6START2: MOV A,#30H MOVC A,A+PC MOVX DPTR,A ;东西绿灯闪烁,南北红灯 ACALL DL500ms MOV A,#29H MOVC A,A+PC MOVX DP
20、TR,A ACALL DL500ms DJNZ R4,START2 MOV A,#23H ;东西黄灯亮,南北红灯 MOVC A,A+PC MOVX DPTR,A ACALL DL3S MOV A,#1EH ;东西红灯,南北绿灯 MOVC A,A+PC MOVX DPTR,A ACALL DL5S MOV R4,#6START3: MOV A,#17H ;东西红灯,南北绿灯闪烁 MOVC A,A+PC MOVX DPTR,A ACALL DL500ms MOV A,#10H MOVC A,A+PC MOVX DPTR,A ACALL DL500ms DJNZ R4,START3 MOV A,#0
21、AH ;东西红灯,南北黄灯亮 MOVC A,A+PC MOVX DPTR,A ACALL DL3S SJMP START1 DB 01111110B ;东西绿灯,南北红灯 DB 11111110B ;东西绿灯闪烁,南北红灯 DB 10111110B ;东西黄灯亮,南北红灯 DB 11011011B ;东西红灯,南北绿灯 DB 11011111B ;东西红灯,南北绿灯闪烁 DB 11011101B ;东西红灯,南北黄灯亮DL500ms: MOV R5,#25DL500ms1: MOV R6,#100DL500ms2: MOV R7,#100 DJNZ R7,$ DJNZ R6,DL500ms2
22、DJNZ R5,DL500ms1 RETDL3S: MOV R4,#6DL3S1: LCALL DL500ms DJNZ R4,DL3S1 RET DL5S: MOV R4,#10DL5S1: LCALL DL500ms DJNZ R4,DL5S1 RET END 思考: (1)若将PA口换成PB或PC口,如何修改程序? (2)8255的输出口可以读出内容进行修改,然后再回送,你知道吗? 实验九 8255的PC口综合实验一、实验目的熟练使用星研集成环境软件,学习51单片机汇编程序设计技巧,掌握8255芯片PC口的输入、输出方式以及位控方式,巩固外部中断的使用方法。二、实验设备上海星研STAR
23、ES598PCI实验仪一套,PC机一台。 三、实验接线拔掉实验八的8芯排线:B4区:CS、A0、A1A3区:CS1、A0、A1B4区:PC0、PC1G6区:LED-1、LED-2(K1、K2的下面)B4区:PC6、PC7G6区:K7、K8A3区:INT0G6区:K5A3区:P1.7D1区: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-
24、1又闪烁10次,如此循环往复;(4)随机地将K5拨上,蜂鸣器立即报警;(5)将K5拨下时,报警解除。六、参考程序 COM_ADD XDATA 0F003H ;8255的控制口地址PC_ADD XDATA 0F002H ;8255的PC口地址 ORG 0000H JMP MAIN ORG 0003H JMP ITR0 ORG 0100HMAIN: MOV SP,#70H MOV PSW,#00H CLR IT0 ;中断0电平触发 SETB PX0 ;中断0高优先级 SETB EX0 ;中断0允许 SETB EA ;总中断允许 MOV DPTR,#COM_ADD ;8255控制口地址 MOV A,
25、#10001000B ;PA、PB、PC0-3为基本输出模式 MOVX DPTR,A ;PC4-7为基本输入模式 MOV DPTR,#PC_ADD ;PC口地址 MOV A,#11111111B ;PC口输出全1 MOVX DPTR,A LOOP1: MOV DPTR,#PC_ADD ;PC口地址 MOVX A,DPTR ;读PC口 JB ACC.6,LOOP1 MOV B,#10D ;PC6=0AGAIN1: MOV DPTR,#COM_ADD MOV A,#01110000B ;PC0=0 MOVX DPTR,A CALL DELAY MOV DPTR,#COM_ADD MOV A,#01
26、110001B ;PC0=1 MOVX DPTR,A CALL DELAY DJNZ B,AGAIN1 LOOP2: MOV DPTR,#PC_ADD ;PC口地址 MOVX A,DPTR ;读PC口 JB ACC.7,LOOP2 MOV B,#10D ;PC7=0AGAIN2: MOV DPTR,#COM_ADD MOV A,#01110010B ;PC1=0 MOVX DPTR,A CALL DELAY MOV DPTR,#COM_ADD MOV A,#01110011B ;PC1=1 MOVX DPTR,A CALL DELAY DJNZ B,AGAIN2 JMP LOOP1 DELAY: MOV R5,#25DL1: MOV R6,#100DL2: MOV R7,#100 DJNZ R7,$ DJNZ R6,DL2 DJNZ R5,DL1 RET ITR0: CLR
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1