历史上的今天
今天是:2024年12月16日(星期一)
2020年12月16日 | STC15F104W单片机四路按键循环开关程序
2020-12-16 来源:51hei
用一个按键控制四个继电器循环导通,程序由51单片机的程序改到STC15F104W上,第一次按键,第一个继电器吸合,第二次按键,第二个继电器吸合,第一个继电器释放,以此类推。最初的想法就是实现电风扇,三档开关,程序里面可以修改端口。
#include
sbit key = P3^4; //定义按键
void delayms(void); //延时
void led_refresh(unsigned char i); //led显示
unsigned char keyscan(void); //按键
void init(void); //初始化
void main(void)
{
unsigned char m;
init();
while(1)
{
m = keyscan();
led_refresh(m);
}
}
void delayms(void) //延时函数
{
unsigned int i;
i = 10000;
while(i--);
}
void led_refresh(unsigned char j) //led显示
{
switch(j)
{
case 0 : P3=0xFF; break; // 全部熄灭
case 1 : P3=0xFE; break; // led1 点亮
case 2 : P3=0XFD; break; // led2 点亮
case 3 : P3=0XFB; break; // led3
case 4 : P3=0XF7; break;
}
}
unsigned char keyscan(void) //按键扫描
{
static unsigned char count = 0;
unsigned char z = 0;
static bit keyflag = 1;
static bit backup = 1;
keyflag = key;
if(keyflag != backup )
{
delayms();
if(keyflag == key)
{
if(backup == 0)
{
count++;
if(count >= 5)
{
count = 0;
} }
}
}
上一篇:单片机八音盒程序
下一篇:红外热释电传感器单片机设计
史海拾趣
|
转自ourdev,非常好的学习指导,推荐给大家。 “我想DIY开关电源,要具备哪些理论知识、实践技能和工程素质啊?” “如何从给定的设计规格设计出开关电源?具体步骤是什么?” “开关电 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:34 编辑 欣世纪电子阿迪老师单片机系列视频教程之《AVR单片机十日通》 这个是视频概述,粗略介绍该视频教程的内容和特点 $(\'swf_EK9\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'4 ...… 查看全部问答> |
|
轮胎是一项非常巨大的发明,如果没有轮胎,而只是硬梆梆的轱辘,汽车也不会发展到今天。但是日前,一家美国公司却发明了这样一款无需充气的蜂巢轮胎。 它将本来的充气部分用蜂巢结构来代替,这样一来就可以起到与传统轮胎类似的减震作用了。最重要 ...… 查看全部问答> |
|
[原创文章] 【R7F0C809】个人入门中遇到的问题 1、导入例子出错,不支持该型号 解决:r7f0c809_dif中的Device_Custom文件夹,直接复制该文件夹到C:\\Program Files\\Renesas Electronics\\CubeSuite+路径就可以了! 2、信息提示,可以手动操 ...… 查看全部问答> |




