| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 基于STC89C52单片机的计数器 -> 正文阅读 |
|
[嵌入式]基于STC89C52单片机的计数器 |
1.设计要求????????写出矩阵键盘的驱动,分别按下对应的键,数码管会将键盘对应的值累加并显示。 2.设计概述????????本实验所用芯片为STC89C52,所用硬件是由华清远见基于STC89C52开发的智能小车,该小车具有流水灯模块、蜂鸣器模块、独立键盘模块、矩阵键盘模块等。 本实验采用矩阵键盘输入,并对输入的数字进行累加,在数码管中显示。 3、原理图以及线路连接本实验所有电路均已内部连接。 ? 4.软件设计?矩阵键盘 ?由原理图可知,16个独立键盘由P3口不同的值控制。首先将P3口初始化(P3 = 0xF0)即高四位(P3_4~P3_7)为高电平1,低四位(P3_4~P3_7)为低电平0;如果有按键按下,则对应的高电位会被拉低,变成低电位,如,s6按下时,P3_4会由1变为0,此时记录下二维数组的纵坐标j = 0,再将P3口初始化为0x0F,同理当s6按下时,P3_0的高电位会被P3_4的低电位拉低变为0,记录下二维数组的横坐标i = 0,这样我们根据预先设置好的二位数组,就知道了按下的是0,再通过函数返回,这样,矩阵键盘的目的就达到了。
? ? ?? ?数码管模块? ? ? ? 数码管模块由两个数码管锁存器以及8个八位共阴极数码管组成。 ? ? ? ? 两个数码管锁存器的使能端分别为WELA和DULA ? 其中WELA为位选择使能端,当WELA为1时,可通过端口P0向寄存器输入数据选择数码管,如图,当WELA为1时,将P0口0位置0,即选择0号数码管,选择完毕之后要讲输入关掉,即WELA = 0; DULA为数据输入使能端,当DULA为1时,通过端口P0向寄存器输入数据,如图,当DULA为1时,向P0口输入数据,P0口输入数据对应数据已经给出,如0x3F对应“ 0 ”。输入完毕之后关闭输入,DULA = 0。 每一位数码管可以显示一个数字,但只有一个数码管可以显示,因此要显示多位数字,则需要每个数码管显示之后马上切下一个数码管显示,如显示1314,第0位数码管显示完4后,第1位数码管马上显示1,第2位再马上显示3,以此类推,只要变换速率够快,人眼不能识别,就相当于显示了1314。由此有了数字显示函数。可以显示0~65531之间任意数字。 ? 最后,只要不断检测是否有键按下,如果有,则加上键入的数字,没有则循环显示原来的数字。 ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:45:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |