数码管:
数码管由7个发光二极管组成一个日字形,如果需要显示小数点,那么就再加一个点,就是8段数码管。
数码管显示亮度高,响应速度快,分共阴和共阳两种形式,常用的有单个的和4联的,还有两联的和专门用来显示时间的。
分类:共阴;共阳
编码问题:
必须对数字或字符进行编码。因此为LED显示器提供的编码正好是一个字节。也有采用BCD-7段译码芯片的。
显示问题:
静态显示方式
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
动态显示
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
数码管下方有一个反相器。默认P3输出1,即默认数码管共阴。
现在需要操作P1,扫描所有数码管
如何扫描:
P3:10000 P1送入数字编码
P3:01000 P1送入数字编码
P3:00100 P1送入数字编码
P3:00010 P1送入数字编码
P3:00001 P1送入数字编码
送入数字编码:按照16进制编码表即可
其他类型的数码管:
四个管子同时接出a---dp
74HC138译码器:
A1,A2,A3三个加权(A0A1A2的输入相当于一个八进制数)输入可以产生八个互斥输出Y0-Y7
输入输出特性:
使能条件:E1E2 :低电平 E3:高电平
芯片使用:
G2A G2B G1:代表E1E2E3
ABC:A0A1A2
点亮数码管:
//静态显示
#include unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c}; int main() { P1=a[1]; //接地端默认使数码管共阴 while(1); return 0; } //数码管的动态显示 /* 思路: 1.向138芯片的A123输出选中数码管,选中谁 谁是低电平 2.同时P10输出十六进制 */ #include sbit smgen=P2^3;//573芯片 高电平 sbit rs=P3^6;//其他芯片会影响 所以用这个脚关闭那个芯片。 unsigned char table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c};//对应着数字 unsigned char table2[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70}; //总线驱动:A1A2A3 void delay(unsigned int a) { while(a--); } unsigned int t; void main() { unsigned char i; rs=0;//OE接地 t = 50; while(1) { for(i=0;i<8;i++) { P2=table2[i]; smgen=1; P1=table1[i]; delay(t); } } } 点阵: 如何显示: 上图原理图中:横向是P0 纵向是P1 此板使用左边原理图。延序号有P0-P7 如果想让点阵点亮,则保证P0i = 0;P1j = 1 举例:动态显示数字0: P0选中第一列 P0 = 1111 1110 ;P1 = 0000 0000 P0选中第二列 P0 = 1111 1101 ;P1 = 0000 0000 P0选中第三列 P0 = 1111 1011 ;P1 = 0011 1110 P0选中第四列 P0 = 1111 0111 ;P1 = 0100 0001 P0选中第五列 P0 = 1110 1111 ;P1 = 0100 0001 P0选中第六列 P0 = 1101 1111 ;P1 = 0100 0001 P0选中第七列 P0 = 1011 1111 ;P1 = 0011 1110 P0选中第八列 P0 = 0111 1111 ;P1 = 0000 0000 #include #define uchar unsigned char #define uint unsigned int sbit en1=P2^0;//573高电平 sbit en2=P2^3;//573高电平 sbit rs=P3^6;//某个芯片需要关闭 uchar table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar table2[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00}; void init(void) { en1=1; en2=1; rs=0; } void delay(uint a) { while(a--); } void main() { uchar i; init();//初始化 while(1) { for(i=0;i<8;i++) { P0=table1[i]; P1=table2[i]; delay(40); } } } ———————————————— 版权声明:本文为CSDN博主「mmciel」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/F_zmmfs/article/details/81152044
上一篇:【C51自学笔记】中断系统
下一篇:【C51自学笔记】ULN2003+蜂鸣器+继电器+步进电机
推荐阅读最新更新时间:2024-11-17 07:22
推荐帖子
- 常需要在输入输出接口上设计隔离,请问一般在什么场合下加隔离芯片?典型的隔离芯片
- 请问一般在什么场合下加隔离芯片?典型的隔离芯片有哪些?好像高速隔离和普通数字隔离不同呀!常需要在输入输出接口上设计隔离,请问一般在什么场合下加隔离芯片?典型的隔离芯片一般在不同电压种类之间加隔离,一般在强弱电之间的隔离用光耦;在3V和5V之间电平转换用74245回复:常需要在输入输出接口上设计隔离,请问一般在什么场合下加隔离芯片?典型的隔:D您好!我想要类似的答案(最好有各种型号光隔的选用区别):下面是我网上找到的一些。只是太少了1隔离芯片种类很多,通常以频率进行区分,例如串
- xuzongjin 单片机
- Contiki(2) 怎么开始以及目的
- 显然,既然决定了不再纠结这纠结那,并且发现Contiki包含的东西远远比自己想象的要多得多。于是内心里越来越强烈的产生了一个想法:别想了,Contiki就Contiki吧。选择它,当然最开始是因为它频频出现在那些WSN/无线组网的协议里。其次,它是一个操作系统,是操作系统,就会有我想要了解,甚至独立抽出来的那些常见功能组件。内存管理;多线程调度;等等。然而,怎么开始却是不容易的。这里,继续上一次的开启记录,继续写这一过程中的思考和选择。一则我是一个只有靠书写才能清晰思路的
- 辛昕 RF/无线
- 嵌入式培训的烦恼
- 最近总在思考要不要去嵌入式培训,好矛盾,一方面觉得在大学学的东西真的太少了(虽然我觉得我在班上学习还是比较刻苦的,但是实践太少了,毕业压力太大了)自己自学又难度太大好多东西要花好多时间,我经常在21ic看arm的论坛好多都看不懂,想通过培训提高自己实践机会,关键是我不想出去以后就拿个2000多的工资,不甘于现状。但是另一方面培训费用又太昂贵了,对一个大学生来说一万多的培训费真的是负担。想听听大家的意见,特别是那些去培训过的学长们,想听听你们的心声,对培训怎么看?能不能达到他们说的培训后工资有
- ihaveadre.am ARM技术
- 怎么会这样
- 本帖最后由paulhyde于2014-9-1509:17编辑我们学校今年竟然没人获全国奖项,郁闷啊!怎么会这样分析分析原因下一次加油啊回复楼主天涯逐日的帖子楼主下次加油!不管结果怎样,努力就会有收获。本帖最后由paulhyde于2014-9-1509:17编辑什么学校???走过过程就好。。。回复楼主天涯逐日的帖子本帖最后由paulhyde于2014-9-1509:17编辑原帖由天涯逐日于2009-10-
- 天涯逐日 电子竞赛
- 分享资料:EMI性能与设计的疏忽
- 在您的电源中很容易找到作为寄生元件的100fF电容器。您必须明白,只有处理好它们才能获得符合EMI标准的电源。从开关节点到输入引线的少量寄生电容(100毫微微法拉)会让您无法满足电磁干扰(EMI)需求。那100fF电容器是什么样子的呢?在Digi-Key中,这种电容器不多。即使有,它们也会因寄生问题而提供宽泛的容差。不过,在您的电源中很容易找到作为寄生元件的100fF电容器。只有处理好它们才能获得符合EMI标准的电源。图1是这些非计划中电容的一个实例。图中的右侧是一个垂直安装的FET,
- qwqwqw2088 模拟与混合信号
- boa+c语言写的cgi在开发板上 读写文件的问题
- FILE*f; f=fopen(DATAFILE,\"r\"); 复制代码 就是不能执行,请高手帮助解决,分不够开口我现在只能给100boa+c语言写的cgi在开发板上读写文件的问题怎么个不能执行法?出现什么问题?问题解决了是相对路径和绝对路径的问题,在板子上要用绝对路径
- oemguide 编程基础
设计资源 培训 开发板 精华推荐
- LT3763HFE 1A、五个 LED 驱动器的典型应用电路
- KA431S 限流、电流源稳压器的典型应用
- LTC1421 的典型应用电路 - 热插拔控制器
- AD8602WARZ-R7 作为 DAC 输出缓冲器驱动重负载的典型应用
- 使用 ROHM Semiconductor 的 BD5235 的参考设计
- LTM4632IV 3.6V 至 15V 输入、1.5V/3A VDDQ、0.75V/±3A VTT 和 10mA VTTR 设计的典型应用电路
- FAN53541 2.4MHz、5A Tiny Buck 同步降压稳压器的典型应用
- DC239A、LTC1502CMS8-3.3 演示板、单节电池输入、3.3V/10mA 输出、无电感 DC-DC 转换器
- #第五届立创电子设计大赛#远程灯控仪
- OP184FSZ-REEL 仅 5V、12 位 DAC 摆幅轨到轨运算放大器的典型应用
- 【已结束】 Qorvo & Keysight 直播【新一代无线连接的挑战与应对之道】
- MPS有奖活动|梦想设计闪亮登场,便携式多功能电工台诞生啦!
- 邀您共赴一场技术盛宴! 2022英特尔® FPGA中国技术周 ——加速,让创新有迹可循
- Microchip直播:单片机编程不再难, 利用MPLAB®代码配置器(MCC)实现快速开发
- Maxim 有奖直播:支持工业系统的集成数字IO技术
- “USB 3.1 规范及重要测试需考虑的因素”江湖令,一起在吐槽中成长
- TI CC1310网络研讨会诚邀您预报名参加,惊喜奖不停!
- 有奖直播|魏德米勒 OMNIMATE® 联接技术的创新发展
- 下载《基于巨磁(GMR)的Allegro IC》白皮书,赢50元京东卡