单片机之利用按键来使数码管上两位示数增加

发布者:心有所属最新更新时间:2019-08-15 来源: eefocus关键字:单片机  按键  数码管  两位示数 手机看文章 扫描二维码
随时随地手机看文章


#include

#include "./delay/delay.h"

 

sbit seg_select = P2^1;

sbit bit_select = P2^0;

sbit key1 = P1^0;

 

 

#define SEGPORT  P0

 

 

unsigned char segdata[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

unsigned char bitdata[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsigned char TempData[2];

 

 

void display(void)

{

/*消除重影*/

  static unsigned char i = 0;

  SEGPORT = 0x0;            

  seg_select = 1;

  seg_select = 0;

  

  SEGPORT = 0xff;

  bit_select = 1;

  bit_select = 0;

  SEGPORT = TempData[i];

  seg_select = 1;

  seg_select = 0;

  

  SEGPORT = bitdata[i];

  bit_select = 1;

  bit_select = 0;

  

    i++;

    if(2 == i)

    {

i = 0;

}

}

 

void timer0_init(void)

{

EA = 1;                                //打开总中断

  TMOD |= 0x01;                         //选择中断方式

  TH0 = (65536 - 2000) / 256;

  TL0 = (65536 - 2000) % 256;

  ET0 = 1;

  TR0 = 1;

}

 

void timer0_isr(void) interrupt 1

{

TH0 = (65536 - 2000) / 256;

  TL0 = (65536 - 2000) % 256;

  display();

  

}

 

void main()

{

unsigned char disdata = 0;

timer0_init();

while(1)

{

  /*消抖*/

    if(0 == key1)          //有按键按下

  { 

    delay_ms(10);

    if(0 == key1)       //确实有按键按下

  {

  while(!key1);    //有按键抬起

  delay_ms(10);

  while(!key1);    //确实有按键抬起

  }

  disdata++;

  if(100 == disdata)

  {

  disdata = 0;

  }

}

TempData[0] = segdata[disdata / 10];

TempData[1] = segdata[disdata % 10];

    }

 

}


/************************************/

/*delay.h*/

#ifndef _DELAY_H_

#define _DELAY_H_

 

extern void delay_us(unsigned char t);

extern void delay_ms(unsigned char t);

extern void delay_s(unsigned char t);

 

#endif


/***************************************/

/*delay.c*/

void delay_us(unsigned char t)

{

while(--t);

}

 

void delay_ms(unsigned char t)

{

while(t--)

{

delay_us(245);

delay_us(245);

}

}

 

void delay_s(unsigned char t)

{

    while(t--)

{

        delay_ms(200);

delay_ms(200);

  delay_ms(200);

delay_ms(200);

  delay_ms(200);

}

}

关键字:单片机  按键  数码管  两位示数 引用地址:单片机之利用按键来使数码管上两位示数增加

上一篇:单片机之矩阵键盘的驱动程序
下一篇:利用单片机的数码管模拟时钟的显示时间

推荐阅读最新更新时间:2024-11-10 14:55

意法半导体(ST)的安全微控制器获索尼选用
意法半导体的技术为日本带来首个单片集成多个非接触式支付应用的芯片卡,拥有独一无二的自动射频检测功能,可提高支付卡的交易速度和便利性。 中国,2014年11月19日 ——横跨多重电子应用领域、全球领先的半导体供应商、全球三大智能卡芯片厂商之一的意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)宣布,旗下的双接口安全微控制器获索尼 (Sony) 选用,用于设计新一代具有微支付功能 (micropayment-enabled) 的芯片卡。新一代支付卡有望在2016年上半年进入日本消费市场。 作为市场上最先进的双接口(接触式/非接触式接口)安全微控制器,兼具出色的计算性能、优异的能效、
[安防电子]
采用单片机和CPLD器件实现仿人手臂形假肢控制系统的设计
假肢是人体缺损肢体的替代物,用以弥补缺损肢体的形状和功能。本文针对失去整个手臂的情况,设计出一种仿人手臂形假肢的控制系统。使用者可以补偿部分缺失的功能,达到生活自理甚至于可以从事基本劳动,减少身心痛苦,同时也相应地解放了护理工作用。在设计中,采用C8051F020单片机作为主控制器,并通过CPLD(Complex Programmable Logic Device)完成对各个关节控制量的检测以及凌阳61单片机实现语音控制功能。 1、 机器人假肢结构 多自由度机器人型假肢(上肢)拥有6个自由度,其结构原理图如图1所示。 2、 假肢控制系统的硬件设计 2.1 控制器的工作原理 控制系统原理框图如图2所示,主要由控制、驱动、被控
[单片机]
采用<font color='red'>单片机</font>和CPLD器件实现仿人手臂形假肢控制系统的设计
51单片机LED点阵显示文字
51单片机LED点阵显示文字 代码如下。 #include REGX51.H #define u8 unsigned char sbit SER = P3^4; sbit RCLK = P3^5; sbit SCLK = P3^6; //横向 D0- D7 u8 tao ={8,240,8,15,8,136,126,145,8,82,8,2,62,8,8,231,8,129,126,129,72,231,72,129,88,129,40,129,8,255,8,129}; u8 heng = { 0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08, 0x00,0x10,0x00,0x
[单片机]
51<font color='red'>单片机</font>LED点阵显示文字
STM32CubeMX学习教程之三:GPIO输入之利用SysTick中断给按键去抖
本文主要讨论软件去抖。实现方法是通过SysTick中断每1ms对按键进行扫描,当检测到连续的稳定无抖动电平信号(长度可设置)之后,才进行相应的逻辑操作。 软件版本: STM32CubeMX V4.25.0 System Workbench V2.4 硬件:OneNet 麒麟座V2.3 在STM32CubeMX中新建项目,选择正确的MCU型号 然后设置RCC和SYS,然后根据板子实际情况设置时钟(麒麟座外部晶振是12M,STM32F103x的最高主频是72M) 然后设置GPIO_Output (连接到LED) 和GPIO_Input(连接到按键)。注意上一篇文章里面按键连接的引脚设置为外部中断模式,这里只需
[单片机]
STM32CubeMX学习教程之三:GPIO输入之利用SysTick中断给<font color='red'>按键</font>去抖
stc单片机1TMCU控制DS1302程序
SCLK BIT P1.0 ;DS1302时钟口P1.0 IO BIT P1.1 ;DS1302数据口P1.1 RST BIT P1.2 ;DS1302片选口P1.2 NOW DATA 40H ORG 0 JMP Reset ORG 100H Reset: CALL DS1302_Initial ;初始化DS1302 MOV DPTR,#INIT CALL DS1302_SetTime ;设置初始时间 MOV R0,#NOW CALL DS1302_GetTime ;读取当前时间 JMP $ INIT: //
[单片机]
单片机编程器分类及功能解析
 通用编程器      G840联机/脱机烧写编程器   1、40针准全驱动,进口优质锁紧座。满足绝大多数 IC 烧录的脚位需求,充分提供了未来升级的基础条件。   2、用户享受终身升级支持。纯软件升级,只要从网上下载最新版本软件,就可完成升级。您的编程器将永远是最新的。   3、提供联机操作模式和脱机操作模式,既适用于开发、试验、教学,又适用于小批量量产,无须总是开电脑。   4、触摸键控制,你可以不用点击 鼠标 ,使操作更为方便。触摸键经久耐用,永不损毁。   5、针脚接触检测准确无误。遇接触不良或插放错误,及时中止操作进程。   6、操作结果三重指示:软件界面显示、指示灯显示、可
[单片机]
<font color='red'>单片机</font>编程器分类及功能解析
使用git管理KEIL5开发的单片机工程文件
前置知识 使用KEIL5开发stm32比较方便,在程序编译、连接等中间过程中会产生很多无用文件。比如一个STM32项目正常编译通过后整个项目大小为: 使用正点原子提供的keilkill.bat执行无用文件删除后文件大小为: 可以看出体积相差10倍多,一般为了备份保存,我们只需要保存执行完keil killbat的项目文件夹即可。 注意:删除无用文件后,不影响程序的正常用呢个。通过build可进行重新编译生成。 基本原理 git可指定忽略的文件类型,我们只需要将上述keilkill.bat脚本中指定删除特定扩展名的文件类型设置为git忽略即可。 具体操作 第一步:增加忽略文件 在git工程根目录下新建 .gitign
[单片机]
使用git管理KEIL5开发的<font color='red'>单片机</font>工程文件
浅谈STC单片机特殊IO的用法
在正常情况下,51单片机在上电复位后,所有IO口默认都为高电平,都工作在准双向IO模式,但是STC15系列以后的单片机出现了IO的4种工作模式,一个带有复用功能的IO在上电复位后就会出现不是准双向IO模式的情况,这些引脚在使用时就需要我们多多关照啦。 1、PWM相关的引脚 在STC15系列单片机中,于PWM2到PWM7相关的12个IO,在上电复位后,默认为高阻输入模式,需要对外输出时,需要用户通过程序将其设置为推挽输出或者是准双向IO模式。 在STC8系列单片机中,和PWM相关的所有IO复位后是准双向IO模式,用户可以在通过ISP软件烧写(下载)程序时,选择将其设置为开漏输出模式,同样用户也可以通过程序的方式设置为所需要的工作
[单片机]
浅谈STC<font color='red'>单片机</font>特殊IO的用法
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved