SETB SETB TR0 SJMP $ T00:JNB ,QF
MOV TH0,#FFH MOV TL0,#0E7H SJMP DONE QF: MOV TH0,#0FFH
MOV TL0,#6AH DONE:CPL
RETI END
6-5 利用定时器来测量单次正脉冲宽度,采用何种方式可获得最大量程?设f0sc=6MHz,求允许测量的最大脉冲宽度是多少?
答:定时器方式1,最大脉冲宽度为2us*216=
6-6 试编制一程序,其功能为:当引脚的电平上跳时,对的输入脉冲进行计数;当引脚的电平下跳时,停止计数,并将计数值写入R6与R7。
解:接引脚,利用T0做计数器,工作于方式1,初值为0(T0未工作于中断方式)
ORG 0000H LJMP MAIN ;ORG 000BH ORG 0100H MAIN:
MOV SP,#60H MOV R6,#0 MOV R7,#0
MOV TMOD,#05H MOV TH0,#0 MOV TL0,#0 LOOP:JNB ,LOOP
SETB TR0 LOOP1:JB ,LOOP1
CLR TR0
MOV R6,TH0 MOV R7,TL0 SJMP $ END
6-7 试用中断技术设计一发光二极管LED闪烁电路,闪烁周期为2s,要求亮1s,再暗1s。 解:设接1发光二极管,低电平点亮;利用定时器T0,工作于定时器方式2,设系统频率为fosc=12MHz,则一个定时脉冲为1us,每次中断定时250us,则需要4000个中断实现1s的定时
利用R6,R7做软件计数器,初值分别为40,100;定时初值28-250=06H
ORG 0000H LJMP MAIN ORG 000BH LJMP T00 ORG 0100H
MAIN:MOV SP,#60H
MOV TMOD,#02H MOV TH0,#06H MOV TL0,#06H MOV R6,#40 MOV R7,#100 CLR SETB EA SETB ET0 SETB TR0 SJMP $
T00:DJNZ R6,DONE
MOV R6,#40 DJNZ R7,DONE MOV R7,#100 DONE:CPL RETI END
6-8 试用中断方法设计秒、分脉冲发生器,即由8031的每秒产生一个机器周期的正脉冲,由每分钟产生一个机器周期的正脉冲。
解:设系统时钟频率为12MHz,则一个计数脉冲为1us,利用T0做定时器记录50ms,计数初值为216-50000=3CB0H,利用R6,R7为软件计数器,初值为20,60,分别实现1s和1分钟的定时
ORG 0000H LJMP MAIN ORG 000BH LJMP T00 ORG 0100H
MAIN:MOV SP, #60H
MOV TMOD, #01H ;T0定时器,工作方式1 MOV TH0, #3CH
MOV TL0, #0B0H ;装入50ms的初始值 MOV R6,#20 MOV R7,#60
CLR ;,均输出低电平 CLR SETB EA SETB ET0
SETB TR0 ;中断允许,开始定时
SJMP $
T00: DJNZ R6,DONE ;R6-1=0,定时1秒时间到
SETB ;输出1us的高电平 CLR ;继续输出低电平 MOV R6,#20
DJNZ R7,DONE ;R7-1=0,定时1分钟时间到 SETB ;输出1us的高电平 CLR ;继续输出低电平 MOV R7,#60
DONE: MOV TH0,#3CH
MOV TL0,#0B0H RETI END
第七章串口工作方式0——关于I0接口的扩展
7-1利用74LS164并行输出8只发光二极管,将二极管从左至右点亮,时间间隔1S左右,并循环往复,画出电路原理图,编程实现。(P109)
ORG 0100H
MOV SCON,#00H MOV A,#80H LOOP:MOV SBUF,A
ACALL DEL1S RR A
SJMP LOOP
7-4利用MCS-51系列单片机的串行接口设计键盘输入电路(P111)
第九章 模拟量输入输出接口技术
9-1 在一个fosc为12MHz的8031单片机系统中,接有一片DAC0832,它的地址为7FFFH,输出电压为0-5V,请画出有关逻辑框图并编写程序,使其运行后能在示波器上显示锯齿波(设示波器X方向扫描频率为50us/格,Y方向扫描频率为1V/格)。 答:ORG 0000H
LJMP MAIN ORG 0100H MAIN:MOV SP,#60H
MOV DPTR,#7FFFH LOOP:MOV A,#00H
LOOP1:MOVX @DPTR,A ;2
INC A ;1 CJNE A,#0,LOOP1 ;2 SJMP LOOP END
输出波形为周期是255us,幅值为5V的锯齿波.
9-2 在fosc=12MHz的系统中,接有ADC0809,地址为7FF8H-7FFFH,试画出逻辑框图并编写ADC0809的初始化程序和定时取样通道2的程序(假设取样频率为1ms一次,每次取样4个数据,存于8031单片机内部RAM70h-73h中)。 答:连接0809的START端
ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV SP,#60H
MOV DPTR,#7FFAH MOV 70H,#0 MOV 71H,#0 MOV 72H,#0 MOV 73H,#0 MOV R2,#4 MOV R0,#70H LOOP:
ACALL DEL_1ms LOOP1: SETB NOP
相关推荐: