0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数码显示按键次数

冬至子 来源:单片机技术宅 作者:小代 2023-06-13 16:40 次阅读

我们学习单片机,写单片机程序,首先要看看我们做实验的板子的原理图,这是最基本的,我们要知道了单片机的接口的使用情况,电路的驱动方式,所使用的的芯片,这样我才能去开始写程序。

一、电路原理分析

图片

如上图所示就是我们整个板子的原理图了,今天我们只分析数码管和按键相关的部分,其他部分会在后续的教程中详细说明。上图中左上角的U1为主控STC15W408as,28引脚的DIP封装。右上角的LED1就是4位一体的共阴数码管,带时间秒显示点,紧接着下面的四个三极管Q6-Q9你和电阻R17-R20组成了共阴数码管的驱动电路

在此三极管是作为开关使用,用它来控制数码的阴极的选通与关短;下面点的S1-S3为三个按键,在今天,我们用着三个按键来控制数码管上显示的字符的变化;在按键的左边有个U9和撒你管Q1组成的是蜂鸣器驱动电路。电路介绍完了,接下来看单片机接口使用情况。我们数码管的8个段选接单片机P2口,四个位选通过三极管驱动电路,分别接P3.1/P3.2/P3.3/P3.6,三个按键分别接单片机的P1.2/P1.3P1.4。蜂鸣器做发声元件,实现按键音提示,接的P3.7。电路部分全部介绍完了,接下来就是编程部分了。

二、程序原理分析

首先我们来说数码显示的原理。现在我们的显示电路采用的是动态显示的驱动方式,这样,在每个时刻,其实只有一位数码管是被选通点亮的,因为我们人眼的视觉暂留和LED发光管的余晖,当数码管再快速的选通点亮后,我们人眼看到的就是全部都是点亮的了。具体原理网上有一堆资料,我们不做过多说明。数码管显示首先得有个段选码,有些地方叫字形码,也就是说我要显示个“1”,那对应的单片机需要给数码管一个什么样的数据。具体怎么算请问百度,也可以关注我们我微信公众号或者Q群,里面有快捷的小工具,1秒钟帮你算完,直接复制来用。

有了段码后,就需要我们控制位选码了,比如我要在第三位上显示一个“1”,那就需要在段选码上(本电路中的P2口)送“1”对应的段选码,然后关闭第一、二、四位位选,开通第三位位选。这就完了,但是大家不要忘记了,我们单片机可厉害了,运行完你写的的两句话只要几微秒,对于微秒级别的时间,人眼是识别不出来的,也就说,单片机数执行了我们现实“1”的指令,但是我们人眼看不出来,因为太快了,怎么办呢,它快了,那就让它等等我们人眼吧,好的,这就简单了啊,执行完显示“1”的指令后,等待一会,让我们眼睛看到。这样是等待程序的来由了。

接下来,我们再说按键,从按键原理图中看出,一边接到单片机IO口,一边接电源地,也就说当按键按下后,单片机的IO口就接到电源地上,地上的电压是多少?0V啊,没按按键时,IO口上电平是默认的5V啊,也就说只要我们识别电平就可以知道按键按下没有。这就是程序的原理,具体怎么来写呢?慢慢说,单片机属于数字器件,它只知道高低电平,不知道电压具体是5V还是3.7V的,电压大于它的高电平的阀值,它就认为是高电平;反之它就认为是低电平。程序里我们就让单片机去识别是高电平还是低电平就可知道按键按下没有。

最后说说蜂鸣器,我们用的是有源蜂鸣器,如图所示,只要在接口上给高电平,蜂鸣器就发声,给低电平,蜂鸣器就关闭。

这样一来,全部程序都分析完了,接下来说程序设计的步骤。首先新建工程(这都要说,我也是醉了),完了包含头文件,这里我们包含了两个头文件,一个是官方的STC15.h,另外一个是我们自己写的延时函数头文件delay.h。这两个文件都需要我们手动复制到你的工程文件夹下去,不然编译时会提示找不到文件。完了新建一个C代码文件,我们所有的代码都在这个文件里编写。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6024

    文章

    44392

    浏览量

    629448
  • led灯
    +关注

    关注

    22

    文章

    1588

    浏览量

    107484
  • 数码管
    +关注

    关注

    32

    文章

    1869

    浏览量

    90579
  • 驱动电路
    +关注

    关注

    152

    文章

    1510

    浏览量

    108151
  • 蜂鸣器
    +关注

    关注

    12

    文章

    888

    浏览量

    45729
收藏 人收藏

    评论

    相关推荐

    【芯航线FPGA开发板学习笔记】--------按键次数显示

    了,而是它有关于这个东西的设计文档,而且代码是全部是手敲,看出来梅总的用心。哈哈说了半天估计有人又开始说打广告了,哈哈实事求是。 水了这么半天下面开始进入正题,如何将按键次数显示数码
    发表于 10-23 15:54

    按键数码管逐渐输出5fpga数码管数字1~6

    从上一次停止移动的数字开始。打个比方,上一次数码显示345612,按下按键显示456125–>561255–>612555–>125555,松开
    发表于 07-29 07:30

    矩阵按键数码管移位显示

    单片机中级项目13丨矩阵按键数码管移位显示
    发表于 12-01 08:17

    按键数码显示

    按键数码显示一、实验目的按键是单片机常用的输入设备,操作人员可以通过按键输入指令和数据。在使用按键
    发表于 03-23 10:44 5219次阅读
    <b class='flag-5'>按键</b>及<b class='flag-5'>数码</b>管<b class='flag-5'>显示</b>

    通过矩阵按键让不同数码显示不同数值

    慧净HL-1 配套C实验例程100例【实验17】通过矩阵按键让不同数码显示不同数值),很好的C51学习资料程序。
    发表于 03-21 16:48 29次下载

    按键次数计数器

    慧净HL-1 配套C实验例程100例【实验21】按键次数计数器),很好的C51学习资料程序。
    发表于 03-21 16:44 21次下载

    按键控制单个数码显示

    19-按键控制单个数码显示----------51单片机源程序 用keil直接打开
    发表于 06-16 15:36 31次下载

    按键--数码显示--硬件延时

    51单片机的按键识别显示,识别后用数码显示
    发表于 06-17 16:16 7次下载

    2按键加减操作数码显示

    2按键加减操作数码显示--C51单片机源码,KEIL源文件,C语言编写
    发表于 06-20 16:15 22次下载

    多位数按键加减(闪烁)数码显示

    多位数按键加减(闪烁)数码显示 C51单片机源码,KEIL源文件,C语言编写
    发表于 06-20 16:36 25次下载

    fpga按键控制数码显示

    本文主要介绍了fpga按键控制数码显示程序设计。数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。下面我们来了解一下
    发表于 01-16 16:19 1.7w次阅读
    fpga<b class='flag-5'>按键</b>控制<b class='flag-5'>数码</b>管<b class='flag-5'>显示</b>

    FPGA DIY 按键控制数码显示

    asean的 FPGA DIY 按键控制数码显示的视频
    的头像 发表于 06-20 00:37 7691次阅读

    按键使数码管循环显示从0到9 (51单片机+汇编语言+Proteus仿真)

    按键使数码管循环显示从0到9(51单片机+汇编语言+Proteus仿真)具体功能:显示按第一次数码管变亮
    发表于 11-22 20:51 95次下载
    <b class='flag-5'>按键</b>使<b class='flag-5'>数码</b>管循环<b class='flag-5'>显示</b>从0到9 (51单片机+汇编语言+Proteus仿真)

    利用汇编编写51单片机串口通信程序,实现对于按键次数显示

    利用汇编编写51单片机串口通信程序,实现对于按键次数显示题目如下甲乙两个单片机之间通信,其中甲机连接有8个流水灯循环闪烁和一个按键,乙机连接有一个LED
    发表于 11-23 09:06 23次下载
    利用汇编编写51单片机串口通信程序,实现对于<b class='flag-5'>按键</b><b class='flag-5'>次数</b>的<b class='flag-5'>显示</b>

    多个按键控制数码显示数字

    按照之前的文章关于数码管说到的线与,在此之上我们将一个按键拓展为多个按键,对数码管进行控制,就需要按键扫描函数,
    的头像 发表于 06-28 11:31 2827次阅读
    多个<b class='flag-5'>按键</b>控制<b class='flag-5'>数码</b>管<b class='flag-5'>显示</b>数字