新闻详情
 
当前位置
带有矩阵键盘的数字钟设计
作者:管理员    发布于:2019-05-18 20:38:48    文字:【】【】【
数字钟是人们日常生活中常见的电子产品,具有精度高、功耗低、运行稳定、携带方便等特点。数字显示“时、分、秒”的数字钟,广泛应用于诸多场合,也是单片机课程中重要的项目训练。AT89C51单片机是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,4k字节Flash 闪速存储器,128字节内部RAM,器件采用ATMEL公司的高密度、非易失性存储技术生产,具备两个16位定时/计数器。本设计利用单片机STC89C52 的定时器实现时钟的运行,“时、分、秒”用数码管显示,利用4*4矩阵键盘外部修改时间。大多数的数字钟采用独立键盘,递增或递减式调整时间。本文采用程序调整时部、分部、秒部,数字键0-9直接调节时间,使用起来十分方便。热气球

1 硬件系统

本设计方案是利用单片机内部16位的定时/计数器进行中断定时, 配合软件程序实现24小时制计时功能。上电后系统自动进入时间显示, 从初始值(由程序设定)开始计时,可以用4×4矩阵键盘设置初始值或修改时间。如图1所示,数字钟的硬件电路图。

1.1 单片机最小系统

本次设计的数字钟,采用AT89C51单片机,XTAL1和XTAL2引脚之间接一个12MHz的晶振和两个33pF的电容。第9引脚接复位电路,第20引脚接地,第31引脚、40引脚接电源,组成了单片机最小系统。

1.2 数码管

数码管是最常用的显示器件,分为静态显示和动态显示。动态显示就是将所有数码管的段选线并联在一起,通过控制位选信号来控制数码管的点亮。轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。在proteus仿真中选择六个共阳数码管合一的模块7SEG-MPX6-CA-BLUE,123456表示位选的管脚,接P2口;abcdefg dp是数码管的段码输入,接P1口。

1.3 矩阵键盘

本设计采用4×4矩阵键盘,P3口的低四位作行线,P3口的高四位作列线,按键设置在行列的交点上,行、列线分别连接到按键开关的两端,可组成16个键的键盘。判断有无按键按下的方法是:1、由软件设置行线高电平,列线低电平,设置P3=0x0F,判断是否有键按下;2、如果有键按下,依次按列扫描,确定是哪个键按下。按下星号键后,依次修改时、分、秒部时间,按下0-9键有效,其它键无效。

2 软件

主程序:如图2所示,主程序流程图,主程序主要对中断源和定时器初始化。选用定时器T0,定时时间为50ms,由于系统晶振采用是12MHz,设置TH0=0X3C,TL0=0XB0。设置四个全局变量con、 second、minute、hour和中断函数完成24小时计数。T0定时50ms,con计到20时,1秒到,second加1;second计到60,1分钟到,minute加1,second清零;minute计到60,1小时到,hour加1,minute清零;hour计到24,hour清零。

显示子程序:六个共阳数码管依次显示时、分、秒,采用动态扫描的方式,LED0至LED5为数码管位选,P1为数码管段选。

键盘子程序:4*4矩阵键盘,可以显示数字0-9、*键、#键、字母A、B、C、D键。首先判断是否有键按下,如果有键按下,依次按列扫描,确定是哪个键按下。有键按下后,延时一段时间后再次判断是否按下,进行防抖处理。定义变量keyshu,矩阵键盘按下的键转化为十六进制赋值给keyshu,以备键盘调整时间子程序调用。

键盘调整时间子程序:如果按下*键,进行4*4键盘调整显示时间子程序。利用变量keyshe依次对时部、分部、秒部高位和低位进行修改,此时只有数字0-9键有效,其它键无效。同时还要注意小时的高位范围为0-2,分和秒的高位范围为0-5,按键超出此范围则为无效。
脚注信息
版权所有 Copyright(C)2009-2010 贵州热气球租赁