51单片机怎么用按键控制一个数码管,按一下显示一

作者&投稿:贸隶 (若有异议请与网页底部的电邮联系)
51单片机怎么用按键控制一个数码管,按一下显示一个数字,顺序显示~

1、首先,要把代码写好,点亮数码管。

2、代码写完后,要确认原先写好的代码是不是正确的。

3、确认代码无误后,进入下一步,就是在这一行代码(箭头所指)的地方,将这四个字删去。

4、然后如图所示,四个字已经删去,只要改成数字相应的代码即可。

5、这里改成的是代表数字0的代码,如图所示。

6、最后写好代码后,将生成的hex文件写进单片机,数码管显示的数字就变成0了。

SBUF=dispcode[num0];//第1位 while(!TI); TI=0; led0=0; delay(2); led0=1; SBUF=dispcode[num1];//第2位 while(!TI); TI=0; led1=0; delay(2); led1=1; SBUF=dispcode[num2];//第3位 while(!TI); TI=0; led2=0; delay(2); led2=1;

/*-----------------------------------------------名称:单个共阳数码管动态显示变化数字内容:通过循环检测P1口按键输入值,然后用数码管输出,没有按键按下时原值不变------------------------------------------------*/#include//包

名称:单个共阳数码管动态显示变化数字 内容:通过循环检测P1口按键输入值,...


怎样用单片机编程。两个独立按键,控制数码管的加减?
这个很容易嘛,你先设置一个寄存器,然后一直扫描两个按键(假设K1按下为加,K2按下为减),假设检测到K1被按下,寄存器就加1,如果检测到K2被按下,寄存器就减1;然后再调用显示函数就OK了。、 ORG 0000H LJMP START ORG 0030H START:MOV R2, #1 LOOP:CALL DISP JB P1.6,...

单片机51按下按键key1流水灯从上到下亮3次代码怎么写
可以采用以下步骤:1、要定义按键输入口和流水灯输出口。使用单片机51的P1和P2口,分别定义按键输入口和流水灯输出口。2、要初始化按键输入口为低电平。当按键没有被按下时,按键输入口就处于低电平状态。3、在主函数中,使用一个无限循环,不断检查按键输入口是否被按下。按下按键,则点亮第一个灯...

怎样用单片机实现按键 1下是一个信号 2下是另一个信号
是想实现鼠标单击和双击那样的效果吗?可以在一次按键后设定一个标志位,比如FLAG=1,延时1秒,然后如果1秒内。没的按键动作,则FLAG=0,如果有按键则判断。if(key==0&&flag==0){ flag=1;while(key==0);while(key==1&&num<1000){if(key==0&&flag==1){信号2;flag=0;break;} delayms(1...

51单片机中用数码管做秒表时怎么用一个独立按键控制开始和暂停,即第一...
其实,控制秒表的启动和停止,很简单。要做秒表,一定要用定时器吧,假如用T0,那开始初始化时,不写TR0=1,先不启动。\\x0d\\x0a当按一下键,再启动,TR0=1,就开始计时了。\\x0d\\x0a再 按一下键,就停止,TR0=0,就不计时了。\\x0d\\x0a程序好写,先 定义一个按键\\x0d\\x0asbit ...

单片机用1个按键控制60秒定时,通过2个数码管显示。按一下启动,再按停止...
CLR P2.1 MOV A, B POP B MOVC A,@A+DPTR MOV P0,A ;把显示码传至A口 SETB P2.0 ;选通P2.0,显示 ACALL DELAY1S CLR P2.0 AJMP LOOP KEY_CHECK: ;看有没有键按下 MOV A,P3 ANL A,#0fFH ;逻辑与 CJNE A,#0FFH,KEY_CER ;如果读入的与...

51单片机怎样用按键实现数码管位切换
这要写程序,也是稍麻烦一点的。大概思路是这样的,用一个按键切换显示位,按一下,切换一位,是这样吧。用一个变量计数,每按一次键加1,一共切换多少位,就计数到多少。计到最大再回到第一位计数。例,四位数码管,计数为0,1,2,3,超过3就回0。好了,按键解决了,再解决显示的,计数值对...

我要用51如何单片机实现一个按键控制功能.?
我想,你可以这样,先好好学习一下中断...这样应该挺好实现的...如果有原理图的话,写这个还是不难的...

单片机P1口接8个弹性按键(P1.0~S0..P1.7~S7),P2口接一数码管,用C语言...
while(1){ if(key1==0){ delay1ms(10); \/\/按键去抖动 if(key1==0){ num=1;P0=table[num];} while(!key1);} if(key2==0){ delay1ms(10); \/\/按键去抖动 if(key2==0){ num=2;P0=table[num];} while(!key2);if(key3==0){ num=3;P0=table[num];} while(!key3);...

51单片机怎么用一个按键控制P0,P2顺序输出高电平
下面这个程序里面有你要的东西,自己找找。include"reg51.h"void delay(int n);sbit K1=P3^3; \/\/LED左移按键 sbit K2=P3^5; \/\/LED右移按键 sbit K3=P3^6; \/\/开启手动按键 sbit K4=P3^7; \/\/开启自动按键 bit mark1=0;bit mark2=0;unsigned char a,b,c,d;int x;v...

单片机编程 四个按键 K1=p1.1 K2=p1.2 k3=p1.3 k4=p1.4 p5 p6输出(k1...
include "reg51.h" \/\/ 试试 sbit k1 = P1^0;\/\/按键1 sbit k2 = P1^1;\/\/按键2 sbit k3 = P1^2;\/\/按键3 sbit k4 = P1^3;\/\/按键4 sbit p5 = P1^5; \/\/输出1 sbit p6 = P1^6; \/\/输出2 bit t1, t2;void main(void){ while(1){ if(k1==0 && t1==0) {t1...

郫县18625464357: 51单片机按键对数码管的控制 -
连亭复方: /*----------------------------------------------- 名称:单个共阳数码管动态显示变化数字 内容:通过循环检测P1口按键输入值,然后用数码管输出, 没有按键按下时原值不变 ------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不...

郫县18625464357: 51单片机控制数码管显示时钟,独立按键怎么弄 -
连亭复方: 独立按键处理起来是非常简单的,一般都是IO口单独控制,所以只需要消抖和判断按键按下抬起状态就好.比如: sbit key=P1^0; if(key==0) {delay(10);if(key==0){keyval=1;while(key==0);} }

郫县18625464357: 51单片机中键盘控制数码管显示有谁会? -
连亭复方: 用51的话,由于51的I/O没有高阻态,用中断去扫描键盘的话你给的电路图是行不通的(个人意见仅供参考),想要节省CPU开销的话可以用定时器,定时扫描键盘.下面是仿真图和程序.#include#define uint unsigned int #define uchar ...

郫县18625464357: 如何在51单片机矩阵键盘里按一个键可实现数码管动态显示而不是一个值 -
连亭复方: #include<reg51.h>#define uchar unsigned char; uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f void delay(unsigned int a) { unsigned int i,j; for(i=0;i<a;i++) for(j=0;j<120;j++); } uchar ...

郫县18625464357: 请问单片机中要怎么用按键控制数码管显示的模式..用C语言编程.. -
连亭复方: 可以用按键中断,也可以用按键查询. 用按键中断:如果按键按下就进入中断子程序里,然后在中断子程序里改变显示模式即可 按键查询:用while 语句查询某个按键是否按下,如果未按下则继续执行子程序,如果按键按下则跳入到事先写好的子程序,在子程序里改变显示模式希望能帮到你!

郫县18625464357: 51单片机中用数码管做秒表时怎么用一个独立按键控制开始和暂停,即第一次按下计时,在按下时暂停? -
连亭复方: 其实,控制秒表的启动和停止,很简单.要做秒表,一定要用定时器吧,假如用T0,那开始初始化时,不写TR0=1,先不启动.当按一下键,再启动,TR0=1,就开始计时了.再 按一下键,就停止,TR0=0,就不计时了.程序好写,先 定义一个按键 sbit key=P1^1; //具体是哪个 键,你自己改 主程序中,判断按键和启动/停止 if(key==0) { delay(); //具体延时时间自己定 if(key==0) { TR0=!TR0; //每按一次,取反 一次 while(key==0); } }

郫县18625464357: 51单片机怎样用按键实现数码管位切换 -
连亭复方: 这要写程序,也是稍麻烦一点的. 大概思路是这样的,用一个按键切换显示位,按一下,切换一位,是这样吧. 用一个变量计数,每按一次键加1,一共切换多少位,就计数到多少.计到最大再回到第一位计数.例,四位数码管,计数为0,1,2,3,超过3就回0. 好了,按键解决了,再解决显示的,计数值对的数码管,让它显示出小数点,就是要调整的位.按键切换数码管,就是显示小数点的位在切换. 最后是,变量值的修改,根据按 键计数值,来判断那个变量要调整修改,做相应的加1,或减1计算就行了.

郫县18625464357: 51单片机 独立键盘控制静态数码管 -
连亭复方: 定义开关引脚 sbit k1=P1^0; sbit k2=P1^1; 依次类推,向下定义 void main() { while(1) { if(k1==0) P2=0xC0; //显示0的代码 if(k2==0) P2=***; //显示0的代码 依次类推} } 希望对你有帮助.

郫县18625464357: 单片机可以实现一个独立按键控制数码管多个数字吗? -
连亭复方: 一个按键控制4个数码管显示4个数,最简单的方法是按一次键计一个数,最大数是9999,即可显示四位数.再简单点,按一次键开始自动计数,最大数还是9999,再按一次键停止计数.这样控制程序好写.长按和短按对于初学者有点难,当然了,要能写出程序来是最好啦.

郫县18625464357: 51单片机c语言设计,按键控制数码管,依次按下显示0到9循环 -
连亭复方: #include<reg51.h> sbit k1=P1^0; #define uint16 unsigned int #define uchar unsigned char uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay() { uint16 i=1000;while(i--); } void main() { uchar n ; P2=0xfe; P1=0xff; ...

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