首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

急求高手解决有关问题~

2012-12-21 
急~~~~求高手解决问题~~~利用C8051F310单片机设计一个LED灯控制器主要功能和技术指标要求:   1. LED灯外接

急~~~~求高手解决问题~~~
利用C8051F310单片机设计一个LED灯控制器
主要功能和技术指标要求:
   1. LED灯外接于P0.0端。
   2. LED灯分别按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s。
   3. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。
   4. 利用单片机内部定时器定时,要求采用中断方式。    
   5. 使用按键(KINT)控制LED灯闪烁模式的切换。
[最优解释]
按键也是中断,或者你直接在程序中不断读取按键端口的值也可以!
中断的话,在处理程序中
1.设置一个静态变量比如state,循环取1,2,3这三个值。
2.根据state的值决定当前使用什么频率,然后重新设置定时器的寄存器
3.更新state的值,比如先前是2,那么现在就取3,

不用按键的话你led灯闪烁的频率如何控制呢……
[其他解释]
3个定时器的中断不知道怎么放,一个程序里可以放多个中断么?如果可以该怎么放?
[其他解释]


照你的第一条,LED灯只有一个打嘛,这还不好办,哪里要什么三个定时器,在每次按键后重新设置定时器不就行了嘛……
[其他解释]

引用:
照你的第一条,LED灯只有一个打嘛,这还不好办,哪里要什么三个定时器,在每次按键后重新设置定时器不就行了嘛……

那个按键怎么设置呢?如果不用按键呢?
[其他解释]
引用:
按键也是中断,或者你直接在程序中不断读取按键端口的值也可以!
中断的话,在处理程序中
1.设置一个静态变量比如state,循环取1,2,3这三个值。
2.根据state的值决定当前使用什么频率,然后重新设置定时器的寄存器
3.更新state的值,比如先前是2,那么现在就取3,

不用按键的话你led灯闪烁的频率如何控制呢……

频率可以用延时来实现啊,就是每过一定时间对led电平反向
比如说:LOOP1: SETB TR1
       MOV R0,#40
       AJMP $
T0INT1: MOV TH1,#0FAH
       MOV TL1,#0EAH
       DJNZ R0,RTI1
       MOV R0,#40
RTI1:   RETI
但是这一个频率就用了一个中断了啊~~~~~

热点排行