单片机复习参考
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
地址总线(AB):地址总线宽度为16位,因此外部存储器直接寻址范围为64KB。16位地址总线由P0口经地址锁存器提供低8位地址(A0-A7),P2口直接提供高8位地址(A8-A15)数据总线(DB):数据总线宽度为8位,由P0口提供
控制总线(CB):由P3口的第二功能状态和4根独立控制线RESET,EA,PSEN。
编程题类型2:并行口数据的读取,奇偶性判断,发光二极管控制
【习题3-22】用8031单片机的P1口做输出。经驱动电路接8个发光二极管,见图…当输出位为“1”时,发光二极管点亮;输出为“0”时,发光二极管为暗。试编制灯亮移位程序,令8个发光二极管每次亮一个,循环左移,一个一个地亮,循环不止。
编程题类型3:利用定时器/计数器控制输出方波(可能涉及中断)
【例题5-2】利用T0模式1产生一个50HZ的方波,由P1.0输出。
解:假设系统仍利用12MHZ晶体,则计数器初值X可由下式算得
(“2的16次方”-X) * “10的-6次方” =1/100
因而,X=55536=0D8F0H 若采用查询方式,则编程如下:
MOV TMOD,#01H ;设置定时器0模式1
SETB TR0
LOOP:MOV TH0,#0DBH
MOV TL0,#0F0H
JNB TF0,$
CLR TF0
CPL P1.0
SJMP LOOP
【习题5-7】已知51系列单片机的系统晶振频率为6MHZ,请利用定时器T1和P1.2输出矩形脉冲,其波形如下:
50us 350us
【例7-3】利用定时器T0定时,在P1.0端输出一方波,方波周期为20ms,已知晶振频率为12MHZ。
解:主程序如下:
ORG 0000H
LJMP 2000H
…
T0的中断服务程序:
ORG 000BH
AJMP 70H
…
ORG 70H
MOV TL0,#0F0H ;重赋初值
MOV TH0,#0D8H
CPL P1.0 ;输出取反
RETI
…
ORG 2000H
MOV TM0D,#01H ;设置T0为模式1
MOV TL0,#0D8H ;赋初值
MOV IE,#82H ;CPU开中断,T0开中断
SETP TR0 ;启动T0
HERE:SJMP TR0 ;循环等待定时间
…
【例7-4】利用定时器T0定时,在P1.0端输出一方波,方波周期为20ms,已知晶振频率为12MHZ。
解:主程序如下:
ORG 0000H
LJMP 2000H
…
T1的中断服务程序:
ORG 001BH
AJMP 100H
…
ORG 100H
MOV TH1,#0D8H ;重赋初值
MOV TL1,#0F0H
DJNZ 69H,TT1
MOV 69H,#100
DJNZ 79H,TT1
MOV 79H,#60
SETB 4FH
TT1: RETI ;中断返回
…
ORG 2000H
MOV TM0D,#10H ;设置T1为定时模式1
MOV TH1,#0D8H ;赋初值
MOV TL1,#0F0H
MOV IE,#88H ;CPU开中断,T1开中断
SETB TR1 ;启动T1工作
MOV 69H,#100 ;赋10ms计数初值
MOV 79H,#60 ;赋秒进行初值
CLR 4FH ;清标志位
TT:JNB 4FH,TT ;等1min时间到
CLR 4FH ;输出相反
AJMP TT ;反复循环
END