单片机中通过按钮实现两路显示思路总结.doc_第1页
单片机中通过按钮实现两路显示思路总结.doc_第2页
单片机中通过按钮实现两路显示思路总结.doc_第3页
单片机中通过按钮实现两路显示思路总结.doc_第4页
单片机中通过按钮实现两路显示思路总结.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

51单片机怎样设按键切换数码管显示时间和日期?在51单片机中6位共阳数码管显示中,怎样设置某一按键,按下第一次从时间显示方式转为日期显示方式,按第二次从日期显示方式转为星期显示方式,按第三次显示温度,按第四次返回显示日期?你要设置一个标志变量,如flag,在进入按键程序后,flag+;然后加个控制判断语句if(flag3)flag=0;这样,在显示模块中再加入开关语句;switch(flag) case 0:.显示时间. case 1:.显示日期。. case 2:.显示温度。 多路的情况采用这种编程切换按钮用个标志位,比如未按下为0,按下为1 .判断标志位为0 时转数字钟程序 ,为1 时转频率计程序只有两路的情况切换功能的另一种思路:设置个变量,进行计数;等于1显示时间,等于2显示日期;在按键上设个变量,做累加,不同的按键值进各自的显示函数单片机怎样通过按键在程序实现多功能?三档功能转换:0挡-关闭功能1和2;1档-开启功能1;2档-开启功能,可以给出个大致框架么1条回答如果你就是只有一个按键,可以这样做:设置一个寄存器Key_Times_Buf,然后记录第几次按键,通过这个值,处理相应的程序. if(Key_Pin=0) Key_Times_Buf+; if(Key_Times_Buf=3) Key_Times_Buf=0; switch(Key_Times_Buf) case 0: /程序0 break; case 1: /程序1 break; case 2: /程序2 break; 用单片机控制8个发光二极管依次发光,产生跑马灯的效果,3种效果循环,要求通过按钮切换效果!用单片机控制8个发光二极管依次发光,产生跑马灯的效果,3种效果循环,要求通过按钮切换效果!只能用一个开关切换 ,C语言不用中断和定时。谢谢、! STC11F,也可任意单片机类型。 有完整的程序可以,没的话请教怎么用一按键实现3种状态的切换。这个程序的关键点是要在显示子程序执行的过程中,多对按键进行检测。检测到有按键按下时,即退出子程序,返回到主函数的按键检测,对num加一。#include#include#define uchar unsigned char#define uint unsigned intsbit key1=P35;uchar temp;uchar num;void delay(uint z)/延时程序 uint x ,y; for(x=z;x0;x-) for(y=110;y0;y-);void display0()/显示效果1 uchar i; temp=0xfe; for(i=0;i8;i+) if(key1=0) break;/对按键进行检测 P1=temp; temp=_crol_(temp,1); delay(50); P1=0xff; temp=0x7f; for(i=0;i8;i+) if(key1=0) break;/对按键进行检测 P1=temp; temp=_cror_(temp,1); delay(50); void display1()/显示效果2 uchar i; temp=0xf8; for(i=0;i8;i+) if(key1=0) break;/对按键进行检测 P1=temp; temp=_crol_(temp,1); delay(50); P1=0xff; temp=0x1f; for(i=0;i8;i+) if(key1=0) break;/对按键进行检测 P1=temp; temp=_cror_(temp,1); delay(50); void display2()/显示效果3 uchar i; temp=0x99; for(i=0;i8;i+) if(key1=0) break;/对按键进行检测 P1=temp; temp=_crol_(temp,1); delay(50); P1=0xff; temp=0xcc; for(i=0;i8;i+) if(key1=0) break;/对按键进行检测 P1=temp; temp=_cror_(temp,1); delay(50); void anjian() if(key1=0)/按键检测 delay(5);/按键消抖延时 if(key1=0) num+; if(num=3) num=0; while(!key1); void main() while(1) anjian();/按键检测并赋num值 switch(num) case 0:display0();break; case 1:display1();break; case 2:display2();break; 51单片机按键实现点动与锁存切换功能RT1号键原先是点动 按下二号键,一号键变锁存。再按二号键一号键回到点动这样的循环、各位求解答啊其实就是根据二号键来解释1号键的功能,那么用一个变量对应二号键,这个变量只有两种状态0和1,初始为0,当按二号键时变为1,再按二号键时变为0,如此循环变换。那么这个变量为0时,按1键是点动,变量为1时按1键就是锁存,这样就解决了你的切换功能。追问这个语句我不太会。就是用一个变量对应二号键这句话 这句话会了我就明白了回答假如这个变量是flag,那么当检测到二号按键时,flag = (flag+1)&1,这样flag的值就是0、1变化了,而且变化是由二号按键触发的。单片机用一个按键随意切换控制三种状态#include#define uchar unsigned charuchar times;sbit key=P10;sbit ss1=P11;sbit ss2=P12;sbit ss3=P13;void delay() uchar i,j; for(i=0;i30;i+) for(j=0;j120;j+);main() while(1) if(key=0) delay(); if(key=0) times+; times%=0x03; switch(times) case 0:ss1=0;ss2=1;ss3=1;break; case 1:ss1=1;ss2=0;ss3=1;break; case 2:ss1=1;ss2=1;ss

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论