单片机(C51)一个小程序,可以请帮忙在此程序中加入按键长按开机与长按关机功能,谢谢!!!

作者&投稿:盍征 (若有异议请与网页底部的电邮联系)
单片机(C51)一个小程序,大神请帮忙在此程序中加入按键长按开机与长按关机功能,谢谢!!!~

你是长按按键处理程序不会还是怎么样?长按开关机的开关是同一个按键吗?我有长按和短按的处理程序你要吗?

这个真心不难,就是简单的c语言判定就行了,《C程序设计语言》,实在看不了就看谭总写的那本c语言。给你写过伪代码,
if(key=ReadKey())//读取按键,判断有无按键按下去,没按键按下,这里返回0值是不进入这个函数的
{
delay(x);//延时一段时间,写过循环就行了
if(!ReadKey())//在次读取按键值,实际上按下去按键是低电平(原理图一般都是这样做的)
{
return 已经松手了( 这里是高电平了返回0了)

sbit key_st=P3^6;
void main (void)
{
u8 flagqt=0x5a;
u16 tcnt=0;
while(tcnt<3000)
    {
    tcnt++;
    delay(1);
    if(key_st!=0)tcnt=0;
    }
i = 0;
aa = 0;
//fang1 = 1;
IO_Init();
tomd ();
tcnt=0;
while(1)
{
key_i ();
EC ();
}
if(key_st==0)
    {
    tcnt++;
    delay(1);
    if(tcnt>=3000) ((void(code *)(void))0x0000)();
    }
    else tcnt=0;
}


需要更改功能可以私信我


C51中的data和idata有什么区别,谢谢了
1、作用机理不一样:data:直接寻址的片内RAM区低128B(00H~7FH)。idata::单片机间接访问的片内RAM区,允许访问全部片内RAM。2、使用的方向不一样:data:计算机中程序、文稿、数字、图像、声音等信息。idata:idata是51系列单片机能识别的存储器类型之一,固定指前面0x00-0xff的256个字节的片内...

单机片和单片机有什么区别
2、4位单片机,是比较简单的单片机,一半在玩具或对功能和性能要求不高,对成本要求比较低的地方用,现在很少用了。一般5-8个脚。DIP和SO封装都有。3、种类不同:51系列单片机是指51内核,stc89c5X基本都是51内核的种类。大小不同:最后一个数字表示E2prom的大小,E2prom=X*4K,c51就是4K,c52...

单片机使用C51运行库中预定义的宏怎么对idata区进行寻址?
单片机使用西五一运行库中的预订一红管怎样对2747星的导航。这个就可以按照他的未成进行行导航

请教下大家我重装系统时遇到的问题
1. CPU二级缓存坏的实例 一台几年前配置的兼容机:K6-2 200MHz CPU,采用VX-Pro+芯片组的主板,两根16MB 72线EDO内存, Windows 98操作系统。在出现蓝天...nVida系列集成网卡(nForce2、nForce4、C51、C61)Intel 系列百兆\/千兆网卡 v10.3Intel 无线笔记本网卡2200BG\/2915ABG\/3945ABG v10.1.1.3SIS 900ULi M5263 ...

求文档: AT89C2051-24PU中文资料
在现场选择合适的安装位置是避免红外探头误报、求得最佳检测灵敏度极为重要的一环。片机攻击技术 目前,攻击单片机主要有四种技术,分别是: (1)软件攻击 该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMEL AT89C 系列单片机的攻击...

单片机的sbit WR?
sbit是C51扩展的变量类型,是定义特殊功能寄存器的位变量。典型应用是:sbit P0_1=P0^1;\/\/即定义P0_1为P0口的第2位

有关单片机的分类,型号的种种疑问
呵呵,一楼二楼四楼说的对,三楼有漏洞,五楼就是一派胡言。就我用过的一些单片机,做一下介绍吧。因为不同厂家不同内核不同位数,单片机的型号也是不同的。比如国内用的多的是国产宏晶的STC系列的单片机,因为学校教学使用的比较多。STC系列的全部都是51内核的,8位机,有STC89系列,STC12、STC...

哪位大佬有 《单片微机原理与接口技术(第2版)》,求教材求分享百度网盘...
提取码:1234 本书以80C51系列单片机为典型机介绍微机基本理论与原理,实现将微机原理的学习和具体的单片机应用实践密切结合。本书从计算机基础知识入手,全面介绍微机的基本组成和原理,重点讲述80C51系列单片机的结构、指令系统、程序设计以及常用的接口技术,对8086系统和C51语言分设两章介绍,一些最新实用...

51单片机该怎么学?
单片机可以通过控制电路中特定点的电位高低来控制电路运行,它集成了存储器等元件,故称为“单片”机,属于计算机的一种。其成本低,在各种电器中都有应用。51单片机是单片机中最经典和流行的一种,应用十分广泛。 学习51单片机如何开始? 不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来...

单片机定时器里(65536-45872)\/256中的45872怎么得来的?
45872是根据需要的定时时间和晶振的频率计算出来的,例如,晶振频率是12M,定时时间要50ms,则50 000us\/1us=50000。这个45872,如果频率是11.0592M,机器周期=12\/11.0592=1.085us,定时需要49771,则49771\/1.085=45872。但不知晶振频率的准确数值,也不知定时的准确时间,上面也是猜测的,只是说明...

尚志市18046433040: 求一个单片机c51延时10S的小程序 -
涂砍盐酸: #include<reg52.h> unsigned char t; sbit P1_7=P1^7; void main() { t=0;P1_7=0; TMOD=0x01; TH0=0x3C; TL0=0xB0; EA=1; ET0=1; TR0=1; while(1) { if(t==200) { t=0;P1_7=1;} } } void dingshi0() interrupt 1 { TH0=0x3C; TL0=0xB0; t++; }

尚志市18046433040: 求51单片机与PC串行通讯C51简单小程序?(PC向单片机发送并返回接收状态控制小灯点亮,简易.是为了做实验 -
涂砍盐酸: #include <REG52.H> sbit LED = P2^0; bit Flag; unsigned int ReData,SenData; void main (void) { SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1TMOD|= 0x20; //定时器工作方式2PCON= 0x00;TH1 = 0xFD; //baud reload value ...

尚志市18046433040: 51单片机的一个简单程序 -
涂砍盐酸: ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,P0 ANL A,#1EH CJNE A,#02H,MAIN1 SETB P1.1 CLR P1.2 CLR P1.8 SJMP MAINMAIN1:CJNE A,#04H,MAIN2 CLR P1.1 SETB P1.2 CLR P1.8 SJMP MAINMAIN2:CJNE A,#...

尚志市18046433040: 求一个单片机c51延时10S的小程序
涂砍盐酸: #include&lt;reg52.h&gt; unsigned char t; sbit P1_7=P1^7; void main() { t=0; P1_7=0; TMOD=0x01; TH0=0x3C; TL0=0xB0; EA=1; ET0=1; TR0=1; while(1) { if(t==200) { t=0; P1_7=1; } } } void dingshi0() interrupt 1 { TH0=0x3C; TL0=0xB0; t++; }

尚志市18046433040: 谁给个C51单片机的程序 -
涂砍盐酸: 光敏电阻 部分要加一些外围电路,在反相器那读取值来控制电机转动/*-----本程序用于测试4相步进电机常规驱动 按键可以控制正反转 --------*/ #include <reg52.h> unsigned char Flag;//定义正反转和停止标志位 sbit KEY = P3^3; unsigned char ...

尚志市18046433040: 请高手用单片机C语言编写c51时钟程序,含有6个数显管,3个按键,要自己写的,不要百度什么的复制粘贴 -
涂砍盐酸: 这是我初学时写的,刚好也是数码管/*位选接P2口,三个按钮分别接P25~P27.段码接P1,T0计数 */ #include<reg51.h> #define DOU 1818//按键消抖时间 sbit led_1=P2^0; sbit led_2=P2^1; sbit led_3=P2^2; sbit led_4=P2^3; sbit led_5=P2^4; sbit...

尚志市18046433040: 一个单片机C51程序,急用. -
涂砍盐酸: #include<REG51.H>#define uchar unsigned char uchar code XS_W[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sbit P20=P2^4; sbit P21=P2^5; sbit P22=P2^6; sbit P23=P2^7; sbit NB_R=P1^0;//南北_红 sbit NB_G=P1^1;//南北...

尚志市18046433040: 那位大师能帮我写一个C51单片机的程序!小生初学C51自己想的设计没能想通,若能完成感谢大师!具体如下: -
涂砍盐酸: #include char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; sbit D1=P3^7; char count, N; void delay(int z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void main() { P2=0x3f; while(1) { if(D1==0) {delay(5); if(D1==0) { count++; if(...

尚志市18046433040: 单片机C51一个模拟三层电梯的小程序问题 -
涂砍盐酸: 你的思路有一点点问题,电梯的情况是这样的,在按第一层按键时,电梯有可能在第一层,有可能在第二层,也有可能在第三层,还有可能正在运行中,其它二层的情况类似,你采用延时的方法不可取,给你一个思路,可以采用步进电机来控制,通过计算步进电机的步数,也就是计算脉冲个数来计算电梯所在的位置,这样是很准的,而不是采用延时,因为延时不准的话,电梯就会像你所说的那样在几楼和几楼之间徊徘,我只是提出我的思路,希望对你有所帮助.

尚志市18046433040: 急,求一个简单的单片机小程序,能实现某个小功能的,要有较详尽解释. -
涂砍盐酸: 给你个51跑马灯流水灯的程序,比较经典还不难理解,包含编程的基本单元,我加了标注//描述: 跑马灯程序 #include#include //延时子程序ms级别的 void delayms(unsigned char ms) { unsigned char i; while(ms--) { for(i = 0; i} }// 主程序main() ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网