单片机结构原理图
LED模块结构图
- LED共阳极,阴极输入低电平能使LED发光。单片机P2端口输入对应的低电平,使对应的LED发光。
LED流水显示代码
;利用定时器定时一秒,产生中断来时LED流水显示
;定时一秒,时钟频率为11.0592,每0.01s产生一次溢出中断
;利用r2来对定时器0中断计数,r2为100时,就定时1s了
COUNT equ 9217 ;11.0592*1*10000/12
org 0000h
ljmp main
org 000bh
ajmp TIM0 ;定时器0中断入口
org 0030h
main:
mov r2, #0
mov TMOD, #01h ;选择定时方式,设置模式1,16位
mov TH0, #HIGH(65536 - COUNT) ;定时器0初始化
mov TL0, #LOW(65536 - COUNT)
setb TR0 ;开启定时器0
setb ET0 ;开启定时器中断
setb EA ;开启总中断
clr TF0 ;清除TO溢出标志位
mov p2, #0ffh
mov a, #0feh
sjmp $ ;等待中断
org 000bh ;定时器0中断入口地址
TIM0:
clr TF0 ;清除TO溢出标志位
inc r2
mov TH0, #HIGH(65536 - COUNT)
mov TL0, #LOW(65536 - COUNT)
cjne r2, #100, return ;不相等跳转到return,相等继续执行
mov p2, a ;控制LED灯显示
jnb acc.7, clear ;LED流水显示,当(A) = 0111 1111时,跳转到clear中
RL a ;循环左移一位
mov r2, #0
return:
reti ;返回中断
clear:
mov a, #0feh
reti
end
LED闪烁显示代码
;中断计数100次为一秒
org 0000h
ljmp main
org 000bh ;定时器中断0入口地址
ajmp TIM0
org 0030h
main:
mov r2, #0
mov TMOD, #01h ;选择定时功能,模式1
mov TH0, #HIGH(65536 - 9217) ;初始化定时器
mov TL0, #LOW(65536 - 9217)
setb TR0 ;开启定时器0
setb ET0 ;开启定时器0中断
setb EA ;开启总中断
clr TF0 ;清中断标志
mov p1, #0ffh
sjmp $ ;等待中断
org 000bh
TIM0:
clr TF0 ;清中断标志,一定要有
inc r2
mov TH0, #HIGH(65536 - 9217)
mov TL0, #LOW(65536 - 9217)
cjne r2, #100, return ;判断中断计数是否100次,100次就对LED进行取反,没有,则中断返回,从定时器0中断入口地址进入
cpl p2.5
mov r2, #0
return:
reti
end
声明:LED结构原理图来自 普某 的单片机结构原理图