单片机高手帮忙哈(汇编语言),帮忙解释下下面每一步程序的含义,就是注释下每一步,越详细越好,谢谢!

2025-01-06 16:59:56
推荐回答(1个)
回答1:

ORG 000H ;00h复位入口
AJMP MAIN ;跳到MAIN
ORG 000BH ;定时器0中断入口
LJMP PT0J ;跳到PT0J
ORG 0100H ;MAIN主程序入口
MAIN: MOV TMOD,#05H ;模式寄存器配置定时器0为16位计数器,p3.4为计数器脉冲输入
MOV TH0,#0FFH ;配置计数器初值0FF9CH,使得计数100个脉冲时刚好溢出,产生中断
MOV TL0, #9CH ;
CLR F0 ;清通用标志位
SETB TR0 ;启动计数器
SETB ET0 ;允许定时器0中断
SETB EA ;允许总中断
HERE; AJMP HERE ;死循环,(等待中断)
PT0J; JB F0,PT0D ;F0标志为1则跳到PT0D
MOV TMOD,#01H ;配置定时器0为16位定时器,
MOV TH0,#0FEH ;装载计数初值,使得刚好1ms时溢出产生中断
MOV TL0,#0CH ;
SETB F0 ;F0置1,使得下次中断时 转换到计数模式
RETI ;中断返回
PT0D; CLR F0 ;F0置0,使得下次中断时 转换到定时器模式
MOV TMOD,#05H ;配置定时器0为16位计数器
MOV TH0,#0FFH ;装载计数初值,使得刚好计数100个脉冲时产生中断
MOV TL0,#9CH ;
RETI ;中断返回
END ;汇编好就好在这里,效率高,c是做不到的