rprt.net
当前位置:首页 >> 单片机C语言开关程序 >>

单片机C语言开关程序

#include<reg52.h>#define uint unsigned int#define uchar unsigned char void delay_ms(uint); sbit led0=P0^0; sbit led1=P0^1; sbit key1=P3^2; sbit key2=P3^3; void main() { uchar i=0; uchar j=0; while(1) { if(key1==0)//按键1 { delay_ms(10); if(key1==

应该可以; while(1) { LED=k1; } 你试下这个; } delay(1000)void main() {P1=0xFF

#include<reg52.h>#define unchar unsigned char#define duan P2 unchar code datedu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unchar code d[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//这是秒的可以闪的编码char date[

给你一个思路,定时器肯定要用了,首先你得定义一个变量A 把变量A的值设置为0的时候执行语句X,变量为1的时候执行语句A 变量为2的时候执行语句B 变量为3的时候执行语句C 意思就是刚开始你就把A的值定义为0就执行X,然后再按一下按键把A的值定义为1,按两下就定义为2,按三下就定义为3大概思就是这样 长按的时候需要使用定时器,定一个时间3秒或5秒,看要求 长按几秒,就定几秒,在长按的时候启动定时器,然后定时到了就执行语句把A的变量变成0就可以执行语句X了

一个简单的开关控制一盏灯的c程序如下:#include<reg52.h>sbit S1=P1^4; //将S1位定义为P1^4,检测独立按键sbit led0=P1^0; //将led0定义为P1.0口的LED/**************************************************************************************************

这个很好实现,比如:#include#define uchar unsigned charuchar keyval=0,led=0xfe;sbit key=P1^0;void t0isr() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;switch(keyval) { case 0: P0=led; led=_crol_(led,1); break; case 1: P0=led;

uchar a=0; void main() { TMOD=0X01; TL0=(65536-50000)%256;//定时50ms TH0=(65536-50000)/256; ET0=1; EA=1; TR0=1; while(key==1) { if(a { led1=0; led2=1; } else//5-10秒,灯变换状态 { led1=1; led2=0; } } } void timer0() interrupt 1 { TL0=(65536-50000)%256; TH0=(65536-50000)/256; a++; if(a==200) a=0; }

长按或短按你可以用定时器来设定时间.时间一到就直接跳出来执行就可以了.想连续按1或2或3次的话你就直接用个变量来当计数器,按一下计数一次就可以了.

楼上的程序,是不是一旦按下了键,就等10s,再开灯,并没有检测按下10s吧?这个题目,有些地方不明白,有好几天了,始终也没有看到补充说明.请问:按下不到10s怎么处理?按下两次,都是6s,累计超出10s了,怎么处理?下面的程序

if( no 电路) { 我实在不知道你要的什么代码 } else { 有了电路 while(代码上传中.); if(上传成功) { 给分 } }

mcrm.net | fnhp.net | 3859.net | 5689.net | zxwg.net | 网站首页 | 网站地图
All rights reserved Powered by www.rprt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com