51单片机C语言可调时钟

程序介绍:六位共阳数码管显示,时·分·秒均可用按键调节。短按时选位的时间按一次加一下,长按不放时时间按一定的频率增加!

本程序的是我参考别人的基础上移植、再加上自己的想法做出来的,程序的亮点就是完全用单片机定时中断写的,避免了用延时写程序时,调节时间时其它未选择的位的的闪烁,使用中断使CPU得到释放,另外还可以具有长安连续增加的功能!

程序的不足之处:不能实现这样的功能,既::系统有四个按键,功能分别是 调整,加,减,确定。在按下调整键时候,显示时的两位数码管以1 Hz 频率闪烁。如果再次按下调整键,则分开始闪烁,时恢复正常显示,依次循环,直到按下确定键,恢复正常的显示。在数码管闪烁的时候,按下加或者减键可以调整相应的显示内容;

如果有哪位高数路过看到,请不吝赐教782547273@

过客与10年10月12日

#include

#define uint unsigned int

#define uchar unsigned char

bit dao1S=0; //到1秒标志位

bit dao2MS=0;// 到2毫秒标志位

bit dao10MS;// 到10毫秒标志位

sbit dula=P2^6;// 定义段选

sbit wela=P2^7;//定义位选

#define LED P0 //定义数据口

sbit key1=P3^4; //定义按键

sbit key2=P3^5;

sbit key3=P3^6;

sbit key4=P3^7;

#define KEY_1 0x0e //定义各按键键值

#define KEY_2 0x0d

#define KEY_3 0x0b

#define KEY_4 0x07

#define KEY_NULL 0x0f

#define KEY_PRESS 0x80 //定义各按键状态

#define KEY_LONG 0x40

#define KEY_STATE_INIT 0 //定义按键状态

#define KEY_STATE_PRESS 1

#define KEY_STATE_LONG 2

#define KEY_STATE_UP 3

#define KEY_LONG_PERIOD 50 //定义长按键的TICK数,以及连发间隔的TICK数

#define KEY_CONTINUE_PERIOD 25

uchar tab[]={0,0,0,0,0,0};//时间缓冲区

uchar weitable[]={0x01,0x02,0x04,0x08,0x10,0x20};//显示位

uchar tab1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极数码管编码0-9

void nint() //中断初始化

{ TMOD=0X01;

TH0=0XF8;

TL0=0XCC;

TR0=1;

ET0=1;

}

uchar KeyScan() //按键扫描函数

{

if(key1==0) return KEY_1;

if(key2==0) return KEY_2;

if(key3==0) return KEY_3;

if(key4==0) return KEY_4;

return KEY_NULL;

}

uchar GetKey()

{

uchar keyRetu=0,keyTemp=KEY_NULL; //返回的按键值,按键情况

static uchar s_keyState=KEY_STATE_INIT,keyTime=0,keyLast=KEY_NULL; //按键状态,按键按下的时间计数器,上次按键值

keyTemp=KeyScan();

switch (s_keyState)

{

case KEY_STATE_INIT:

if(keyTemp!=KEY_NULL) //检测到有按键,转到状态1,相当于是消抖过程

{

s_keyState=KEY_STATE_PRESS;

}

break;

case KEY_STATE_PRESS:

if(keyTemp!=KEY_NULL) //再次检测到有按键,转到状态2

{

s_keyState=KEY_STATE_LONG;

keyTime=0; //清零按键时间计数器

keyLast=keyTemp; //保存键值,以便在释放按键状态返回键值

单片机c语言按键调整时钟,51单片机C语言可调时钟.doc相关推荐

  1. c语言按键松手检测,51单片机按键检测的方法

    本文旨在介绍单片机入门的基础知识,为初接触或即将接触单片的新手提供一个入门指导.本文章会陆续推出,隔几天一个章节.希望对广大即将接触单片机的人有所帮助,如果有错误欢迎回帖指出与本人交流或加入QQ群14 ...

  2. c语言 按键切换显示屏,51单片机lcd1602按键切屏

    大家好,我又来了,这次是基础切屏(我也只会这基础..),我用的是stc15w4k56s4的单片机,作用是,可以使用和51一样的操作. 切屏 切屏: 例如我想在两个屏幕之间切换:1.先把每个屏幕应该显示 ...

  3. C语言极速学习开发——51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学习的精神之灯-下)

    系列文章目录 提示:本文章为系列文章,系列文章的所有文章的目录后期会时刻更新,喜欢的朋友请收藏好 <第一章 C语言极速学习开发--51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学 ...

  4. 单片机原理与实践学习记录之51单片机I/O口简单应用

    单片机原理与实践学习记录 第二课(更新时间:2021.9.3) 51单片机I/O口简单应用 C51中常用的头文件 ​ 通常有reg51.h,reg52.h,math.h, ctype.h, stdio ...

  5. 《电子DIY》之《单片机实践项目》之(51单片机)proteus中带编码信号的电机的详细讲解及电路图绘制(motor encoder)

    此课程主要讲解如何使用51单片机进行实战应用,分为多次课,每次课都会分别围绕一个课程设计或毕业设计(实践项目)展开.手把手叫你学51单片机."Proteus仿真","电子 ...

  6. 《电子DIY》之《单片机实践项目》之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解

    <电子DIY>之<单片机实践项目>之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解 添加链接描述

  7. 基于51单片机的太阳能追光系统 基于51单片机的锂电池太阳能充电器

    基于51单片机的太阳能追光系统 基于51单片机的锂电池太阳能充电器 基于51单片机的锂电池追光充电系统 具体功能:根据太阳光照方向改变光板朝向,利用太阳能给锂离子电池充电,实时显示上下左右四个方向不同 ...

  8. 单片机c语言按键调整时钟,关于单片机电子时钟按键部分(调时间的)如何设计...

    给你一个示例参考 //实验平台:TX-1C开发板(板子上是有源蜂鸣器,程序按无源编写的,不影响正常使用) //K1键调整选择,K2键+,长按连+,K3键-,长按连-,K4键闹钟设置 //定时器初始化程 ...

  9. 51单片机8255扩展c语言,参阅:基于51单片机的实时时钟的设计与开发8255扩展io口1V0.1...

    <基于51单片机的实时时钟的设计与开发(8255扩展io口) (1).doc>由会员分享,可免费在线阅读全文,更多与<基于51单片机的实时时钟的设计与开发(8255扩展io口) (1 ...

最新文章

  1. L2.五.input语句
  2. idea中新增package总是嵌套的解决方法
  3. 下列哪个不是目前python里的内置模块-不吹不擂,你想要的Python面试都在这里了【315+道题】...
  4. sql server监控
  5. 22Java之JDBCTemplate总结
  6. Git之创建远程分支和删除远程分支
  7. php转译html,使用php转义输出HTML到JavaScript
  8. 美团技术专家云鹏:写给工程师的十条精进原则!
  9. Java设计模式1:设计模式概论
  10. cuSPARSE库:(十一)cusparseCreateSolveAnalysisInfo()
  11. JAVA设计模式-委派模式(Delegate)
  12. UI设计师遇到瓶颈如何自我提升?
  13. Spring JMX之二:远程访问MBean(spring通过annotation暴露MBean)
  14. pthread 编程
  15. gif转换成jpg,这个方法很简单
  16. ListView中如何优化图片
  17. ChatGPT 爆火!谷歌、微软、百度纷纷下场?
  18. 江苏东方四通科技股份有限公司参观学习有感
  19. 路由器_内网端口映射
  20. Java的自学之旅10

热门文章

  1. 2021-2027全球与中国移动设备用IC载板市场现状及未来发展趋势
  2. 2023年认证杯数学建模网络挑战赛B题考订文本思路分析
  3. Omni Recover 1.3.5 Ios数据恢复工具 http://www.macxiazai.cn/downloads/omni-recover-1-3-5/
  4. [ARC99E]Independence——二分图染色+DP
  5. openstack入门及应用
  6. 中国矿业大学计算机应用研究生就业,矿大算什么水平的211?附中国矿业大学就业方向...
  7. 2023年QQ群托软件 假人自动聊天 下注机器人赶紧退了,都是假人
  8. 简易银行账户系统 java
  9. 标准化的用户养熟流程如何设计?
  10. “元宇宙”来了,勿忘风险与挑战