单片机控制数码管显示不同数字
很多电子产品上都有用到数码管来做指示作用,比如电子秤上使用数码管来显示体重,电饭锅上面使用数码管来显示煮饭时间等等。数码管显示的数字是通过单片机控制的,本篇文章为你讲述其中的原理。
文章涉及到的电路图和程序源码大家可以私信作者获取。
想要使用单片机来控制数码管显示不同数字,那么我们先要了解数码管的内部结构以及器驱动原理。数码管可以看成是由8个发光二极管组成,我们分别给这8个数码管编号为a,b,c,d,e,f,g,SP(SP为小数点,七段数码管没有小数点),共阴极数码管就是这8个二极管的阴极连接在一起,共阳极数码管就是这8个二极管的阳极连接在一起。在控制过程中,我们把不同的二极管点亮,数码管就会给我们显示出不同的数字,例如我们把b,c两个二极管点亮,其他二极管熄灭,那么数码管显示的就是数字1;或者我们把a,b,c,d,e,f,6个数码点亮,数码管就给我们显示的是数字0.
接下来我们搭建控制电路图,添加一个7段共阴极数码管,a-g分别接单片机P2.0-P2.6.
看到电路图,我们应该就能想到,只要我们使单片机的P2口输出不同的高低电平,就可以让数码管显示不同的数字。假如我们要显示数字1,那么我们就想要点亮b,c二极管且熄灭其他二极管,所以我们需要将单片机P2.1和P2.2输出高电平,其他的输出低电平,如下图(红色代表高电平,蓝色代表低电平)。
以此类推,其他数字我们也可以显示出来,我们把P2.0-P2.7看成一个从低到高的8位数,其某一位为1则代表其对应的二极管亮,为0就代表其对应的二极管灭,那么我们就可以得到一个表格,该表格代表数码管显示0-F的值,其表格如下:
SEG_ComAnodeTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
我们还是以1来分析,1对应表格中的数字为0x06,我们转换成二进制就是00000110(b),第2和第3位为1,其他位为0,也就是说b,c二极管会亮,其他二极管会灭,所以只要我们把这个数字赋值给P2,那么数码管就会给我显示数字1.
到这里就把共阴极数码管显示原理给大家讲解了,大家可以以此类推,得到共阳极数码管的显示表格。如有不明白的地方,可以把疑惑的地方私信给我,演示程序设有一个按键,系统上电显示0,按键每按下一次,显示的数字加1,加到最大就又回到0开始。
下面给大家讲解一下程序设计思路:定义一个变量u8SegNumber,当按键按下一次,u8SegNumber就+1,然后我们把u8SegNumber的值作为共阴数码管显示表格的下标值,最后把对应的值赋值给单片机的P2口,这样就达到了我们想要的结果。
if(pTIM_Delay(0,200)) //200ms任务
{
if(SysDataVar.u8SegNumber > 15) //防止溢出
SysDataVar.u8SegNumber = 0;
LED = SEG_ComAnodeTable[SysDataVar.u8SegNumber]; //赋值
}
if(pTIM_Delay(1,5)) //5ms任务
{
Key_Sanf(); //按键检测
}
到这里单个数码管显示数字的原理都给大家讲解清楚了,大家可以尝试显示两个数码管,其原理和显示单个数码管不太一样,我也将在下一讲为你讲解,欢迎关注作者,及时获取更新信息。
单片机知识 存储器RAM和ROM
定义:RAM:随机存取存储器(Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。
ROM:只读存储器(Read-Only Memory,ROM)以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。
在单片机的内部结构中,很多人分不清楚RAM和ROM的区别在哪里,甚至经常将它们两个搞混,所以今天我们就来深入了解下这两者之间有什么区别,具体的功能特征是什么。
我们知道单片机主要作用就是对信息数据的处理,而在处理数据的过程中,需要一个“容器”来存放这些数据。这个容器就是存储器。存储器的物理实质是一组(或多组)具备数据输入/输出和数据存储功能的集成电路,用于充当设备缓存或保存同定的程序及数据。存储器按存储信息功能的不同,可分为只读存储器ROM和随机存储器RAM。
如何区分RAM和ROM呢?举个例子,我们在购物平台买电脑或手机时商家会列出多种版本,有8GB+256GB 、12GB+512GB、16GB+240GB等多种版本可选择,而这里面的8GB+256GB就是我们说的存储器RAM和ROM的储存容量。我们只需记住一点,不论是手机和电脑,容量比较小的那个一定是RAM,而容量大的那个则是ROM。
RAM就是我们平时说的运行内存,它根据存储单元的工作原理不同可分为静态随机存储器(SRAM)和动态随机存储器(DRAM),如芯海8位单片机CSU8RP3216中就内置128字节的静态数据存储器(SRAM)。因RAM具有随时可读写的功能,所以通常作为操作系统或其他正在运行中的程序的临时数据存储介质,又因为它切断电源后不会保存数据,所以又被称易失性存储器。
RAM的功能特点如下:
随机存取 :随机存取指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的位置无关。相对的,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系。它主要用来存放操作系统、各种应用程序、数据等。
易失性: 当切断电源后,RAM里面所储存的数据也将随之消失。所以它一般用来暂时储存程序、数据和中间结果,如果要长期保存数据的话需要将数据写入一个长期的储存设备中。
对静电敏感 :与其他的集成电路一样,RAM对环境的静电荷也非常敏感。静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。故此触碰随机存取存储器前,应先用手触摸金属接地。
访问速度 :现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的,存取延迟和其他涉及机械运作的存储设备相比,也显得微不足道。
需要刷新 :现代的随机存取存储器依赖电容器存储数据。电容器充满电后代表1(二进制),未充电的代表0。由于电容器或多或少有漏电的情形,若不作特别处理,数据会渐渐随时间流失。刷新是指定期读取电容器的状态,然后按照原来的状态重新为电容器充电,弥补流失了的电荷。需要刷新正好解释了随机存取存储器的易失性。
和RAM相比,ROM在断电以后保存在上面的数据不会自动消失,可以长时间断电保存。它的特点表现为只能读出而不能写入信息,通常在电脑主板的ROM里面固化一个基本输入/输出系统,称为BIOS(基本输入输出系统)。其主要作用是完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。
相关问答
u8 i在 单片机 里啥意思?1.u8i在单片机里表示一个无符号8位整型变量。2.在单片机中,u8i通常用于存储和处理8位无符号整数数据,因为单片机的数据处理能力有限,使用较小的数据类型可...
u8 a在 单片机 里啥意思?这里的u8a,就是一个参数定义,u8表示无符号8位整形的意思,在C语言里表示为unsignedchar,比如你在c头文件中有如下定义:typedefunsignedcharu8;你就可...
80如何使用STC 单片机 烧录工具(STC?stc单片机烧录工具(现在有U8WProgrammer/编程器),用USB连线连接电脑就可以了,软件用官网下载的stc-isp-15xx-v6.86p,V6.86是现在最新版。stc单片机烧录...
仰望 u8 搭载的无人机什么牌子?关于仰望U8搭载的无人机品牌,并没有具体的信息可供查询。根据已公开的资料,仰望U8是一款飞行控制器,可以搭配多种无人机进行飞行控制,而无人机的品牌和型号则...
仰望 U8 浮水模式怎么实现?仰望U8浮水模式是依靠四轮电机产生的不同车轮转速和转动方向盘,让车轮产生不同的转动方向及力度,从而让车辆在水面上进行转弯,以驶离深水区。仰望U8具备IP68...
eeprom记录内存条的容量?学习单片机时,常见的EEPROM如24C02的大小为2Kbit(有的也称2KB)。这里的2KB到底能存储多少数据呢?2KB中,B表示单位bit,K表示1024。单片机编程中常用的数据类...
单片机 开发公司有什么意义和重要性[回答]随着现代科技化电子产品市场的盛行,便携电子产品的需求量一直在增加,单片机开发公司对电子产品生产厂商的重要性也随着提升。单片机开发是生产电子...
在线等: 单片机 培训哪家好?[回答]技术服务:一、软件开发:承接软件或项目订单,按照客户要求完成订单合同内容。二、Oracle、DB2、SQL,mysql数据库部署、升级、迁移、故障排除和维保项...
大金空调UC故障怎么修 - 158****7338 的回答 - 懂得U4是通信故障,首先检查外机是否有电,然后检查内外机信号线有没有异常,最后检查外机主板大金空调故障代码a1室内p板不良a3排水水位异常a5室内防止结...
大金空调UC故障怎么修 - Peeeeeeeei 的回答 - 懂得大金空调故障代码a1室内p板不良a3排水水位异常a5室内防止结冰保护a6室内风扇电机异常aj能力设定不良c4室内热交换热敏电阻异常c5室内热交换热敏电阻...