⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a4_5_3.asm

📁 单片机汇编例程学习,大量的汇编例程
💻 ASM
字号:
;///////////////////////////////////////////
;本程序源代码由单片机培训网提供.
;单片机培训网,让更多人学习单片机更容易.
;第一网址----www.mcuedu.com
;第二网址----http://51_train.nease.net
;创办人------刘永忠
;热线电话----(0755)27529998
;email-------aa815@163.com
;用计时中断法实现广告灯左移
;8个LED每隔1秒左移一次
;TIMER0每隔10毫秒产生一次中断
;每产生一百次中断LED左移一次
;程序难易等级--------稍难
;思考:如何使8个LED每隔0.5秒左移一次?
;2004-7-11 11:19
;///////////////////////////////////////////
led_port	equ p0					;便于移植到不同的硬件上
org 0000h							;主程序起始地址
ajmp start							;跳至主程序
org 0bh								;TIMER0中断起始地址
jmp	tim0							;跳至TIMER0中断服务程序TIM0

start:mov tmod,#00000001b			;设定TIMER0工作在MODE1
      mov th0,#low(65536-10000)		;10000US
      mov tl0,#high(65536-10000)
      setb tr0						;启动TIMER0
      mov ie,#10000010b				;TIMER0中断使能
      mov r5,#100					;设中断100次,即一秒
      mov led_port,#0feh			;左移初值
      jmp $							;无穷循环
tim0: push acc						;将A的值暂存于堆栈
      mov th0,#high(65536-10000)	;重设计时初值
      mov tl0,#low(65536-10000)
      djnz r5,loop					;中断一百次?不是则到LOOP
      mov r5,#100					;是则重设R5=100
      mov a,led_port				;读入LED端口的数据至A
      rl a							;将A左移一位
      mov led_port,a				;将A输出至LED端口
loop: pop acc						;至堆栈取回A的值
      reti							;返回主程序
      end          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -