1、习习 题题 讲讲 解解第1页第第4章章 习题讲解习题讲解1.P98 第第12题题MOV R0,#0A7H ;R0=0A7H,A=XXCH A,R0 ;A=0A7H,R0=XSWAP A ;A=7AH,R0=XXCH A,R0 ;R0=7AH,A=X2,P98,第第15题题 若执行若执行ADDC A,B 指令,指令,A=37H,CY=1;若执行若执行SUBB A,B 指令,指令,A=3BH,CY=0第2页3 3,P99,P99,第第第第1818题题题题 MOV 30H,#0A4H ;30H=A4H MOV 30H,#0A4H ;30H=A4H MOV A,#0D6H ;A=0D6H MOV A,
2、0D6H ;A=0D6H MOV R0,#30H ;R0=30H MOV R0,#30H ;R0=30H MOV R2,#47H ;R2=47H MOV R2,#47H ;R2=47H ANL A,R2 ;A=46H ANL A,R2 ;A=46H ORL A,R0 ;A=E6H ORL A,R0 ;A=E6H SWAP A ;A=6EH SWAP A ;A=6EH CPL A ;A=91H CPL A ;A=91H XRL A,#0FFH ;A=6EH XRL A,#0FFH ;A=6EH ORL 30H,A ;30H=EEH ORL 30H,A ;30H=EEH 第3页4 4,P100,
3、P100,第第第第2727题题题题 MOV DPTR,#2100H MOVX A,DPTR ORL A,#0F0H ANL A,#0F0H MOVX DPTR,A 其实:其实:MOV DPTR,#2100H MOV A,#0F0H MOVX DPTR,A 第4页第第5章章 习题讲解习题讲解1,P130 第第6题题MOV 30H,#0MOV 31H,#0MOV 32H,#0MOV DPTR,#HMOV R7,#100LOOP:MOVX A,DPTRINC DPTRJNZ L1第5页INC 32H ;=0SJMP L3L1:JB ACC.7,L2INC 30H ;0SJMP L3L2:INC 31
4、H ;0L3:DJNZ R7,LOOP SJMP$第6页2 2,P130 P130 第第第第1212题题题题MOV R2,#10MOV R2,#10MOV R3,#02HMOV R3,#02HMOV R4,#00HMOV R4,#00HMOV R5,#03HMOV R5,#03HMOV R6,#00HMOV R6,#00HLOOP:MOV DPH,R3LOOP:MOV DPH,R3MOV DPL,R4MOV DPL,R4MOVX A,DPTRMOVX A,DPTR第7页ANL A,#0FHANL A,#0FHSWAP ASWAP AXCH A,BXCH A,BINC DPTRINC DPTRM
5、OVX A,DPTRMOVX A,DPTRANL A,#0FHANL A,#0FHORL A,BORL A,BINC DPTRINC DPTRMOV R3,DPHMOV R3,DPHMOV R4,DPTRMOV R4,DPTR 第8页MOV DPH,R5MOV DPH,R5MOV DPL,R6MOV DPL,R6MOVX DPTR,AMOVX DPTR,AINC DPTRINC DPTRMOV R5,DPHMOV R5,DPHMOV R6,DPLMOV R6,DPLDJNZ R2,LOOPDJNZ R2,LOOPSJMP$SJMP$第9页另一个解法:另一个解法:另一个解法:另一个解法:at89
6、s51at89s51含有双数据指针含有双数据指针含有双数据指针含有双数据指针MOV R2,#10MOV R2,#10MOV DPTR,#0200HMOV DPTR,#0200HSETB DPS ;SETB DPS ;(AUXR1.0AUXR1.0),P50 ,P50 MOV DPTR,#0300HMOV DPTR,#0300HLOOP:CLR DPSLOOP:CLR DPSMOVX A,DPTRMOVX A,DPTR ANL A,#0FH ANL A,#0FHSWAP ASWAP AXCH A,BXCH A,B第10页INC DPTRINC DPTRMOVX A,DPTRMOVX A,DPTR
7、ANL A,#0FHANL A,#0FHORL A,BORL A,BINC DPTRINC DPTR SETB DPS SETB DPSMOVX DPTR,AMOVX DPTR,AINC DPTRINC DPTRDJNZ R2,LOOPDJNZ R2,LOOP CLR DPS CLR DPSSJMP$SJMP$第11页3 3,P131 P131 第第第第1717题题题题MOV R7,#33MOV R7,#33MOV R0,#40HMOV R0,#40HMOV DPTR,#2540HMOV DPTR,#2540HLOOP:MOV A,R0LOOP:MOV A,R0MOVX DPTR,AMOVX
8、DPTR,A INC R0 INC R0INC DPTRINC DPTRDINZ R7,LOOPDINZ R7,LOOPSJMP$SJMP$第12页第第6章章 习题讲解习题讲解1.1.设设设设MCS-51MCS-51单片机晶振频率为单片机晶振频率为单片机晶振频率为单片机晶振频率为12MHZ12MHZ,试用单片机内部定,试用单片机内部定,试用单片机内部定,试用单片机内部定时器方式产生频率为时器方式产生频率为时器方式产生频率为时器方式产生频率为10KHZ10KHZ等宽矩形方波信号。等宽矩形方波信号。等宽矩形方波信号。等宽矩形方波信号。ORG 0000H ORG 0000H MOV TMOD,#02
9、H MOV TMOD,#02H MOV TL0,#0CEH ;T=100us MOV TL0,#0CEH ;T=100us,定时,定时,定时,定时50us50us MOV TH0,#0CEH MOV TH0,#0CEH SETB TR0 SETB TR0LOOP:JNB TF0,$LOOP:JNB TF0,$CLR TF0 CLR TF0 CPL P1.0 CPL P1.0 AJMP LOOP AJMP LOOP END END若为方式若为方式若为方式若为方式0 0:初值为初值为初值为初值为FE0EHFE0EH;若为方式若为方式若为方式若为方式1 1:初值为初值为初值为初值为FFCEHFFCE
10、H;需要重装初值。需要重装初值。需要重装初值。需要重装初值。第13页2.已知已知80C51单片机系统时钟频率为单片机系统时钟频率为6MHZ,请利用定时器,请利用定时器T0和和P1.2输出矩输出矩形脉冲。形脉冲。参考程序:参考程序:ORG 0000H MOV TMOD,#02H ;定时模式定时模式2 MOV TH0,#0E7H ;初始值初始值 MOV TL0,#0E7H SETB TR0定时定时定时定时50us50us第14页 L1:SETB P1.2 MOV R0,#7 DEL:JBC TF0,REP AJMP DEL REP:CLR P1.2 DJNZ R0,DEL AJMP L1 END
11、第15页3.3.设设设设MCS-51MCS-51单片机晶振频率为单片机晶振频率为单片机晶振频率为单片机晶振频率为6MHZ6MHZ,以计数器,以计数器,以计数器,以计数器T0T0进行外部事件计数,每计数进行外部事件计数,每计数进行外部事件计数,每计数进行外部事件计数,每计数10001000个外部事件输入脉个外部事件输入脉个外部事件输入脉个外部事件输入脉冲后,计数器冲后,计数器冲后,计数器冲后,计数器T1T1开始开始开始开始2ms2ms定时,定时时间到后,定时,定时时间到后,定时,定时时间到后,定时,定时时间到后,T0T0又开始计数,如此周而复始地工作。又开始计数,如此周而复始地工作。又开始计数,
12、如此周而复始地工作。又开始计数,如此周而复始地工作。参考程序:参考程序:参考程序:参考程序:ORG 0000H ORG 0000H MOV TMOD,#15H ;MOV TMOD,#15H ;计数器工作模式计数器工作模式计数器工作模式计数器工作模式LOOP:MOV TL0,#18H ;65536-1000LOOP:MOV TL0,#18H ;65536-1000 MOV TH0,#0FCH MOV TH0,#0FCH SETB TR0 SETB TR0 JNB TF0,$;JNB TF0,$;等候计数等候计数等候计数等候计数10001000次次次次 CLR TR0 CLR TR0若为方式若为方
13、式若为方式若为方式0 0:TMODTMOD14H14H,初值为,初值为,初值为,初值为E018HE018H;不适适用方式;不适适用方式;不适适用方式;不适适用方式2 2第16页 CLR TF0CLR TF0 MOV TL1,#18H ;MOV TL1,#18H ;定时定时定时定时2ms2ms MOV TH1,#0FCH MOV TH1,#0FCH SETB TR1 SETB TR1 JNB TF1,$;JNB TF1,$;等候等候等候等候1ms1ms时间到时间到时间到时间到 CLR TR1 CLR TR1 CLR TF1 CLR TF1 AJMP LOOP ;AJMP LOOP ;循环重复循环
14、重复循环重复循环重复 END END若为方式若为方式若为方式若为方式0 0:初值为:初值为:初值为:初值为E018HE018H;不适适;不适适;不适适;不适适用方式用方式用方式用方式2 2第17页第第7章章 习题讲解习题讲解1.1.在在在在80C5180C51应用系统总时钟频率为应用系统总时钟频率为应用系统总时钟频率为应用系统总时钟频率为6MHZ6MHZ,现需利用,现需利用,现需利用,现需利用定时器定时器定时器定时器T1T1产生波特率为产生波特率为产生波特率为产生波特率为1200bps1200bps。请计算初值,实。请计算初值,实。请计算初值,实。请计算初值,实际得到波特率误差是多少?际得到波
15、特率误差是多少?际得到波特率误差是多少?际得到波特率误差是多少?波特率发生器波特率发生器波特率发生器波特率发生器T1T1采取工作方式采取工作方式采取工作方式采取工作方式2 2,波特率不加倍,波特率不加倍,波特率不加倍,波特率不加倍(即(即(即(即SMODSMOD0 0),计算时间常数(初始值)。),计算时间常数(初始值)。),计算时间常数(初始值)。),计算时间常数(初始值)。TL1 TL1TH1TH1X X 2562562 2SMODSMODfosc/(3212B)fosc/(3212B)243243F3HF3H(其中(其中(其中(其中SMODSMOD0 0)实际波特率实际波特率实际波特率实
16、际波特率B(20/32)fosc/12(28243)1201.923(误差(误差0.16)第18页2.2.以以以以80C5180C51串行口按工作方式串行口按工作方式串行口按工作方式串行口按工作方式3 3进行串行数据通讯。假定波特进行串行数据通讯。假定波特进行串行数据通讯。假定波特进行串行数据通讯。假定波特率为率为率为率为1200bps1200bps,第,第,第,第9 9位作为奇校验位,以中止方式传送数据,位作为奇校验位,以中止方式传送数据,位作为奇校验位,以中止方式传送数据,位作为奇校验位,以中止方式传送数据,请编写通讯程序。请编写通讯程序。请编写通讯程序。请编写通讯程序。假定晶振频率为假定
17、晶振频率为假定晶振频率为假定晶振频率为11.0592MHZ11.0592MHZ。(1 1)发送程序:)发送程序:)发送程序:)发送程序:ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 0023H ORG 0023H AJMP INTS AJMP INTS ORG 0030H ORG 0030HMAIN:MOV SCON,#0C0H ;MAIN:MOV SCON,#0C0H ;串行口方式串行口方式串行口方式串行口方式3 3 MOV TMOD,#20H ;T1 MOV TMOD,#20H ;T1方式方式方式方式2 2定时定时定时定时 MOV TL1,#0E8
18、H ;MOV TL1,#0E8H ;写入写入写入写入T1T1时间常数时间常数时间常数时间常数 MOV TH1,#0E8H MOV TH1,#0E8H SETB TR1 SETB TR1 ;开启开启开启开启T1T1 第19页 MOV R0 MOV R0,#30H ;#30H ;设数据指针设数据指针设数据指针设数据指针 MOV R7 MOV R7,#20H ;#20H ;数据长度数据长度数据长度数据长度 MOV IE,#90H MOV IE,#90H MOV A MOV A,R0 ;R0 ;开启发送一次开启发送一次开启发送一次开启发送一次 JB P,SEND1 JB P,SEND1 SETB TB
19、8 SETB TB8 SEND1:MOV SBUF SEND1:MOV SBUF,A ;A ;开启一次发送开启一次发送开启一次发送开启一次发送 INC R0 INC R0 SJMP$SJMP$INTS:CLR TI INTS:CLR TI DJNZ R7,OUT ;DJNZ R7,OUT ;是否发送完?是否发送完?是否发送完?是否发送完?MOV A MOV A,R0 ;R0 ;取一个字符取一个字符取一个字符取一个字符 JB P,SEND2 ;JB P,SEND2 ;加奇校验加奇校验加奇校验加奇校验 SETB TB8 SETB TB8 AJMP INTS3AJMP INTS3第20页SEND2:
20、SEND2:CLR TR8CLR TR8SEND3:MOV SBUFSEND3:MOV SBUF,A ;A ;开启一次发送开启一次发送开启一次发送开启一次发送 INC R0 ;INC R0 ;修改指针修改指针修改指针修改指针 OUT:RETI OUT:RETI END END(2 2)接收程序)接收程序)接收程序)接收程序:ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 0023H ORG 0023H AJMP INTS AJMP INTS ORG 0030H ORG 0030HMAIN:MOV SCON,#0D0H ;MAIN:MOV SCON,#0D
21、0H ;串行口方式串行口方式串行口方式串行口方式3 3 MOV TMOD,#20H ;T1 MOV TMOD,#20H ;T1方式方式方式方式2 2定时定时定时定时 MOV TL1,#0E8H ;MOV TL1,#0E8H ;写入写入写入写入T1T1时间常数时间常数时间常数时间常数 MOV TH1,#0E8H MOV TH1,#0E8H第21页 SETB TR1 SETB TR1 ;开启开启开启开启T1T1 MOV R0 MOV R0,#30H ;#30H ;设数据指针设数据指针设数据指针设数据指针 MOV IE,#90H MOV IE,#90H SJMP$SJMP$INTS:MOV A IN
22、TS:MOV A,SBUFSBUF CLR RI CLR RI JB P,INTS1 ;JB P,INTS1 ;奇校验奇校验奇校验奇校验 JNB RB8,ERRORJNB RB8,ERROR AJMP INTS2AJMP INTS2 INTS1:INTS1:JB RB8,ERRORJB RB8,ERROR INTS2:MOV R0,A ;INTS2:MOV R0,A ;保留一个字符保留一个字符保留一个字符保留一个字符 INC R0 INC R0 RETI RETI ERROR:SETB 00H ;ERROR:SETB 00H ;报错程序报错程序报错程序报错程序 RETI RETI END EN
23、D第22页3.以中止方式设计单片微机秒、分发生器。以中止方式设计单片微机秒、分发生器。假定假定P1.0每秒产生一个机器周期正脉冲,每秒产生一个机器周期正脉冲,P1.1实现每分钟产生一个机器周期正脉冲。实现每分钟产生一个机器周期正脉冲。加上必要伪指令和注释。假定晶振频率为加上必要伪指令和注释。假定晶振频率为12MHZ。解:解:要求定时时间为要求定时时间为1s,若采取定时模式,若采取定时模式1,依据公式:定时时间依据公式:定时时间T=(65536初始值初始值x)Tcy,可知最大定时时间为,可知最大定时时间为65.536ms。若。若定时定时10ms,则必须有,则必须有100个个10ms,即,即100
24、次次溢出中止为溢出中止为1s,10ms时间常数为时间常数为D8F0H。第23页 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 000BH ORG 000BH AJMP INT_T0 AJMP INT_T0 ORG 0030H ORG 0030HMAIN:MOV TMOD,#01HMAIN:MOV TMOD,#01H MOV TL0,#0F0H ;MOV TL0,#0F0H ;定时定时定时定时10ms10ms MOV TH0,#0D8H MOV TH0,#0D8H SETB TR0SETB TR0 MOV R6,#00H MOV R6,#00H MOV
25、R7,#00H MOV R7,#00H第24页 CLR P1.0 CLR P1.0 CLR P1.1 CLR P1.1 SETB ET0 SETB ET0 SETB EA SETB EA SJMP$SJMP$INT_T0:MOV TL0,#0F0HINT_T0:MOV TL0,#0F0H MOV TH0,#0D8H MOV TH0,#0D8H INC R6 INC R6 CJNE R6,#100,OUTCJNE R6,#100,OUT ;定时定时定时定时1 1秒钟秒钟秒钟秒钟 MOV R6,#00H ;MOV R6,#00H ;为下个周期作准备为下个周期作准备为下个周期作准备为下个周期作准备第
26、25页 SETB P1.0 ;SETB P1.0 ;正脉冲输出正脉冲输出正脉冲输出正脉冲输出 CLR P1.0 CLR P1.0 INC R7 INC R7 CJNE R7,#60,OUTCJNE R7,#60,OUT ;定时定时定时定时1 1分钟分钟分钟分钟 MOV R7,#00H ;MOV R7,#00H ;为下个周期作准备为下个周期作准备为下个周期作准备为下个周期作准备 SETB P1.1 SETB P1.1 ;正脉冲输出正脉冲输出正脉冲输出正脉冲输出 CLR P1.1 CLR P1.1 OUT:RETI OUT:RETI END END第26页试验知识预备试验知识预备 1.1.单版微机
27、试验装置相当于一个仿真器,能够仿真单版微机试验装置相当于一个仿真器,能够仿真单版微机试验装置相当于一个仿真器,能够仿真单版微机试验装置相当于一个仿真器,能够仿真MCS-51MCS-51单片机绝大部分硬件功效;单片机绝大部分硬件功效;单片机绝大部分硬件功效;单片机绝大部分硬件功效;2.2.像仿真器一样,我们能够在试验装置上进行软、像仿真器一样,我们能够在试验装置上进行软、像仿真器一样,我们能够在试验装置上进行软、像仿真器一样,我们能够在试验装置上进行软、硬件调试,观察控制硬件执行结果或每条指令执硬件调试,观察控制硬件执行结果或每条指令执硬件调试,观察控制硬件执行结果或每条指令执硬件调试,观察控制
28、硬件执行结果或每条指令执行结果;行结果;行结果;行结果;3.3.应该养成自己动手习惯应该养成自己动手习惯应该养成自己动手习惯应该养成自己动手习惯,只有多动手才有可能深,只有多动手才有可能深,只有多动手才有可能深,只有多动手才有可能深入掌握软、硬件知识;入掌握软、硬件知识;入掌握软、硬件知识;入掌握软、硬件知识;4.4.刚开始接触必定会有很多问题,应该学会自己分刚开始接触必定会有很多问题,应该学会自己分刚开始接触必定会有很多问题,应该学会自己分刚开始接触必定会有很多问题,应该学会自己分析问题,处理问题,不要急于问老师;析问题,处理问题,不要急于问老师;析问题,处理问题,不要急于问老师;析问题,处
29、理问题,不要急于问老师;5.5.做试验前要认真准备,编好源程序,有效利用担做试验前要认真准备,编好源程序,有效利用担做试验前要认真准备,编好源程序,有效利用担做试验前要认真准备,编好源程序,有效利用担心试验时间。心试验时间。心试验时间。心试验时间。第27页试验基本步骤(试验基本步骤(试验基本步骤(试验基本步骤(1 1):):):):1.1.开启开启开启开启LCAETLCAET软件。软件。软件。软件。2.FileNew2.FileNew,建立新文件;输入汇编源程序。,建立新文件;输入汇编源程序。,建立新文件;输入汇编源程序。,建立新文件;输入汇编源程序。3.3.另存为另存为另存为另存为*.asm
30、asm,此时操作码显示蓝色。,此时操作码显示蓝色。,此时操作码显示蓝色。,此时操作码显示蓝色。注意:汇编程序后缀必须为注意:汇编程序后缀必须为注意:汇编程序后缀必须为注意:汇编程序后缀必须为asmasm,不然不能正确编译;,不然不能正确编译;,不然不能正确编译;,不然不能正确编译;文件名不能太长,应小于文件名不能太长,应小于文件名不能太长,应小于文件名不能太长,应小于8 8个字符;存放路径不能为汉个字符;存放路径不能为汉个字符;存放路径不能为汉个字符;存放路径不能为汉字;字;字;字;4.4.在在在在“编译编译编译编译”菜单栏,使用菜单栏,使用菜单栏,使用菜单栏,使用编译当前文件编译当前文件
31、编译当前文件编译当前文件命令,对源程命令,对源程命令,对源程命令,对源程序进行编译,下面信息栏会提醒语法错误位置和类型,序进行编译,下面信息栏会提醒语法错误位置和类型,序进行编译,下面信息栏会提醒语法错误位置和类型,序进行编译,下面信息栏会提醒语法错误位置和类型,若有错,修改后继续编译,直至没有错误为止。若有错,修改后继续编译,直至没有错误为止。若有错,修改后继续编译,直至没有错误为止。若有错,修改后继续编译,直至没有错误为止。注意:其中若提醒不能与试验机通讯,可打开试验装置注意:其中若提醒不能与试验机通讯,可打开试验装置注意:其中若提醒不能与试验机通讯,可打开试验装置注意:其中若提醒不能与试
32、验机通讯,可打开试验装置电源(右上角有电源开关);若已经打开,请按电源(右上角有电源开关);若已经打开,请按电源(右上角有电源开关);若已经打开,请按电源(右上角有电源开关);若已经打开,请按RSTRST键,使试验仪恢复,利于下载通讯键,使试验仪恢复,利于下载通讯键,使试验仪恢复,利于下载通讯键,使试验仪恢复,利于下载通讯。第28页试验基本步骤(试验基本步骤(试验基本步骤(试验基本步骤(2 2):):):):5.5.在断电状态下,按照试验指导书要求正确连线,在断电状态下,按照试验指导书要求正确连线,在断电状态下,按照试验指导书要求正确连线,在断电状态下,按照试验指导书要求正确连线,不要随意乱插
33、乱放,同时因导线轻易损坏,请轻不要随意乱插乱放,同时因导线轻易损坏,请轻不要随意乱插乱放,同时因导线轻易损坏,请轻不要随意乱插乱放,同时因导线轻易损坏,请轻拔轻插,不能硬拉猛攥。拔轻插,不能硬拉猛攥。拔轻插,不能硬拉猛攥。拔轻插,不能硬拉猛攥。6.6.打开试验装置电源(右上端),再次使用打开试验装置电源(右上端),再次使用打开试验装置电源(右上端),再次使用打开试验装置电源(右上端),再次使用编译当编译当编译当编译当前文件前文件前文件前文件命令,使得将机器码传送到试验仪。命令,使得将机器码传送到试验仪。命令,使得将机器码传送到试验仪。命令,使得将机器码传送到试验仪。注意:若试验装置已经打开运行
34、请按注意:若试验装置已经打开运行,请按注意:若试验装置已经打开运行,请按注意:若试验装置已经打开运行,请按RSTRST键,使键,使键,使键,使试验仪恢复,利于下载通讯。试验仪恢复,利于下载通讯。试验仪恢复,利于下载通讯。试验仪恢复,利于下载通讯。7.7.在在在在“调试调试调试调试”菜单栏,使用菜单栏,使用菜单栏,使用菜单栏,使用全速运行全速运行全速运行全速运行或或或或单步运行单步运行单步运行单步运行命命命命令,执行程序,查看运行结果,检验内在逻辑错令,执行程序,查看运行结果,检验内在逻辑错令,执行程序,查看运行结果,检验内在逻辑错令,执行程序,查看运行结果,检验内在逻辑错误,有错则返回第误,
35、有错则返回第误,有错则返回第误,有错则返回第4 4步继续修改汇编源程序。步继续修改汇编源程序。步继续修改汇编源程序。步继续修改汇编源程序。第29页注意:注意:(1 1)若不能正常通讯,可能原因是:右下方串行通讯波特率)若不能正常通讯,可能原因是:右下方串行通讯波特率)若不能正常通讯,可能原因是:右下方串行通讯波特率)若不能正常通讯,可能原因是:右下方串行通讯波特率(96009600)开关选择错误;或串口连接导线松动。)开关选择错误;或串口连接导线松动。)开关选择错误;或串口连接导线松动。)开关选择错误;或串口连接导线松动。(2 2)若程序确定无误,而发光二极管显示不正常,可能是导线短)若程序确
36、定无误,而发光二极管显示不正常,可能是导线短)若程序确定无误,而发光二极管显示不正常,可能是导线短)若程序确定无误,而发光二极管显示不正常,可能是导线短路,请更换或叠加导线(个别不亮不影响观察结果,则无需更路,请更换或叠加导线(个别不亮不影响观察结果,则无需更路,请更换或叠加导线(个别不亮不影响观察结果,则无需更路,请更换或叠加导线(个别不亮不影响观察结果,则无需更换);若换);若换);若换);若8 8个发光管全都不受控制,则可能是芯片损坏,请联个发光管全都不受控制,则可能是芯片损坏,请联个发光管全都不受控制,则可能是芯片损坏,请联个发光管全都不受控制,则可能是芯片损坏,请联络老师更换。络老师
37、更换。络老师更换。络老师更换。(3 3)在输入指令过程中,要注意指令完整性,不要遗漏)在输入指令过程中,要注意指令完整性,不要遗漏)在输入指令过程中,要注意指令完整性,不要遗漏)在输入指令过程中,要注意指令完整性,不要遗漏“”、“END”“END”,区分数字,区分数字,区分数字,区分数字“0”“0”与字母与字母与字母与字母“o”“o”、“O”“O”,(4 4)程序编写完成后,应该自己先认真分析程序执行路径,查找)程序编写完成后,应该自己先认真分析程序执行路径,查找)程序编写完成后,应该自己先认真分析程序执行路径,查找)程序编写完成后,应该自己先认真分析程序执行路径,查找显著逻辑错误,以免产生莫
38、名错误。尤其注意子程序不能放在显著逻辑错误,以免产生莫名错误。尤其注意子程序不能放在显著逻辑错误,以免产生莫名错误。尤其注意子程序不能放在显著逻辑错误,以免产生莫名错误。尤其注意子程序不能放在程序起始部位,同时要尤其注意延时程序循环构架。程序起始部位,同时要尤其注意延时程序循环构架。程序起始部位,同时要尤其注意延时程序循环构架。程序起始部位,同时要尤其注意延时程序循环构架。第30页试验一(试验一(1)试验要求试验要求:(1)P1口作为输出口,接口作为输出口,接8只发光二极管,只发光二极管,要求编程使放光二极管循环点亮;要求编程使放光二极管循环点亮;(2)P1口做输入口,接口做输入口,接8个扭子
39、开关,以试个扭子开关,以试验机上验机上74LS273作为输出口(接作为输出口(接8个发光管)个发光管),要求编写程序使得发光管状态能够反应出,要求编写程序使得发光管状态能够反应出开关状态;开关状态;试验目标试验目标:学习并行口使用方法;:学习并行口使用方法;请参考程序框图自己编程!请参考程序框图自己编程!第31页注注 意意(1)这里将这里将74LS273作为一个总线扩展,它作为一个总线扩展,它输出端输出端Q1Q8相当于相当于1个扩展片外个扩展片外RAM单单元元,它地址决定于它使能端,它地址决定于它使能端CLK,所以这,所以这里它地址是里它地址是8300H,必须使用,必须使用MOVX指令进指令进
40、行写操作;行写操作;(2)8个发光管经过个发光管经过74LS240直接连接到直接连接到P1口,这里口,这里74LS240 为非门驱动电路;为非门驱动电路;(3)人肉眼要能观察到两个状态间改变,必)人肉眼要能观察到两个状态间改变,必须有一足够时间间隔,不然感觉全部发光须有一足够时间间隔,不然感觉全部发光管全亮。管全亮。第32页参考程序(参考程序(1):):ORG 0000H MOV A,#01HROTATE:MOV P1,A ;点亮一个点亮一个LED RL A ;循环右移循环右移 LCALL DELAY ;延时延时 SJMP ROTATE 第33页DELAY:;DELAY:;延时子程序延时子程序
41、延时子程序延时子程序(1(1秒秒秒秒)MOV R0,#0AH MOV R0,#0AHDELAY1:MOV R1,#00HDELAY1:MOV R1,#00HDELAY2:MOV R2,#0B2HDELAY2:MOV R2,#0B2H DJNZ R2,$DJNZ R2,$DJNZ R1,DELAY2 DJNZ R1,DELAY2 DJNZ R0,DELAY1 DJNZ R0,DELAY1 RET RET END END第34页参考程序(参考程序(2):):ORG 0000H ORG 0000H MOV DPTR,#8300H ;MOV DPTR,#8300H ;并行输出口地址并行输出口地址并行输
42、出口地址并行输出口地址READ:MOV P1,#0FFH ;READ:MOV P1,#0FFH ;因因因因P1P1口是准双向口口是准双向口口是准双向口口是准双向口,所以所以所以所以 ;把把把把P1P1口作为输入口时口作为输入口时口作为输入口时口作为输入口时,;应先置高电平应先置高电平应先置高电平应先置高电平 MOV A,P1 ;MOV A,P1 ;读开关状态读开关状态读开关状态读开关状态 MOVX DPTR,A ;MOVX DPTR,A ;把读入数据输出把读入数据输出把读入数据输出把读入数据输出 AJMP READ AJMP READ END END返回返回返回返回第35页试验一(试验一(2)
43、试验要求试验要求:利用:利用P3口输出高低电平,控制继口输出高低电平,控制继电器开合,实现对外部功率元件控制;电器开合,实现对外部功率元件控制;试验目标试验目标:掌握位操作控制使用方法;:掌握位操作控制使用方法;注意注意:继电器是一个非常好功率控制元件,:继电器是一个非常好功率控制元件,能够起到弱电能够起到弱电强电桥梁作用,我们这里是强电桥梁作用,我们这里是控制继电器线圈通电,从而控制其触点开合。控制继电器线圈通电,从而控制其触点开合。一样两个状态之间必须有足够时间间隔,不一样两个状态之间必须有足够时间间隔,不然不能使线圈状态改变。然不能使线圈状态改变。请参考程序框图自己编程!请参考程序框图自
44、己编程!第36页参考程序:参考程序:ORG 0000HORG 0000HJD:CPL P3.5 ;JD:CPL P3.5 ;继电器状态继电器状态继电器状态继电器状态(吸合吸合吸合吸合/分开分开分开分开)切切切切换换换换 LCALL DELAY;LCALL DELAY;延时延时延时延时 SJMP JD SJMP JDDELAY:DELAY:如上例如上例如上例如上例 RET RET END END返回返回返回返回第37页试验二试验二试验要求试验要求:要求每:要求每1秒钟切换一个发光管显示秒钟切换一个发光管显示方式(方式(8个发光管经过个发光管经过74LS240直接连接到直接连接到P1口,这里口,这
45、里74LS240 为非门驱动电路),共为非门驱动电路),共有有8种不一样显示方式,然后是重复出现这种不一样显示方式,然后是重复出现这个个8个状态;个状态;试验目标试验目标:掌握单片机内部定时器使用方法:掌握单片机内部定时器使用方法和子程序使用方法;和子程序使用方法;第38页注注 意意 晶振为晶振为11.0592MHZ,定时器最大定时时间,定时器最大定时时间为为216Tcy71111us71ms。这里我们将定。这里我们将定时器时器1工作于方式工作于方式1,能够产生一个,能够产生一个50ms时时基,所以要想得到基,所以要想得到1秒延时,必须有秒延时,必须有20个个50ms发生,即统计到发生,即统计
46、到20个定时,就为个定时,就为1秒。秒。请参考程序框图自己编程!请参考程序框图自己编程!若有时间,请将试验一修改成若有时间,请将试验一修改成采取定时器定时方式控制。采取定时器定时方式控制。第39页试验指导书修改实验目2,“中断处理程序”修改为“子程序”;删除实验说明4;实验框图,“中断子程序”修改为“子程序”,“中断返回”修改为“返回”。第40页参考程序:参考程序:ORG 0000HORG 0000H MOV TMOD,#10H ;MOV TMOD,#10H ;置置置置T1T1为方式为方式为方式为方式1 1 MOV TL1,#00H ;MOV TL1,#00H ;延时延时延时延时50mS50m
47、S时间常数时间常数时间常数时间常数 MOV TH1,#4CH MOV TH1,#4CH MOV 30H,#00H MOV 30H,#00H MOV R1,#00H MOV R1,#00H MOV DPTR,#TAB MOV DPTR,#TAB SETB TR1 SETB TR1第41页LL:JNB TF1LL:JNB TF1,$MOV TL1,#00H ;MOV TL1,#00H ;延时延时延时延时50mS50mS常数常数常数常数 MOV TH1,#4CH MOV TH1,#4CH CLR TF1 CLR TF1 INC R1 INC R1 CJNE R1,#20,LL CJNE R1,#20
48、LL MOV R1,#0 MOV R1,#0 ACALL LT1 ACALL LT1 AJMP LL AJMP LL第42页LT1:;LT1:;子程序子程序子程序子程序 MOV A,30H ;MOV A,30H ;置常数表偏移量置常数表偏移量置常数表偏移量置常数表偏移量 MOVC A,A+DPTR ;MOVC A,A+DPTR ;读常数表读常数表读常数表读常数表 MOV P1,A ;MOV P1,A ;送送送送P1P1口显示口显示口显示口显示 INC 30H INC 30H ANL 30H,#07H ANL 30H,#07H RET RET;LED;LED显示常数表显示常数表显示常数表显示常
49、数表TAB:TAB:DB 05H,0AH,50H,0A0H DB 05H,0AH,50H,0A0H DB 55H,0AAH,0FFH,00H DB 55H,0AAH,0FFH,00H END END第43页试验三试验三 外部中止外部中止试验要求试验要求试验要求试验要求:以按键为中止申请,每按键一次,切换:以按键为中止申请,每按键一次,切换:以按键为中止申请,每按键一次,切换:以按键为中止申请,每按键一次,切换双色灯显示颜色,红绿轮番显示。双色灯显示颜色,红绿轮番显示。双色灯显示颜色,红绿轮番显示。双色灯显示颜色,红绿轮番显示。试验目标试验目标试验目标试验目标:掌握单片机外部中止使用方法;:掌握
50、单片机外部中止使用方法;:掌握单片机外部中止使用方法;:掌握单片机外部中止使用方法;注意注意注意注意:74LS27374LS273地址仍为地址仍为地址仍为地址仍为8300H8300H;用开关发出外部中;用开关发出外部中;用开关发出外部中;用开关发出外部中止所需低电平信号,若采取电平触发方式,在中止所需低电平信号,若采取电平触发方式,在中止所需低电平信号,若采取电平触发方式,在中止所需低电平信号,若采取电平触发方式,在中止程序返回前,必须撤消低电平信号,不然将重止程序返回前,必须撤消低电平信号,不然将重止程序返回前,必须撤消低电平信号,不然将重止程序返回前,必须撤消低电平信号,不然将重复中止;若






