A-A+

已知fosc=6MHz 试编写程序 使P1.7输出如下连续矩形脉冲 见图5-1。

2022-08-13 22:18:32 问答库 阅读 199 次

问题详情

已知fosc=6MHz,试编写程序,使P1.7输出如下连续矩形脉冲,见图5-1。

参考答案

根据题目要求,设将T0用作定时器方式1,定时40ms。
①T0初值=216-40000μs/2μs=65536-20000=45536=B1E0H
②TMOD=00000001B
③编制程序如下:
ORG 0000H ;复位地址
IJMP STAT ;转初始化程序
ORG 000BH ;T0中断入口地址
LJMP IT0 ;转T0中断服务程序
ORC 1000H ;初始化程序首地址
STAT:CLR P1.7 ;输出低电平
MOV TMOD,#01H ;置T0定时器方式1
MOV TH0,#0B1H ;置T0初值,定时40ms
MOV TL0,#0E0H ;
SETB PT0 ;置T0为高优先级
SETB TR0 ;T0启动
SETB P1.7 ;输出高电平
SETB F0 ;置40ms标志
MOV R7,#9 ;置360ms计数器初值
MOV IE,#10000010B ;T0开中
LJMP MAIN ;转主程序,并等待中断
ORG 2000H ;T0中断服务程序首地址
IT0:MOV TH0,#0B1H ;重置T0初值40ms
MOV TL0,#0E0H ;
JB F0,IT01 ;有40ms标志,转
DJNZ R7,IT02 ;无40ms标志,判360ms到否?未到转返回
MOV R7,#9 ;360ms到,重置360ms计数器初值
IT01:CPL P1.7 ;输出波形取反
CPL F0 ;40ms标志取反
IT02: RFTI ;中断返回

考点:矩形,脉冲