51单片机汇编语言编程:用定时器控制输出矩形波
扫描二维码
随时随地手机看文章
80C51单片机的时钟频率为12MHz,利用定时器T1和P1.0输出矩形脉冲。
波形只画出了2段:一段为100us 另一段为50us。
要完全的、完整的、详细的编写此程序的过程!谢谢
------------------------
最佳答案:
用一个定时器定时50us,也可以达到题目要求。
在我的空间里面有类似的问题和解答。
ORG 0000H
SJMP START
ORG 001BH ;T1中断入口.
SJMP T1_INT
START:
MOV TMOD, #20H ;设置T1定时方式2
MOV TH1, #206 ;自动重新装入方式.
MOV TL1, #206 ;定时时间
MOV IE, #10001000B ;开放总中断和T1中断.
SETB TR1 ;启动T1
MOV R2, #3 ;周期是3×50us
SJMP $ ;等着吧.
T1_INT:
SETB P1.0 ;输出高.
DJNZ R2, T1_END ;R2-1
CLR P1.0 ;减到0,就输出低电平.
MOV R2, #3
T1_END:
RETI ;中断返回.
END ;完.
------------------------
已知51单片机系统晶振频率为12MHz,请利用定时器1工作方式1,中断方式在P2.3输出频率为10Hz的方波。
写出定时设计过程及完整代码
问题补充:用汇编的 麻烦写一下
------------------------
最佳答案:
ORG 0000H
SJMP START
ORG 001BH ;T1中断入口.
SJMP T1_INT
START:
MOV TMOD, #10H ;设置T1定时方式1
MOV TH1, #(65536-50000) / 256 ;送入初始值.
MOV TL1, #(65536-50000) MOD 256 ;定时
MOV IE, #10001000B ;开放总中断和T1中断.
SETB TR1 ;启动T1
SJMP $ ;等着吧.
T1_INT:
MOV TH1, #(65536-50000) / 256 ;重新送入初始值.
MOV TL1, #(65536-50000) MOD 256 ;定时
CPL P2.3 ;输出方波.
RETI ;中断返回.
END ;完.
------------------------
===========================================
单片机编程
选用T0操作模式1用于定时,由P1.7输出周期为5ms方波的控制程序,设晶振fosc=6MHz。
------------------------
最佳答案:
ORG 0000H
MOV TMOD, #01H ;T0方式1定时.
SETB TR0 ;启动T0
LOOP:
MOV TH0, #(65536-5000/2/2) / 256 ;送入初始值.
MOV TL0, #(65536-5000/2/2) MOD 256 ;定时
JNB TF0, $ ;等待定时完成.
CLR TF0 ;清除标志.
CPL P1.7 ;输出方波.
SJMP LOOP ;无限循环.
END ;完.