18纯情男高中生 发表于 2023-11-11 11:14:38

汇编实操项目·内部定时器0.5s翻转电平

暂无txt文本

angmall 发表于 2023-11-12 14:21:10


ORG        0000H        ;设置MAIN主程序运行起始地址为0000H
LJMP MAIN        ;设置在0000H开始的程序为MAIN
ORG        000BH        ;设置内部中断地址
LJMP TT0                ;跳转至TT0标识位
ORG 0100H        ;运行地址修改为0100H
MAIN:
MOV TMOD,#01H        ;进择M1M0计数器为方式1
MOV        TH0,#0B1H        ;计数解1s计算结果取高8位
MOV TL0,#0E0H        ;计数程1s计算结果取低8位
MOV        R7,#50                ;计数器设定计数次数为50
SETB EA                        ;开启中断系统总开关
SETB TR0                ;设定T0内部中断为开启
SETB ET0                ;设定IE-T0中断路径为高电平开启
SJMP $                        ;运行结束等待




TT0: DJNZ R7, ONEs        ;计数程达到50次桃转到LED翻转状态
MOV R7,#50                        ;达到50次后重新设定值为50次计数
CPL P0.0                        ;取反LED状态翻转
ONEs: MOV TH0,#0B1H        ;重新设定LD灯亮状态
MOV        TL0,#0E0H
RETI                ;中断子程序返回
END


angmall 发表于 2023-11-12 14:21:12


ORG        0000H        ;设置MAIN主程序运行起始地址为0000H
LJMP MAIN        ;设置在0000H开始的程序为MAIN
ORG        000BH        ;设置内部中断地址
LJMP TT0                ;跳转至TT0标识位
ORG 0100H        ;运行地址修改为0100H
MAIN:
MOV TMOD,#01H        ;进择M1M0计数器为方式1
MOV        TH0,#0B1H        ;计数解1s计算结果取高8位
MOV TL0,#0E0H        ;计数程1s计算结果取低8位
MOV        R7,#50                ;计数器设定计数次数为50
SETB EA                        ;开启中断系统总开关
SETB TR0                ;设定T0内部中断为开启
SETB ET0                ;设定IE-T0中断路径为高电平开启
SJMP $                        ;运行结束等待




TT0: DJNZ R7, ONEs        ;计数程达到50次桃转到LED翻转状态
MOV R7,#50                        ;达到50次后重新设定值为50次计数
CPL P0.0                        ;取反LED状态翻转
ONEs: MOV TH0,#0B1H        ;重新设定LD灯亮状态
MOV        TL0,#0E0H
RETI                ;中断子程序返回
END


神农鼎 发表于 2023-11-12 15:02:26








jkernet 发表于 2023-11-12 21:12:45

学习了,感谢分享
页: [1]
查看完整版本: 汇编实操项目·内部定时器0.5s翻转电平