C51源代码--用按键控制led走马灯实例
来源:互联网 发布:公不见丁原董卓之事乎 编辑:程序博客网 时间:2024/06/16 21:46
/******************************************************************************
*
* Description : 4 key control led flow
* key1 -- start
* key2 -- stop
* key3 -- up->down
* key4 -- down->up
*
* Author : liyangth@gmail.com
*
* Date : 2006-12-3
*
******************************************************************************/
#include "reg51.h"
#include "INTRINS.H"
typedef unsigned int uint_t;
typedef unsigned char uchar_t;
uchar_t key(void);
void mydelay(uint_t delay_time);
void main()
{
uchar_t key_v;
bit start = 0;
bit updown = 0;
uchar_t out_data = 0xfe;
for(;;){
key_v = key();
switch(key_v){
case 0xfb:{
start = 1;
break;
}
case 0xf7:{
start = 0; /*stop*/
break;
}
case 0xef:{
updown = 1;
break;
}
case 0xdf:{
updown = 0;
break;
}
}
if(start){
//P1 = 0xf0;
if(updown)
out_data = _crol_(out_data,1);
else
out_data = _cror_(out_data,1);
P1 = out_data;
}
else
P1 = 0xff; /* all down */
mydelay(1000);
}
}
/******************************************************************************
*
* Function: uchar_t key(void)
*
* Description: key event
*
* Returns: key_v
*
* Note: respond key value
*
* Add: liy 2006-12-3
*
* Modify:
*
*******************************************************************************/
uchar_t key(void)
{
uchar_t key_v;
uchar_t tmp;
P3 = P3|0x3c;
key_v = P3;
if(0xff == (key_v|0xc3))
return (0);
mydelay(10);
key_v = P3;
if(0xff == (key_v|0xc3))
return (0);
else{
for(;;){
tmp = P3;
if(0xff == (tmp|0xc3))
break;
}
return (key_v);
}
}
/******************************************************************************
*
* Function: void mydelay(uint_t delay_time)
*
* Description: delay delay_time ms
*
* Param:
*
* Returns: void
*
* Note: delay;
*
* add: liyangth@mail.com 12-3
*
* modify:
*
*******************************************************************************/
void mydelay(uint_t delay_time)
{
uint_t i;
while(delay_time--){
for(i = 0; i < 125; i++)
;
}
}
*
* Description : 4 key control led flow
* key1 -- start
* key2 -- stop
* key3 -- up->down
* key4 -- down->up
*
* Author : liyangth@gmail.com
*
* Date : 2006-12-3
*
******************************************************************************/
#include "reg51.h"
#include "INTRINS.H"
typedef unsigned int uint_t;
typedef unsigned char uchar_t;
uchar_t key(void);
void mydelay(uint_t delay_time);
void main()
{
uchar_t key_v;
bit start = 0;
bit updown = 0;
uchar_t out_data = 0xfe;
for(;;){
key_v = key();
switch(key_v){
case 0xfb:{
start = 1;
break;
}
case 0xf7:{
start = 0; /*stop*/
break;
}
case 0xef:{
updown = 1;
break;
}
case 0xdf:{
updown = 0;
break;
}
}
if(start){
//P1 = 0xf0;
if(updown)
out_data = _crol_(out_data,1);
else
out_data = _cror_(out_data,1);
P1 = out_data;
}
else
P1 = 0xff; /* all down */
mydelay(1000);
}
}
/******************************************************************************
*
* Function: uchar_t key(void)
*
* Description: key event
*
* Returns: key_v
*
* Note: respond key value
*
* Add: liy 2006-12-3
*
* Modify:
*
*******************************************************************************/
uchar_t key(void)
{
uchar_t key_v;
uchar_t tmp;
P3 = P3|0x3c;
key_v = P3;
if(0xff == (key_v|0xc3))
return (0);
mydelay(10);
key_v = P3;
if(0xff == (key_v|0xc3))
return (0);
else{
for(;;){
tmp = P3;
if(0xff == (tmp|0xc3))
break;
}
return (key_v);
}
}
/******************************************************************************
*
* Function: void mydelay(uint_t delay_time)
*
* Description: delay delay_time ms
*
* Param:
*
* Returns: void
*
* Note: delay;
*
* add: liyangth@mail.com 12-3
*
* modify:
*
*******************************************************************************/
void mydelay(uint_t delay_time)
{
uint_t i;
while(delay_time--){
for(i = 0; i < 125; i++)
;
}
}
- C51源代码--用按键控制led走马灯实例
- S3C6410 按键控制LED应用程序 ---源代码
- PWM --用按键控制 LED 的亮度
- S3C2440 用按键控制LED
- 按键控制led
- 按键控制led驱动
- 按键控制led驱动
- 按键控制led应用程序
- 按键控制LED
- ARM按键控制LED
- 按键控制led亮灭
- 按键控制显示LED亮度
- mini2440 按键控制LED 驱动
- 3.按键控制LED灯亮灭
- 5.0 按键控制LED灯
- 独立按键控制led灯
- 简单的按键控制LED
- 5、按键控制LED位移
- Random Matrices, Volume 142, Third Edition
- Asp.NET消息框的使用
- J2EE的13种核心技术简介
- 深入理解程序生成过程
- 笔记本附加功能详解
- C51源代码--用按键控制led走马灯实例
- 鬼斧格式处理器2.3 beta9
- 实践中发现的东西
- Java实现HTTP文件下载
- 没有钱的苦恼与无奈:七个城市的1000元生活(转载)
- 如何编写自动安装注册的CAB文件
- 用CashFilter实现页面级缓存实践[ OSCache使用]
- 新闻:Java开源,主将辞职
- Sentiment