请教单片机高手,关于一键双控制

作者&投稿:主斌 (若有异议请与网页底部的电邮联系)
按一键亮一灯的单片机控制程序~

你是要按下亮,再按一下灭的吗?
MAIN: JB P0.0,$;设这个是按键输入点。
LCALL ONEKEY;子程序
LJMP MAIN;
ONEKEY: JNB P0.0,L1;如果不为1延时
RET;否则返回
L1: LCALL DELAY
JNB P0.0 L2;延时后如果按键还没放对输出取反
RET
L2: CPL P1.0
JNB P0.0,$;等待按键释放
RET;返回
DELAY: MOV R0,#0FH;延时;值可以自己修改一下,具体要看你的晶振
L0: MOV R1,#2H;控制在10MS左右
DJNZ R1,$
DJNZ R0,L0
RET
END
以上是汇编语言写的;
下面再给段C代码;
void OneKey()
{

if (p0.0==0)
{
Delay(10);
if (p0.0==0)
p1.1=!p1.1;
else
return;
}
else return;
}

void Delay(int time)
{
for (;time==0;time--)
;
}

注C代码没有调试。可能需要做一些改动;
但是程序结构大概是这样的了。没时间去调

按下,定时器开始定时, 再按, 暂停, 再按, 不要复位,继续定时比较好。

可以这样
设置个变量
第一次按下 变量 由0变为1
第二次按下 变量由1变为2

可以通过设立一个标志进行判断,假设为flag,第一次按下时flag = 0;第二次按下时flag = 1;然后在定时器里面进行延时处理,flag要被清零,至于在什么时候清零那得看你的程序怎么写,自己想想

用标志位是很好的办法

#include <REG51.h>
sbit LED=P1^0;
sbit KEY=P2^0;
void delay_50ms(uint t) //延时50ms的程序
{
uint j;
for(;t>0;t--)
for(j=6245;j>0;j--)
;
}

void main(void){
KEY = 1;
LED = 1;
while(1)
{ if(KEY == 0){delay_50ms(4000); //4000*50ms=200s
if(KEY == 0)
{ LED =~LED; }
}
}
}

-----------------------------------------------------------------------------------------
void delay_50ms(uint t) //延时50ms的程序
{
uint j;
for(;t>0;t--)
for(j=6245;j>0;j--)
;
}

我编译了下,传了些参数,并看了汇编代码,观察记录了下面的数据:
delay_50ms(1):延时50 010 10us
delay_50ms(10):延时499 983 17us
delay_50ms(100):延时4 999 713 287us
delay_50ms(1000):延时4 997 022 2.978ms

下面的教程都有实例。

http://hi.baidu.com/dzkfw/blog/item/4a188216fd986b12c83d6d05.html
不平凡的单片机学习资料,偶很好的单片机教程,超好用,一个不占内存的教程,有案例。

1、最新版单片机编程宝典下载地址,学习单片机编程必备手册

2、单片机c语言运用例子

3、十天学会单片机c语言和单片机制作,最好的单片机资料

电路公式计算器:http://hi.baidu.com/dzkfw/blog/item/7a947b4f588099d1d0c86a3e.html

请教高手,用单片机控制电磁阀,从而控制气缸动作,稳定吗?我做了一个电 ...
答:单片机控制电磁阀,由电磁阀控制气缸,是完全可以的,在技术上没有任何问题。对于你的问题:1、单片机IO口输出的是5VDC,而电磁阀通常是24VDC,所以如果使用24VDC的电磁阀,单片机需要加入5V/24V转换电路控制24VDC的电磁阀 2、注意电磁阀的选型:单控电磁阀和双控电磁阀的区别,具体请找一些电磁阀的资料看...

自动化,考研,双控,自动控制原理,电路。很迷茫,求相助!
答:1、建议电路,电路涉及的知识面都是以高中为基础的,只要认真的从头看从头学就能明白的,高手都是从菜鸟起步的,不要在意自己有多少水,要看自己能装多少水 2、自控大都是以大学知识为基础新接触的学科,例如系统导论,如果这门学好了学自控就轻松了。3、还有一年多,不懂得都从基础开始,书都从第一...

急求电子信息工程专科毕业论文题目
答:ARM9(AT91RM9200)简易JTAG仿真器设计 基于单片机的电动机测速系统 基于单片机的单元楼门铃及对讲系统 基于单片机的自来水管的恒流控制 基于单片机的电子脉搏测量仪 基于单片机的自来水水塔控制系统 洗衣机控制系统设计 基于力敏传感器的压力检测 湿敏传感器应用电路系统设计 基于气敏传感器的大气环境测量系统设计...

双控和电气 电力系统和电力电子哪个好就业。工资待遇都不错的,准备12...
答:双控专业考研比其他的好考,因为有双控专业的学校很多,门槛也低;电力系统专业毕业可以轻松的进入电力部门,工作轻松加无聊,跟公务员很像;电力电子跟企业关系相对紧密些,工资跟你的技术水平挂钩; 不同学校不同专业分数和质量都有差异,建议你想搞理论、工作环境好就报双控,其他的自己衡量,加油,专...

急求电子信息工程专科毕业论文题目
答:直流电机转动的单片机控制 高频功率合成网络的研究 多功能气体探测器 车用无线遥控系统 家用门窗报警器 智能型全自动充电器 医用病房多路呼叫系统 多功能数字钟 数字电压表的设计与仿真 虹膜识别技术的认识及其在电子学科的发展探讨 基于Orcad的电子线路特性分析及优化设计 恒温热熔胶枪的设计 步进电机的数字...