单片机数码管

合集下载

单片机数码管不亮的原因

单片机数码管不亮的原因

单片机数码管不亮的原因单片机数码管不亮,这事儿就像你满心期待炉灶能开火做饭,结果它却一点动静没有,真让人头疼。

那这数码管为啥不亮呢?有时候就像电线在跟你玩捉迷藏。

可能是电路连接出了岔子,比如说电源线没接好。

这就好比水管没接稳,水根本流不到该去的地方,那数码管自然就得不到它需要的电,就像干涸的土地等不来灌溉的水,怎么可能有生机呢?你得好好检查一下电源线,看看是不是松了或者断了。

再说说数码管本身,它要是坏了,那就像灯炮灯丝断了一样,无论你怎么努力给电,它就是不亮。

这数码管可能在生产的时候就有小毛病,就像有些鸡蛋孵不出小鸡,天生就有点缺陷。

你可以换一个新的数码管试试,如果换了之后亮了,那之前那个肯定就是自身出问题了。

还有啊,程序这个事儿也不能忽视。

程序就像是数码管的指挥官,要是程序写错了,数码管就像迷失方向的士兵,不知道该干啥。

比如说,你让数码管显示一个数字,结果程序里少写了一行关键代码,那就像给人指路少说了一个关键转弯,人肯定到不了目的地。

你得仔细检查程序里关于数码管初始化、数据发送等部分的代码,看看有没有写错的地方。

有时候一个小小的符号错误,就像在精密的钟表里进了一粒沙子,整个运转就会出问题。

驱动电路也是个关键因素。

这驱动电路就像是数码管和电源之间的桥梁,如果这座桥塌了,数码管和电源就被隔开了,得不到电的数码管只能干瞪眼。

可能是驱动芯片坏了,或者是驱动电路里的电阻、电容等元件出故障了。

这就好比汽车的发动机和车轮之间的传动装置坏了,发动机转得再快,车轮也不会动。

你得用仪器检测一下驱动电路,看看是不是有元件损坏了。

限流电阻有时候也会捣乱。

限流电阻就像马路上的交警,控制着电流的大小。

如果限流电阻的阻值不对,可能会导致电流过大或者过小。

电流过大就像洪水冲进了小河道,可能会把数码管这个“小村子”给冲坏;电流过小呢,就像涓涓细流,根本无法满足数码管的需求,数码管也就亮不起来。

你要检查限流电阻的阻值是否符合要求。

单片机数码管元件名称

单片机数码管元件名称

单片机数码管元件名称单片机数码管是一种常见的数字显示元件,它可以将数字信号转换为可视化的数字形式,广泛应用于各种电子设备中。

数码管由多个发光二极管(LED)组成,每个LED代表一个数字,通过控制LED的亮灭来显示数字。

在单片机应用中,数码管通常用于显示计数器、计时器、温度、湿度等实时数据。

数码管的种类很多,常见的有共阳数码管、共阴数码管、双色数码管、三色数码管等。

其中,共阳数码管和共阴数码管是最常用的两种。

共阳数码管的阳极连接到电源,通过控制阴极的亮灭来显示数字;共阴数码管的阴极连接到电源,通过控制阳极的亮灭来显示数字。

双色数码管和三色数码管可以显示不同颜色的数字,常用于显示温度、湿度等数据。

数码管的显示方式有两种:静态显示和动态显示。

静态显示是指将数字信号直接输出到数码管上,每个数码管只显示一个数字,显示效果稳定,但需要占用较多的IO口。

动态显示是指将多个数码管按照一定的时间间隔依次显示不同的数字,显示效果更加流畅,但需要使用定时器和中断来控制。

在单片机应用中,数码管的驱动方式有两种:直接驱动和扫描驱动。

直接驱动是指将每个数码管的控制信号直接连接到单片机的IO口上,每个数码管需要占用一个IO口,需要占用较多的IO口。

扫描驱动是指将多个数码管的控制信号连接到同一个IO口上,通过定时器和中断来控制每个数码管的亮灭,可以节省IO口的使用。

数码管的显示控制需要使用到数码管驱动芯片,常见的数码管驱动芯片有74HC595、74HC164、MAX7219等。

这些芯片可以将单片机的控制信号转换为数码管的控制信号,实现数码管的驱动和显示。

总之,单片机数码管是一种常见的数字显示元件,广泛应用于各种电子设备中。

了解数码管的种类、显示方式、驱动方式和驱动芯片等知识,对于单片机应用开发非常重要。

51单片机矩阵键盘控制数码管显示过程中出现的问题及解决方法

51单片机矩阵键盘控制数码管显示过程中出现的问题及解决方法

51单片机矩阵键盘控制数码管显示过程中出现的问题及解决方法在使用51单片机控制矩阵键盘同时驱动数码管显示的过程中,可能会遇到一些常见的问题。

以下是一些可能的问题及相应的解决方法:按键无法正常响应:* 问题可能原因:接线错误、按键损坏、软件扫描不到按键信号。

* 解决方法:检查按键连接是否正确,确保按键没有损坏。

在软件中进行适当的按键扫描,确保能够正确检测到按键的状态。

数码管显示异常或不亮:* 问题可能原因:数码管接线问题、数码管损坏、数码管驱动程序错误。

* 解决方法:仔细检查数码管的接线是否正确,确保数码管没有损坏。

检查数码管的驱动程序,确保它按照正确的顺序和时序进行驱动。

按键重复响应或漏按现象:* 问题可能原因:按键抖动、软件扫描速度过快。

* 解决方法:在软件中增加适当的按键抖动延时,确保在按键按下或抬起时只响应一次。

调整软件扫描速度,避免扫描间隔过短导致的重复响应。

矩阵键盘的多个按键同时按下导致混乱:* 问题可能原因:矩阵键盘硬件连接错误、软件扫描算法问题。

* 解决方法:检查矩阵键盘的硬件连接,确保矩阵行和列没有短路或断路。

调整软件扫描算法,确保同时按下多个按键时能够正确识别。

数码管显示不正常的数字或乱码:* 问题可能原因:程序错误、数码管接线错误。

* 解决方法:仔细检查程序,确保数码管段选和位选的控制逻辑正确。

检查数码管的接线,确保每个数码管的连接都正确。

在解决问题时,建议逐步排除可能的原因,通过调试工具、逻辑分析仪或输出调试信息的方式来定位问题。

另外,仔细查阅51单片机的数据手册和相关文档,以确保硬件连接和软件设计都符合标准。

单片机和数码管设计的电子时钟

单片机和数码管设计的电子时钟

单片机和数码管设计的电子时钟电子时钟是一种用电子技术实现时间显示的设备,它能够精确地显示时间,并通过单片机控制数码管进行数字显示。

在本文中,将介绍单片机和数码管设计的电子时钟的原理、设计过程和实现方法。

一、电子时钟原理电子时钟的原理主要包括时钟信号源、计数器、数码管显示和时钟控制等部分。

时钟信号源提供一个恒定的频率信号,一般使用晶振产生。

计数器用于计数时钟信号的脉冲数,通过累加到一定的脉冲数后,完成对秒、分、时等单位的计数。

数码管显示用于将计数器的计数值转化为数字进行显示。

时钟控制部分通过单片机对时钟模块进行控制,完成时钟的设置、调整和显示等功能。

二、电子时钟设计过程1.确定需求:首先确定电子时钟的功能和要求,包括时间显示、闹钟功能、调节功能等。

根据需求确定显示部分所需的数码管数量和接口方式。

2.选择单片机:根据需求选择一款适合的单片机,考虑其处理能力、接口数量和扩展性等因素。

3.设计时钟源:选择合适的晶振作为时钟源,并将时钟信号输入到单片机的计时部分,生成一个恒定频率的脉冲信号。

4.编程设计:根据单片机类型选择相应的开发工具,编写程序实现时钟的计数、显示和控制功能。

其中,需要实现时钟的秒、分、时等单位的计数和显示、时钟调节和设置等功能。

5.数码管接口设计:根据数码管的数量和接口方式,进行接口设计。

常用的接口方式有共阳和共阴两种方式。

通过连接适当的电阻和引脚控制,实现对数码管进行数字显示。

6.硬件设计:根据实际需求和电路原理进行电路设计,包括电源电路、晶振电路和数码管显示电路。

注意电源的稳定性以及数码管的驱动电流和电压等参数。

7.调试和测试:完成硬件设计后,进行电子时钟的调试和测试工作。

通过对时钟进行时间设置和调整,验证时钟的计时和显示功能是否正常。

8.最终优化:对电子时钟的功能和性能进行评估,并进行必要的优化。

可以考虑添加闹钟功能、温度显示等扩展功能。

三、实现方法电子时钟的实现方法主要有两种,一种是基于单片机开发板实现,另一种是自己设计和制作。

单片机数码管程序编写 -回复

单片机数码管程序编写 -回复

单片机数码管程序编写-回复什么是单片机数码管?单片机数码管是一种显示设备,用于在单片机系统中显示数字、字符等信息。

它由多个发光二极管(LED)组成,每个发光二极管可以独立地发光。

常见的数码管有7段共阳数码管和8段共阴数码管两种。

7段共阳数码管是指有7个发光二极管组成每个数字可显示0-9。

而8段共阴数码管则多了一个额外的发光二极管,可以用于显示字母和特殊字符。

单片机数码管也可以按照位数进行分类,如4位数码管、8位数码管等。

不同位数的数码管用于显示不同范围的数字。

编写单片机数码管程序的基本步骤如下:1. 硬件准备:a. 连接数码管:将数码管与单片机进行连接。

具体连接方法取决于使用的数码管类型和单片机型号。

b. 设置数码管电源:确保数码管接收到足够的电源供应。

这可以通过连接适当的电源电压和接地线来完成。

2. 确定显示内容:a. 决定要在数码管上显示的内容,如数字、字母、特殊符号等。

b. 根据需要,确定要显示的位数。

3. 编写数码管驱动程序:a. 引入相关的头文件,包括单片机与数码管通信所需的寄存器定义和相关函数。

b. 定义变量,用于存储要显示的内容。

c. 编写初始化函数,用于初始化数码管的相关设置,如设置数码管为输出模式、选择数码管类型等。

d. 编写显示函数,用于在数码管上显示内容。

这包括将要显示的内容转换为对应的数码管码值,并通过设置相应的端口输出来控制数码管的亮灭。

e. 如果需要实现动态显示,可以使用定时器中断的方式来刷新显示内容。

4. 编写主程序:a. 调用初始化函数,初始化数码管的相关设置。

b. 在一个循环中,调用显示函数,以指定的时间间隔刷新显示内容。

5. 调试和测试:a. 将编写的程序下载到单片机上。

b. 检查连接是否正确,并观察数码管是否显示出预期的内容。

c. 根据实际需求进行调试和测试,修正可能存在的问题。

6. 优化和扩展:a. 对程序进行优化,尽量减少资源占用和提高性能。

b. 如果需要,可以扩展程序功能,增加显示内容的种类和方式。

51单片机第四节数码管

51单片机第四节数码管

51单⽚机第四节数码管本笔记默认学习者已拥有:1.Keil5和stc 烧写⼯具 等各种软件、驱动、环境;2.有⼀个属于⾃⼰的 51单⽚机开发板及相关零件 ;3.认识C 语⾔的语法;本⼈使⽤的51开发板为 郭天祥C51 TX-1C 增强版开发板 ;本笔记根据B 站up 主:江科⼤⾃化协的教学视频 整理得到ヾ(•ω•)4-1 静态数码管显⽰上图为TX-1C 的 数码管及LED 模块 原理图138译码器和74HC245 都是⽤来控制 数码管显⽰ 的;单数码管1.上图为 ⼀位数码管,数码管有两种连接⽅式(对应 右边上下两幅图);2.右上图的原理图,8个LED的阴极都连在⼀个引脚上,称为共阴极连接;3.右下图的原理图,8个LED的阳极都连在⼀个引脚上,称为共阳极连接;TX-1C 开发板的连接⽅式是 共阴极连接;4.左下⾓的 左边图⽚ ,定义了8个LED的名称;5.左下⾓的 右边图⽚ ,定义了引脚的名称,与右图的引脚名称⼀⼀对应假设数码管连接⽅式为 共阳极连接,观察可以发现,数码管中的 LED 的引脚引出,使⽤的是就近原则;假设数码管连接⽅式为 共阴极连接,如果上数码管显⽰ 数字6 ?1.要让数码管显⽰ 数字6,让要 LED-A、C、D、E、F、G亮起;2.共阴极的公共端 要接地(给数据‘0’,或者是低电平);3.阳极(称为位选端)根据LED的亮灭需求给 数据0或1(1亮、0灭) ,称为 段码(阳码) (1011 1110 即为段码);如果 共阳极连接,共阳极端 要接到 VCC (⾼电平),阴极给 数据0或1 (1灭,0亮),称为 段码(阴码),和共阴极正好是相反关系;共阳极连接→共阳极端接VCC 并选中→阴极(位选端)传递(阴码)段码(1亮、0灭)→数码管显⽰共阴极连接→共阴极端接GND 并选中→阳极(位选端)传递(阳码)段码(1灭、0亮)→数码管显⽰四位⼀体数码管开发板上即为 四位⼀体的数码管,且有两个,正好组成了 ⼋位数码管;⽽TX-1C 上 包含的是六位数码管,⽽⾮⼋位;1.四位数码管 也有 两种连接⽅式,即 共阴极连接 和 共阳极连接 ;{Processing math: 100%2.四位数码管,(每位的公共端 单独引出来,位选端全部连在⼀起(所有A段连在⼀起、所有B段连在⼀起……),总共有12个引脚;假设数码管连接⽅式为共阴极连接,如何在第三位显⽰数字1 ?1.给第三位的公共端 赋值 0(低电平),给其他位的公共端 赋值 1(⾼电平);这样等同于 其他位的公共端(负极)接到了正极上,⽆论如何都亮不了;只有第三位能亮;2.这样给 LED-B、C 的位选端 赋值 1,其他 位选端 赋值0共阳极连接即为公共端赋值 1(⾼电平)亮,其他以此类推;3.发现这样⼀个现象,数码管⽆法在同⼀时间显⽰多个数字,其在同⼀时刻下只能有⼀个显⽰,只有⼀个数码管能被点亮,即使有多个被选中的数码管,显⽰的数字也是相同的;这种共⽤引脚的现象,是为了减少控制数码管IO⼝;(四位数码管有32个LED,如果都采⽤共阴极连接的⽅式,也要32+1(公共端)=33个引脚;)(采⽤这种链接,就只需要12个引脚即可控制四位数码管;)如何让数码管多位显⽰不同数字(动态数码管显⽰)?1.利⽤ ⼈眼视觉的暂留 和 数码管显⽰的余辉 的原理先让第⼀位数码管显⽰1,然后很快地让第⼆位数码管显⽰2,再很快地让第三位数码管显⽰3,让它不断地扫描,重复显⽰1、2、3的过程,这样三个数字就“同时”显⽰了;原理分析138译码器1.观察到 原理图右图 与数码管有关的,有138译码器(74LS138)和74HC245两枚芯⽚;TX-1C的原理图为左图,也有两个74HC573芯⽚与数码管有关;芯⽚名称与功耗、电压、说明符号有关,具体内容不做分析;2.如图,数码管连接⽅式为 共阴极连接,这样传输数据,就能让第三位显⽰ 数字1 了;3.⽽上⾯的 LED1 ~ 8,其实接在了138译码器的输出端,138译码器正好可以实现让LED1 ~ 8输出 0或1;LED1 ~ 8 对应了 TX-1C 六位数码管的SEG DS 1 ~ 6;4.138译码器可将LED 1 ~ 8的⼋个端⼝ 转化为 由 3个端⼝ (P22、P23、P24)控制,⽽G1、G2A、G2B端⼝ 被 称为 使能端;使能端相当于⼀种开关,如果电平有效,它就可以⼯作;如果电平⽆效,它就不⼯作;观察原理图发现,使能端是已经接好 VCC 和 GND 的,也就是说,其上电其实就会⼯作TX-1C的74HC573也是同理,但其并未压缩控制端⼝的数量;5.138译码器也叫“38线译码器”,是由3个线到8个线,其中C是⾼位、A是低位,CBA组成的数符合8进制,控制着Y0 ~ Y7 这8个端⼝;6.所以,138译码器的作⽤就是⽤来选中某⼀位数码管的74HC2451.74HC245是⼀种 双向数据缓冲器,VDD、GND都可视为电源,OE为使能(其 接地 就⼯作);2.DIR(direction),是⽅向的意思,它接到了VCC(⾼电平)上,将数据从左边输出到右边,从右边将数据读取回左边;DIR若接到低电平上,会将数据从右边输出到左边,从左边将数据读取回右边;3.单⽚机的⾼电平 驱动能⼒有限,其输出的最⼤电流不能太⼤;其低电平 驱动能⼒强;因此,LED模块才采⽤了低电平点亮的模式;4.如果⽤⾼电平 直接点亮 数码管,电流会很⼩,灯会很暗;所以其加⼀个缓冲器,缓冲器可以提⾼ 其驱动能⼒,如果直接将 数据 输出 给 数码管,数据就会被视为 驱动数据;现在增加了缓冲器,数据 就变成了 控制信号,控制信号 只需要很微弱,缓冲器 就可以接收到,缓冲器再通过⾃⼰接到的电源,输出 数据 到引脚上,这样控制的电流只需要⾮常⼩,就能驱动数码管 以⽐较亮的形式显⽰;2电容 是⽤来 稳定电源的,叫电源滤波;6.图右有 ⼀ 排阻,阻值为100R(即为100Ω),作⽤为 限流电阻 ,防⽌数码管的电流过⼤;TX-1C既没有电容,也没有排阻;原理总结1.⽤ 138译码器 使 数码管 的某⼀位 被选中;2.再给P0⼝⼀个 段码数据;TX-1C虽然⽤P0⼝控制段码输⼊,但也⽤P0⼝控制位选;需要先⽤ P2.6⼝和P2.7⼝控制输⼊数据是段码还是位选;P2.6⼝控制段码的输⼊;P2.7⼝控制位选的输⼊;例,给P2.6 数据1 (⾼电压)、给P2.7 数据 0 (低电压),就可以确定现在给数据是段码;1.由TX-1C的原理图可知,数码管内 LED灯 与 P0端⼝ 的顺序关系:(1)LED的名称定义是通⽤⽆疑的;(2)数码管本⾝的引脚名称不重要,重要的是 LED与哪个 P0 的 引脚 相连;2.由TX-1C的原理图可知, P0.0引脚 控制 数码管的最左位,P0.5引脚控制 数码管的最右位,剩余引脚是没有控制 数码管 位选 的作⽤的,哪个P0 的 引脚 控制 六位数码管的 哪位 很重要;代码实现静态数码管显⽰(让数码管第三位显⽰3).c#include<reg51.h>sbit D=P2^6; //段码⼝sbit W=P2^7; //位选⼝void main(){D=0;W=1;P0=0xFB;//1111 1011W=0;D=1;P0=0x4F;//0100 1111while(1);}下⾯写出了⼀个通⽤函数,可以让数码管在 第⼏个位置 显⽰ 哪个数#include<reg51.h>#define uchar unsigned charsbit D=P2^6;sbit W=P2^7;void NixieTube(uchar wei,uchar duan){ //NixieTube是数码管的英⽂uchar WEI,DUAN; //(Nixie是⼥⽔妖的意思)D=0;W=1;switch(wei){ //位选部分case 1:WEI=0xFE; break;case 2:WEI=0xFD; break;case 3:WEI=0xFB; break;case 4:WEI=0xF7; break;case 5:WEI=0xEF; break;case 6:WEI=0xDF; break;}P0=WEI;W=0;D=1;switch(duan){ //段码部分case 0:DUAN=0x3F; break;case 1:DUAN=0x06; break;case 2:DUAN=0x5B; break;case 3:DUAN=0x4F; break;case 4:DUAN=0x66; break;case 5:DUAN=0x6D; break;case 6:DUAN=0x7D; break;case 7:DUAN=0x07; break;case 8:DUAN=0x7F; break;case 9:DUAN=0x6F; break;case 10:DUAN=0x77; break; //Acase 11:DUAN=0x7F; break; //Bcase 12:DUAN=0x39; break; //Ccase 13:DUAN=0x3F; break; //Dcase 14:DUAN=0x79; break; //Ecase 15:DUAN=0x71; break; //Fcase 16:DUAN=0x80; break; //.}P0=DUAN;}void main(){NixieTube(3,3);while(1);}运⾏结果如下:4-2 动态数码管显⽰1.如果只是单纯让其显⽰完⼀个再显⽰⼀个,代码如下:#include<reg51.h>#define uchar unsigned charsbit D=P2^6;sbit W=P2^7;uchar Nixiewei[]={0,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};uchar Nixiecode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7F,0x39,0x3F,0x79,0x71,0x80};//将两个switch改进为数组void NixieTube(uchar wei,uchar duan){D=0;W=1;P0=Nixiewei[wei];W=0;D=1;P0=Nixiecode[duan];}void main(){while(1){NixieTube(1,1);NixieTube(2,2);NixieTube(3,3);}}运⾏结果如下:2.这是⼀个数码管的常见问题,称为 数码管的消影 ;位选-->段选-->位选-->段选-->位选-->......在这⼀位的段选(输⼊段码)结束,进⾏下⼀位的位选时,很短的时间内,上⼀位的数据会串到下⼀位数据⾥⾯去;所以我们在段选和位选之间,增加⼀个 P0 清零的操作;动态数码管显⽰(数码管同时显⽰123).c#include<reg51.h>#define uchar unsigned charsbit D=P2^6;sbit W=P2^7;uchar Nixiewei[]={0,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};uchar Nixiecode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7F,0x39,0x3F,0x79,0x71,0x80};void Delayms(unsigned int x){unsigned int j;for(;x>0;x--) for(j=110;j>0;j--);}void NixieTube(uchar wei,uchar duan){D=0;W=1;P0=Nixiewei[wei];W=0;D=1;P0=Nixiecode[duan];Delayms(1); //让数码管稳定显⽰,⽴刻清零会让数码管显⽰较暗P0=0; //清零操作}void main(){while(1){NixieTube(1,1);NixieTube(2,2);NixieTube(3,3);}}运⾏结果如下:相关知识1.在运⾏某些代码时,TX-1C的LED点阵模块会乱闪2.将左下⾓ DOT-OE旁的跳线帽 拔下来即可 断开LED点阵模块,3.拔下来的跳线帽不要乱丢,可以 只插⼀个脚放在原处,也可以妥善保管在其他地⽅上图即为拔下来的跳线帽1.此元件为电容;2.104的数量规则与 第⼆节 所讲的电容是相同的,其单位是pF1000pF=1nF, 1000nF=1uF, 1000uF=1000mF, 1000mF=1FF 是⼀个很⼤的单位,正常电容都是uF、nF级别的;超级电容能达到1 ~ 2 F,其⼀般作为备⽤电池;3.TX-1C的原理图上,电容的量都是直接⽤单位标记好的。

51单片机-数码管显示

51单片机-数码管显示
P2=0x00; P0=0x03; delay(400); P0=0x9f; delay(400); P0=0x25; delay(400);
} void delay(int x) {
int i,j; for(i=0;i<x;i++)
for(j=1;j<120;j++); }
LED字型显示代码表
段符号
十六进制代码
显示 dp
g
f
e
d
c
b
a 共阴极 共阳极
0
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
0
A0
b
0
C0
d
0
E0
F
0
H0
P0
0
1
1
1
1
1
1
3FH
C0H
0
0
0
0
1
1
0
06H
F9H
1
0
1
1
0
1
1
5BH
A4H
1
0
0
1
1
1
1
4FH
B0H
1
1
0
0
1
Hale Waihona Puke 1066H
99H
1
1
0
1
1
0
1
6DH 92H
1
1
1
1
1
0
1
7DH
1. 静态显示的特点
静态显示就是单片机将所要显示的数据送出去后,数码管始终显示 该数据(不变),到下一次显示时,再传送一次新的显示数据。

单片机数码管动态显示1234-9999

单片机数码管动态显示1234-9999

一、实验目的1.掌握Keil软件的基本使用2.学习和掌握C语言编写程序的一般格式3.了解数码管与单片机的接口方法;4.了解数码管性能及动态显示编程方法;5.了解并掌握单片机系统中定时器中断控制的基本方法;二、实验内容用定时器中断实现四位数码管动态显示从1234-9999。

三、实验原理3.1基础知识介绍A.数码管是LED的升级,每位数码管里面继承了8个LED,点亮数码管就是点亮数码管里面的LED。

要在数码管上面显示相应的值,就是点亮不同位置的LED。

数码管有共阴和共阳两种,共阴数码管公共端是所有LED的负极连接在一起,相反共阳数码管公共端是所有LED的正极连接在一起。

一般公共端称作“位选”,控制每一个LED的称为“段选”。

数码管主要是利用视觉暂留的效果,通过快速循环点亮数码管方式,将数据呈现出来。

数码管如图1.2所示1.2数码管1.3数码管实物图/B.定时器定时器也可看作是对计算机机器周期的计数器。

因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号。

故其频率为晶振频率的1/12。

如果晶振频率为12MHz,则定时器每接收一个输入脉冲的时间刚好为1μs。

定时器有两种工作模式,分别为计数模式和定时模式。

对Px,y 的输入脉冲进行计数为计数模式。

定时模式,则是对MCU的主时钟经过12分频后计数。

因为主时钟是相对稳定的,所以可以通过计数值推算出计数所经过的时间。

计数器的计数值存放于特殊功能寄存器中。

T0(TL0-0x8A, TH0-0x8C), T1(TL1-0x8B, TH1-0x8D)定时器工作原理如下图由上图可见与定时器相关的寄存器主要有下面这几个:TMOD、TCON、TL0、TH0、TL1、TH1。

下面介绍一下这几个寄存器16位加法计数器:是定时计数器的核心,其中TL0、TH0、是定时计数器0的底八位和高八位;TL1、TH1是定时计数器1的底八位和高八位;并且高八位和底八位可单独使用。

第3节-数码管驱动(项目3)

第3节-数码管驱动(项目3)

}
void main (void)
{
unsigned char i;
ห้องสมุดไป่ตู้
// 变量 i 作为数组的0~9编号
P2 = 0;//P2.0 = 0,通过反相器反相后,加在数码管公共端上的电压
while (1)
{ P0 = seven_seg[i]; delay(50000); i++;
//输出0~9到共阳七段显示器 //调用时间延迟函数delay()
在程序设计时,库函数可以很方便的被用户程序调用。 例如,利用库函数实现的跑马灯程序为
/************************/
#include<reg51.h> #include<intrins.h>//库函数的头文件
void delay(unsigned int x)
while (1)
{ …….. delay(1000); …… }
}
//调用时间延迟函数,实参为1000
三、有返回值函数
如果函数中要返回数值时,必须使用return命令。 并且返回值的类型必须与函数的类型一致。如把8位8421二 进制码转换成8421BCD码函数。
unsigned char DEC_BCD_conv(unsigned char x)
if(i == 10)
i = 0;
}
}
当程序中使用常量数据时,如共阳数码管数字显示编 码、液晶显示器的汉字编码等,一般希望这些数据当程序 下载到单片机时存放在单片机的ROM区,对此类数据声明前 面需要加上关键字code或const,如数码管的显示编码。
利用数码管也可以显示日期和时间,但是在本项目中, 数字变化时间是由延时函数实现的,由于C语言程序进过编 译后的生成的汇编程序与直接采用汇编语言编写的程序

51单片机共阴极数码管与三极管

51单片机共阴极数码管与三极管

51单片机共阴极数码管与三极管一、引言51单片机是一种广泛应用于嵌入式系统中的微处理器,其性能稳定、功能强大,在各种电子设备中得到了广泛的应用。

而共阴极数码管和三极管作为其外围元器件,在数字显示和电路控制中发挥着重要作用。

二、共阴极数码管的原理和应用1. 共阴极数码管的结构和工作原理共阴极数码管是一种常见的数字显示器件,其内部由多个发光二极管组成。

在工作时,需要通过外部电路控制不同的发光二极管,从而显示出不同的数字和字符。

共阴极数码管中的每个发光二极管都需要接地才能发光,因此在控制时需要将要显示的位置的共阴极接地,同时将对应的阳极高电平,从而实现数字显示的控制。

2. 共阴极数码管的应用共阴极数码管在各种电子仪器仪表中得到了广泛的应用,例如数字时钟、计数器、温度计、电压表等。

其优点是功耗低、寿命长、易控制,可以满足数字显示的需求,因此在数字显示方面有着重要的地位。

三、三极管的原理和应用1. 三极管的结构和工作原理三极管是一种半导体器件,由三个不同掺杂的半导体材料层组成,分别为发射区、基区和集电区。

在工作时,可以通过控制发射区和基区之间的电流来控制集电区的电流,从而实现放大和开关的功能。

三极管可以用作放大器、开关、振荡器等不同的电路元器件,具有广泛的应用。

2. 三极管的应用三极管在各种电子电路中都有着重要的应用,例如放大器电路、振荡电路、开关电路等。

其优点是具有放大效果,可以在不同的电路中实现信号放大和控制,因此被广泛地应用于各种电子设备和系统中。

四、51单片机与共阴极数码管、三极管的关系1. 51单片机的数字输出与共阴极数码管的控制51单片机具有多个通用输入输出引脚,可以通过控制这些引脚的电平来控制外部的各种元器件。

在控制共阴极数码管时,可以通过将对应的共阴极引脚接地,同时将对应的阳极引脚设置为高电平,从而实现对数码管的控制。

2. 51单片机与三极管的驱动和控制51单片机可以通过控制输出引脚的电平来控制三极管的工作。

单片机数码管控制方式

单片机数码管控制方式

单片机数码管控制方式数码管是一种常见的输出设备,用于显示数字和字母等字符。

在单片机应用中,通过控制数码管的亮灭状态,可以实现各种显示效果,如计时器、温度显示等。

本文将介绍几种常见的单片机数码管控制方式。

一、静态显示方式静态显示方式是最简单的数码管控制方式之一。

它通过直接控制数码管的每一位,使其显示相应的数字或字符。

静态显示方式的特点是显示稳定,但需要占用较多的IO口资源。

在静态显示方式中,单片机通过控制每一位数码管的引脚,使其亮起或熄灭。

具体的控制流程如下:1. 设置引脚的工作模式为输出模式;2. 通过逐位设置引脚的电平,使对应的数码管亮起或熄灭;3. 根据需要的显示效果,不断循环执行步骤2。

二、动态扫描方式动态扫描方式是一种常见的数码管控制方式。

它通过快速切换数码管的亮灭状态,使人眼产生视觉暂留效果,从而实现数字或字符的显示。

动态扫描方式的特点是节省IO口资源,但需要较高的刷新频率。

在动态扫描方式中,单片机通过依次设置每一位数码管的引脚为高电平,其他位的引脚为低电平,从而实现数码管的动态显示。

具体的控制流程如下:1. 设置引脚的工作模式为输出模式;2. 依次将每一位数码管的引脚设置为高电平,其他位的引脚设置为低电平;3. 等待一段时间,使人眼产生视觉暂留效果;4. 根据需要的显示效果,不断循环执行步骤2和步骤3。

三、面阵扫描方式面阵扫描方式是一种高级的数码管控制方式。

它通过将多个数码管组成一个矩阵,通过行列扫描的方式实现数字或字符的显示。

面阵扫描方式的特点是可以显示更多的内容,但需要较高的计算和刷新速度。

在面阵扫描方式中,单片机通过设置行和列的引脚状态,控制数码管的亮灭。

具体的控制流程如下:1. 设置引脚的工作模式为输出模式;2. 依次设置每一行的引脚为低电平,其他行的引脚为高电平;3. 依次设置每一列的引脚为高电平或低电平,控制数码管的亮灭;4. 等待一段时间,使人眼产生视觉暂留效果;5. 根据需要的显示效果,不断循环执行步骤2、步骤3和步骤4。

51单片机驱动数码管

51单片机驱动数码管

单片机课程设计(51单片机AT89C51串并转换驱动数码管)班级:XXXXX姓名:XXXXX学号:XXXXX一、数码管因成本较低、驱动电路简单、既可以显示数字,又可以组合显示简单的图形,因此在工业控制、计数器、定时器等需要显示的场合得到广泛的应用。

单片机驱动数码管一般有静态驱动和动态驱动二种方式,静态驱动亮度高,驱动简单但是需要增加额外的驱动电 路,因此成本较高。

动态扫描亮度稍低,但是驱动电路比较简单,成本较低,因此应用比较广泛。

本章通过实例详细介绍数码管的二种驱动方法。

数码管一般由多个LED 发光二极管组成,常见的7段数码管内部由8个LED 组合而成,其中一个小数点。

可显示0到9 的数字、字符型A 到F 或一些特殊的字符。

1.给数码管段加上相应的数据.(显示0,送0XF9).2.给数码管位加上相应的电压.(第一位点亮,P10 = 0)3.指向下一位数码管.4.循环执行.一、四位一体数码管是有四个单只的数码管封装而成的,每个数码管的A 、B 、C 、D 、E 、F 、G 、DP 的八根引线并联在一起,一般成为段口;四个公共端单独引出,称为位选。

------------------------------------------------------------------------------- 数码管在电路结构上分为两类:一种共阳极,一种共阴极。

两种数码管的驱动方式是不同的,在实际应用中不能简单互换。

数码管在正常工作的时候,段口和位选都必须送入正确的电平信号。

如需数码管显示“1”只需给控制p01和p02低电平,另外六个p0口都为高电平。

A 、B 、C 、D 、E 、F 、G 、DP 各段口位分别对应p01~p07引脚,对应的段码为十六进制数。

二、AT89C51的管脚分布如下:VCC :供电电压。

GND :接地。

P0口:P0口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O 口,P1口缓冲器能接收输出4TTL 门电流。

单片机74HC595级联控制数码管

单片机74HC595级联控制数码管
程序:单片机和2个74HC595L级联控制4位数码管显示
功能:在数码管上显示1234
作者:陈韬
时间:20111118
备注:595不管是多少个级联,先只管写,比如两个级联,那么先写后一个的数据函数,
然后写前一个级联595的函数,最后一次性的一起释放并出的引脚
*******************************************************************/
0x80,0x90,0x83,0xc6,0xa1,0x86,0x8e };//共阳数码管低电平点亮
unsigned char code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//高电平位选
/*************
void Delay(void);//延时函数
void Disp(unsigned char m,unsigned char n)//显示的数字+显示的数码管位
{
W595_in(wei[n]);
W595_in(duan[m]);
W595_out();
Delay();
}
/**************************/
main()
{
unsigned char i;
void W595_in(unsigned char Data);//完成一个字节8位的输入
void W595_out (void);//完成并出数据功能
void Disp(unsigned char m,unsigned char n);//显示的数字+显示的数码管位
****************/
/*************************************/

单片机实验报告二-数码管显示实验

单片机实验报告二-数码管显示实验

单片机实验报告二-数码管显示实验摘要:本实验使用单片机控制数码管的显示,在实验过程中通过学习单片机的GPIO口的编程,调试程序、调节电路来达到正确的显示效果。

最终按照要求实现了单片机控制数码管的计数器。

关键词:单片机、数码管、GPIO口、计数器一、实验介绍数码管是一种介于机械仪表和液晶显示器之间的电子显示器件,广泛应用于计时器、计数器、仪表等电子产品中。

本实验旨在通过单片机控制数码管的显示来加深对GPIO口的使用和调试程序的理解,同时了解数码管的原理。

本实验主要分为两部分:数码管显示基础实验和数码管控制开关实验。

通过这两部分的实验可以了解数码管的工作原理和单片机的基本控制方式。

二、实验原理2.1 数码管的基本原理数码管显示器将数字显示为一组符号,例如“0”到“9”。

表示不同数字的符号被编码成一个数字码。

七段数码管用一个七段数码字母来表示数字,如下表所示:| 数字 | a | b | c | d | e | f | g || ---- | - | - | - | - | - | - | - || 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 || 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 || 2 | 1 | 1 | 0 | 1 | 1 | 0 | 1 || 3 | 1 | 1 | 1 | 1 | 0 | 0 | 1 || 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 || 5 | 1 | 0 | 1 | 1 | 0 | 1 | 1 || 6 | 0 | 0 | 1 | 1 | 1 | 1 | 1 || 7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 || 8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 || 9 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |通过控制数码管的七个LED灯的亮灭,可以实现不同符号显示。

51单片机按键控制数码管闪烁位置

51单片机按键控制数码管闪烁位置
display();
n--;
if (n > 3)
n = 3;}Βιβλιοθήκη }display();
}
}
void T0_INT() interrupt 1
{
TH0 = 0x3C;
TL0 = 0xB0;
n_50ms++;
n_50ms %= 6; //10对应1Hz
if(!n_50ms)
flag = ~flag;
}
while(1)
{
if (!k_a)
{
display();
if (!k_a)
{
while (!k_a)
display();
num[n]++;
if (num[n] > 9)
num[n] = 0;
}
}
if (!k_s)
{
display();
if (!k_s)
{
while (!k_s)
display();
#include <intrins.h>
sbit k_a = P3^1;
sbit k_s = P3^3;
sbit k_l = P3^5;
sbit k_r = P3^7;
unsignedchar code SEG7[] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
for(i = 0; i < 8; i++)
{
P0 = SEG7[DISP_BUFF[i]];
P2 = w;
DelayMS(1);
P2 = 0;
w = _cror_(w, 1);

单片机数码管元件名称

单片机数码管元件名称

单片机数码管元件名称一、什么是单片机数码管元件1.1 单片机的概念单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、存储器和各种外围接口的单芯片微型计算机系统。

它具有体积小、功耗低、功能强大、易于编程等特点,广泛应用于电子产品中。

1.2 数码管的概念数码管(Digital Tube)是一种能够显示数字和一些特定字符的显示元件。

它由多个发光二极管(LED)组成,可以通过控制每个LED的亮灭状态来显示不同的字符。

1.3 单片机数码管元件单片机数码管元件是指用于单片机系统中的数码管显示模块。

它通常由数码管、驱动芯片、电阻、电容等元件组成,能够实现对数字、字母、符号等信息的显示。

二、单片机数码管元件的分类2.1 共阴数码管和共阳数码管2.1.1 共阴数码管共阴数码管是指数码管的阴极(COM)连接在一起,阳极(A、B、C、D、E、F、G)分别接入单片机的输出端。

当单片机输出低电平时,对应的LED会亮起,实现数字的显示。

2.1.2 共阳数码管共阳数码管是指数码管的阳极(COM)连接在一起,阴极(A、B、C、D、E、F、G)分别接入单片机的输出端。

当单片机输出高电平时,对应的LED会亮起,实现数字的显示。

2.2 通用数码管和带引导位数码管2.2.1 通用数码管通用数码管是指只能显示数字的数码管,共有0-9十个数字的显示。

它常用于计数器、计时器、温度计等应用场合。

2.2.2 带引导位数码管带引导位数码管是指在通用数码管的基础上增加了一个引导位(DP),用于显示特殊符号或小数点。

它可以显示数字、字母、符号等更多的信息。

三、单片机数码管元件的工作原理3.1 数码管的显示原理数码管的显示原理是利用人眼的视觉暂留效应,通过适当的亮灭时间控制LED的亮灭状态,从而实现数字、字母等信息的显示。

3.2 单片机对数码管的驱动单片机通过输出高低电平控制数码管LED的亮灭状态。

以共阳数码管为例,当单片机输出高电平时,对应的LED会亮起;当单片机输出低电平时,对应的LED会熄灭。

51单片机数码管倒计时汇编语言代码

51单片机数码管倒计时汇编语言代码

51单片机数码管倒计时汇编语言代码数码管是一种电子元器件,常用于倒计时、计时和显示数字等场景中。

其中,51单片机作为一种常见的控制芯片,能够对数码管进行比较精确的控制。

本文将介绍51单片机在数码管倒计时中的应用,并给出相应的汇编语言代码。

一、硬件准备首先,我们需要准备一些硬件设备。

具体来说,我们需要一块51单片机的开发板、一组共阳数码管、一个蜂鸣器、一枚按键开关、若干杜邦线和面包板。

在连接各个模块时,需要注意接线的正确性和稳定性。

二、倒计时实现接下来,我们就可以开始编写汇编语言代码了。

代码实现中,需要注意数码管的显示方式以及倒计时时间的设定等细节。

首先,我们定义一些常数,如:COUNT_MAX EQU10;倒计时时长为10sCLK_FREQ EQU12000000;时钟频率为12MHzDELAY_US EQU CLK_FREQ/1000000其中,COUNT_MAX表示倒计时的最大时长,CLK_FREQ表示单片机的时钟频率,DELAY_US表示1us延时所需的机器周期数。

其次,需要定义一些数据段:ORG0SJMP MAINORG0BHDELAY_CNT:DB0ORG0CHMODE_CNT:DB0其中,DELAY_CNT是延时计数器,MODE_CNT是模式计数器。

接着,我们定义主函数:MAIN:CLR P1.5CLR P1.6CLR P1.7MOV TMOD,#01H;设置定时器0为模式1SETB TR0;启动定时器0SETB EASETB ET0SETB EX0MOV R6,#DELAY_USSJMP MODE_SEL首先,需要清空P1.5、P1.6和P1.7引脚,以便控制数码管的显示。

然后,设置定时器0为模式1,并启动定时器0。

接着,开启总中断、定时器0中断和外部中断,设置延时计数器,并跳转到MODE_SEL 模式选择功能。

接下来是MODE_SEL模式选择功能:MODE_SEL:MOV A,MODE_CNTCPL AMOV MODE_CNT,AANL A,#03HJZ MODE_0CJNE A,#01H,MODE_SEL_ENDSJMP MODE_1CJNE A,#02H,MODE_SEL_ENDSJMP MODE_2MODE_SEL_END:CLR TR0CLR EARETI在这个模式下,程序每执行一次,模式计数器加1,并且A寄存器与3进行与操作,最后根据A的值跳转到相应的倒计时模式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

两位数码管动态扫描显示参考程序
**************外部中断处理程序****************** 完成计算开关来回拨动的次数,并进行BCD码调整 *********************************************** INT1: INC AD0 ; 每中断一次(开关来回拨动一次) 计数加1 MOV A,AD0 CJNE A,#10,LOOP1 ; 个位小于10 ? MOV AD0,#0 ; 等于10,个位调整为0十位加1 INC AD1 MOV A,AD1 CJNE A,#10,LOOP1 ; 计数是否等于100? MOV AD1,#0 ; 等于100,个位十位调整为0 LOOP1: RETI ; 返回
LED显示器(数码管)的结构与原理
1. 结构种类 七段LED显示器(数码管)系发光器件的一种。常用的LED发 光器件有两类:数码管和点阵。 数码管内部由七个条形发光二极管和一个小圆点发光二极 管组成,根据各管的亮暗组合成字符。常见数码管有10根 管脚。管脚排列如下图所示。其中COM为公共端,根据内部 发光二极管的接线形式可分为共阴极和共阳极两种。 使用时,共阴极数码管公共端接地,共阳极数码管公共端 接电源。每段发光二极管需5~10mA的驱动电流才能正常发 光,一般需加限流电阻控制电流的大小。
4.4 LED显示器动态显示及应用实例
1. 动态显示的特点 优点:当显示位数较多时,采用动态显示方式比较节省I/O 口,硬件电路也较静态显示简单。 缺点:其稳定度不如静态显示方式。而且在显示位数较多时 CPU要轮番扫描,占用CPU较多的时间。
4.4 LED显示器动态显示及应用实例
2. 应用实例 【例】 采用两位数码管动态扫描显示按键来回拨动次数。 解:硬件电路设计如下图所示。7407的两个输出引脚分别接至 两位数码管(共阴)的公共端,控制每位数码管的分时显示, 实现动态扫描显示。 软件设计以单片机内部RAM的30H、31H作为显示数据缓存, 两位段码的获取及每位数码管的显示控制由显示子程序完成。 参考程序如下。
LED显示器静态显示及应用实例
2. 应用实例 【例】 用一位数码管显示开关来回拨动的次数。 解:电路如下图所示,89S51的P1口经74LS373接一个共阴极数 码管,数码管的公共端接地。P1口输出字型码送至数码管, 就能控制数码管的显示内容。74LS373为8D锁存器,在电路 中起驱动作用。两个与非门组成的RS触发器主要起消抖作 用,用来消除开关按下及弹起过程中的抖动所引起的判断 错误。开关信号经消抖动电路后接单片机的INT1引脚。每 来回拨动一次将产生一个下降沿信号,通过INT1向CPU申请 中断。 软件设计时,可用R0作为记录中断次数的指针(每中断一次 R0加1),然后根据R0用查表程序查出对应的字形码,再由 P1口送出,控制数码管显示中断次数值。
一位数码管显示电路图
U2 a b f b c g d e c e d f dp g LED DPY a 7 6 4 2 1 9 10 300Ω×7 2 5 6 9 12 15 16 19 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 74LS373 D0 D1 D2 D3 D4 D5 D6 D7 OE LE 3 4 7 8 13 14 17 18 1 11 GND VCC 1 2 3 4 5 6 7 8 13 12 15 14 VCC 1kΩ 1 2 S GND 4 1kΩ 5 74ALS00 X2 12MHz 30pF 30pF GND X1 U1B 6 VCC 10µ F U1A 3 VCC 31 X1 19 X2 18 9 17 16 U1 P10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR RXD TXD ALE/P PSEN 10 11 30 29 89S51 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28
4.4 LED显示器动态显示及应用实例
1. 动态显示的特点 动态扫描方法是用其接口电路把所有数码管的8个笔划段a~ g和dp同名端连在一起,而每一个数码管的公共极COM各自独 立地受I/O线控制。CPU向字段输出口送出字形码时,所有数 码管接收到相同的字形码。但究竟是哪个数码管亮,则取决 于COM端,COM端与单片机的I/O口相连接,由单片机输出位 码到I/O控制何时哪一位数码管亮。 动态扫描用分时的方法轮流控制各个数码管的COM端,使各 个数码管轮流点亮。在轮流点亮数码管的扫描过程中,每位 数码管的点亮时间极为短暂。但由于人的视觉暂留现象及发 光二极管的余辉,给人的印象就是一组稳定的显示数据。
两位数码管动态扫描显示参考程序
***************两位动态显示子程序*************** 功能:两位数码动态显示(P1口送字形码,P2口送位码) 入口:显存地址AD1,AD0,位显码初值R2(0FDH) ************************************************ DISP: MOV DPTR,#TAB ; 字形码首地址 MOV R0,#AD1 ; 十位显存地址送R0 NEXT: MOV A,@R0 MOVC A,@A+DPTR ; 查字形码 MOV P1,A ; 字形码送P1 MOV P2,R2 ; 位显码送P2 ACALL DELAY ; 延时 DEC R0 ; 指向下一地址 MOV A,R2 RR A ; 指向下一位显 MOV R2,A CJNE R2,#07FH,NEXT ; 2位数码显示完? RET ; 显示完返回 DELAY: …… ; 延时子程序(略) TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ,7FH,6FH ; 字形码
数码管实物
数码管显示电路原理图
3
GND
一位数码管显示参考程序
ORG 000H
AJMP MAIN ORG 0013H AJMP INT1 ; 外部中断1入口地址 ************ 主程序 *************************** MAIN: SETB EA ; 开通中断开关 SETB EX1 ; 开外部中断 SETB IT1 ; 下降沿触发 MOV R0,#0 ; 计数指针清0 MOV P1,#3FH ; 开始显示0 MOV DPTR,#TAB ; 字形码地址送DPTR SJMP $ ; 等待中断(开关来回拨动一次产生一次中断) *********** 外部中断处理程序 ************************** INT1: INC R0 ; 开关每来回拨动一次计数指针加1 MOV A,R0 MOVC A,@A+DPTR ; 查字形码 MOV P1,A ; 字形码送P1显示 CJNE R0,#0FH,RE ; 是否等于15次 MOV R0,#00H ; 计数指计清0 RE: RETI TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ; 字形码 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H END
a
LED显示器的结构与原理
b c
+5V
a
b
c
COM 10 9 g f a f e g d d 1 2 3 c 4 b 8 a 7 6 b
d
d
e
e
f c g
f
e
dp 5 dp GND
g
COM
dpBiblioteka (a)管脚排列共阴极数码管 (b)
共阳极数码管 (c)
LED显示器的结构与原理
2. 显示原理 LED数码管的a~g七个发光二极管。加正电压的发光,加零 电压的不能发光,不同亮暗的组合就能形成不同的字型, 这种组合称为字型码。共阳极和共阴极的字型码是不同的, 如下表所示。 可采用硬件译码输出字型码控制显示内容,如采用74LS48、 CD4511(共阴极)或74LS46(74LS47)、CD4513(共阳极)。也 可用单片机I/O口直接输出字型码控制数码管的显示内容。 用单片机驱动LED数码管显示有很多方法,按显示方式分有 静态显示和动态显示。
LED字型显示代码表
段 显示 02. 1 2 3 4 5 6 7 8 9 A b C d E F H P dp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 f 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 e 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 符 d 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 号 c 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 b 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 a 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 十六进制代码 共阴极 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H 76H F3H 共阳极 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H C6H A1H 86H 8EH 89H 8CH
两位数码管动态 扫描显示电路
两位数码管动态扫描显示参考程序
EQU 30H ; 个位显存 EQU 31H ; 十位显存 ORG 0000H AJMP MAIN ORG 0013H ; 外部中断入口地址 AJMP INT1 **************主程序********************* MAIN: MOV SP,#60H MOV AD0,#0 ; 显存清0 MOV AD1,#0 SETB EA ; 开通中断开关 SETB EX1 ; 开外部中断 SETB IT1 ; 下降沿触发 LOOP: MOV R2,#0FDH ; 显示位码(十位)初值送R2 ACALL DISP ; 调两位显示子程序 SJMP LOOP AD0 AD1
相关文档
最新文档