课题 闪烁变换的发光管控制器
(发光二极管八个,数码管可显示六位)
要求:
1)开机初始使一只发光二极管亮,每隔2秒左移,且数码管显示“S=left”(显示数码管最左位表示速度,右五位表示移动方向)。按加速键后每隔1秒左移,且数码管显示“H=left”。
2)用键可改变移动方向,如一只发光二极管右移,每隔2秒右移,则数码管显示“Sright”;按加速键后,每隔1秒右移,且数码管显示“Hright”。
3)用键可改变八个发光二极管亮的类型如最左最右先亮,间隔时间后向中心移动然后在渐回归原位,并循环进行。
总之要设计按键,使得能控制移动方向、移动速度(高速或低速)及移动类型,同时有相应的数码管显示。
最佳答案 - 由提问者1个月前选出
最间单的一个灯的闪烁你 会做吗 ?
然后在 里面家计时器切换到下个灯的 闪烁一直做到最后一个灯在把 最后一个灯的计时器动合放在 一个灯的线路上就可以一直循环闪烁。
我以前也 做过类似的闪烁。也是在实习的时候。
这东西和电路的原理是相通的。知道电路怎么连也就不难。
此程序在硬件上调试通
;晶振频率为11.0592MHZ
;用定时器1延时,外部中断0接紧急控制
;R0为100MS延时常数,R2为状态延时常数
;8279控制数码管显示时间
;用P1口控制双色灯
;此程序写于2007-7-6,作者:徐学军
Z8279 EQU 0FF82H ;8279 状态/命令口地址
D8279 EQU 0FF80H ;8279 数据口地址
LEDMOD EQU 00H ;左边输入 八位字符显示
;外部译码键扫描方式,双键互锁
LEDFEQ EQU 33H ;扫描速率
LEDCLS EQU 0C1H ;清除显示 RAM
LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址
ORG 0000H
LJMP START
ORG 0003H ;INT 0 中断入口地址
LJMP INT_0
ORG 001BH ;T1中断入口地址
LJMP INT_T1
ORG 0040H
START:
MOV SP,#60H
MOV TMOD,#10H ;置T1为方式1
SETB EX0 ;INT 0 中断有效
SETB IT0
SETB EA
MOV TL1,#00H ;延时50mS常数
MOV TH1,#4cH
MOV R0,#2 ;延时100mS常数
SETB TR1 ;启动T1
SETB ET1
setb pt1 ;必须设置定时器1的中断优先级高于外部中断0
LCALL INIT8279 ;初始化8279
LCALL STATUS0 ;初始状态(都是红灯)
CIRCLE:
LCALL STAT