51单片机的晶振频率是6MHZ,由p1.1引脚输出1000HZ方波,精确到一个机器周期,求汇编程序.

如题所述

第1个回答  2012-12-13
这个太简单了,放一堆nop,放一个翻转,放一个跳转指令。绝对能精确到一个机器周期。
第2个回答  2012-12-13
ORG 0

JMP MAIN
ORG 0BH
JMP TIMER0ISR
MAIN:
MOV TMOD,#02H
MOV TH0,#06H
MOV TL0,#06H
SETB EA
SETB ET0
SETB TR0
JMP $

TIMER0ISR:
CPL P1.1
RETI追问

如果定时器操作模式是1,怎么改

追答

ORG 0

JMP MAIN
ORG 0BH
JMP TIMER0ISR
MAIN:
MOV TMOD,#01H
MOV TH0,#0FFH
MOV TL0,#0AH
SETB EA
SETB ET0
SETB TR0
JMP $

TIMER0ISR:

MOV TH0,#0FFH
MOV TL0,#0AH ;按定时时间算出的值是0ff06h,考虑到这两条重载定时值的指令需要4个周期,所以做了补偿,定时值变成0ff0ah
CPL P1.1
RETI

追问

我用Proteus仿真不能精确到1个机器周期

追答

调整定时器这个0ff0ah重载值,差多少调多少

本回答被提问者和网友采纳