IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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,再通过函数返回,这样,矩阵键盘的目的就达到了。

unsigned int keyboard()
{
	unsigned int i,j,value = 0;
	int a[4][4]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
	P3 = 0xF0;
	if(P3 != 0xF0);
		delay_ms(80);            //按键消抖
	if(P3 == 0xF0)
		value = 0;
	else
	{
		if(P3_4 == 0)  j = 0;
		if(P3_5 == 0)  j = 1;
		if(P3_6 == 0)  j = 2;
		if(P3_7 == 0)  j = 3;
		P3 = 0x0F;
		if(P3_0 == 0)  i = 0;
		if(P3_1 == 0)  i = 1;
		if(P3_2 == 0)  i = 2;
		if(P3_3 == 0)  i = 3;
		value = a[i][j];
        P3 = 0xF0;		   //初始化
	}
	return value;
}

? ? ??

?数码管模块

? ? ? ? 数码管模块由两个数码管锁存器以及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例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 12:01:45  更:2021-08-27 12:02:14 
 
开发: 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年5日历 -2024/5/21 2:46:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码