51单片机项目教程项目 6 数码管静态显示

合集下载

关于单片机的一些小实验_06 一位数码管静态显示

关于单片机的一些小实验_06 一位数码管静态显示
#define SMG5_OFF() (P0_4=1) //定义"SMG5_OFF()"为P0.4输出高电平,不选中数码管5
#define SMG6_ON() (P0_5=0) //定义"SMG6_ON()"为P0.5输出低电平,选中数码管6
#define SMG6_OFF() (P0_5=1) //定义"SMG6_OFF()"为P0.5输出高电平,不选中数码管6
// 0 1 2 3 4 5 6 7 8 9 A b C d E F
/********************************************************************************************
*函数名称:main()
*功能:控制数码管1~8每个依次显示"0"~"F"这十六个字符
* 4.短接P0.0__SMG1
*短接P0.1__SMG2
*短接P0.2__SMG3
*短接P0.3__SMG4
*短接P0.4__SMG5
*短接P0.5__SMG6
*短接P0.6__SMG7
*短接P0.7__SMG8
*短接P2.7__SI1
*短接P2.6__RCK1
*短接P2.5__SCK1
*日期:2014年04月23号
typedef unsigned int uint32; //无符号32位整型变量
typedef signed int int32; //有符号32位整型变量
typedef float fp32; //单精度浮点数(32位长度)
typedef double fp64; //双精度浮点数(64位长度)

第三课单片机控制数码管的动静态显示演示文稿

第三课单片机控制数码管的动静态显示演示文稿
第三课单片机控制数码管的 动静态显示演示文稿
第一页,总共八页。
(优选)第三课单片机控制 数码管的动静态显示
第二页,总共八页。
风云51实验板实物图
第三页,总共八页。
共阴数码管
第四页,总共八页。
共阴数码管
第五页,总共八页。
共阴共阳数码管
由上图所示,不难看出数码管也是由一个个的发光二 级管组成,只不过采用了不同的排列不同的形状而已, 穿了马甲的乌龟我们照样认识,那么共阴就是把8个 二极管的负极也就是阴极连在一起,顾名思义共阳就 是将八个数码管的阳极也就是正极连接在一起,四位 一体,就是将数码管的段选接口对应连接在一起,将 位选留出。
第六页,总共八页。
风云51实验板数码管连接原理图第七页,总共八页。源自单片机编程控制静态数码管原理
静态数码管的控制非常简单,在程序中只要将数码管 相应的位选信号打开,然后给段选写上相应的数据就 可以搞定,以我们51基础实验板为例,原理图中位选 信号是与P2口相连,8个段选都与P1口相连,所以我们 要实现静态控制的话,每次最多只能点亮一位数码管, 加入我们现在要编程实现让第一位数码管显示数字8, 那么我们需要给P2.0口写0,给P1口先80H,因为我们 用的事PNP管并且数码管都是共阳的。
第八页,总共八页。

单片机数码管静态显示实验程序(汇编)_共2页

单片机数码管静态显示实验程序(汇编)_共2页

单片机数码管静态显示实验程序org 00hnum equ p0;p0口连接数码管clr p2.0;mov dptr ,#tabclr amov r2,#0loop:movc a,@a+dptrmov num ,aacall delay_200msinc r2mov a,r2cjne r2,#15, loopmov r2,#0clr aajmp looptab :DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EHdelay_200ms:mov r3,#20delay:acall delay_10msdjnz r3,delayret;;;;;;;;;;;;;;;;非中断精确delay_1ms:MOV R7 ,#249signed:nopnopdjnz R7 ,signed 1MS定时程序;循环部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4机器周期ret;2+249*4+2=1000us;返回指令2机器周期可以精确定时1MS,假设外部晶振是12M;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;非中断精确10MS 定时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov r6,#9;2个机器周期用2usdelay_10ms_sined: ;9次循环共用 9(1ms+4us)=9036us acalldelay_1msdjnz r6,delay_10ms_sinedMOV r6 ,#240;2个机器中期用 2ussigned_10ms :;循环部分 4机器周期共240次nopnopdjnz r6 ,signed_10msret;返回指令要2us;2us+9036us+240*4us+2us = 10ms 即可精确定时10ms ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;非中断精确定时 1s;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;delay_1s:mov r5,#99delay_1s_signed:acall delay_10msdjnz r5,delay_1s_signed mov r5 ,#9signed_1s:acall delay_1msdjnz r5 ,signed_1smov r5 ,# 140signed_1s_:nopnopdjnz r5,signed_1s_;两个机器周期2us;循环指令周期为4us,加上延时10ms;(10ms+4us)*99 = 990.396ms;两个机器周期2us;循环指令周期为4us,加上延时1ms;(1ms+4us)*9 = 9ms+36us;机器周期2us;一次循环4us共有140次。

单片机数码管静态显示原理

单片机数码管静态显示原理

单片机数码管的静态显示是一种常见的数字显示方式,它通过单片机控制数码管的每个段(a~g、dp)的开关状态,以显示所需的数字或字符。

以下是单片机数码管静态显示的基本原理:1. 数码管构成:数码管通常由七段LED(a~g)和一个小数点(dp)组成。

每个段代表数字或字符的一部分。

2. 驱动电路:数码管需要适当的电流和电压来点亮各个段。

通常,使用共阳极(Common Anode)或共阴极(Common Cathode)的数码管。

-共阳极数码管:该类型的数码管的阳极(正极)是共用的,而七段LED的阴极(负极)是分开的。

通过向某个段的阴极引入低电平(通电),并向共阳极引入高电平(不通电),就可以点亮该段。

其他段则保持高电平,不点亮。

-共阴极数码管:该类型的数码管的阴极是共用的,而七段LED的阳极是分开的。

通过向某个段的阳极引入高电平(通电),并向共阴极引入低电平(不通电),就可以点亮该段。

其他段则保持低电平,不点亮。

3. 单片机控制:使用单片机(如Arduino、PIC、8051等)来控制数码管的静态显示。

通过单片机的GPIO(通用输入输出)引脚连接到数码管的各个段,可以控制每个段的开关状态。

-共阳极数码管控制:通过将特定的段引脚设置为低电平(通电),并将共阳极引脚设置为高电平(不通电),来点亮该段。

其他段的引脚则设置为高电平,不点亮。

-共阴极数码管控制:通过将特定的段引脚设置为高电平(通电),并将共阴极引脚设置为低电平(不通电),来点亮该段。

其他段的引脚则设置为低电平,不点亮。

4. 数据刷新:由于单片机的处理速度很快,对人眼来说会感觉到数码管的显示是同时发生的。

实际上,单片机会不断地刷新数码管的显示。

它通过快速地切换各个段的开关状态,使人眼感知到连续的静态显示。

通过以上的原理,单片机可以根据需要控制数码管的每个段的开关状态,以实现所需的数字或字符的显示。

数码管静态实验报告(3篇)

数码管静态实验报告(3篇)

第1篇一、实验目的1. 熟悉数码管的结构和原理,掌握数码管的静态显示方法。

2. 学习使用单片机控制数码管显示数字的方法。

3. 提高编程能力和实际动手操作能力。

二、实验原理数码管是一种用于显示数字和符号的电子显示器件,它由若干个发光二极管(LED)组成,每个LED对应数码管的一个段,通过控制LED的亮与灭,可以显示出相应的数字和符号。

本实验采用共阴极数码管,当对应的段亮起时,显示相应的数字。

数码管的静态显示方式是指,当数码管显示一个数字时,该数字的各个段都会持续亮起,直到下一次更新显示内容。

三、实验设备1. 单片机实验箱2. AT89C51单片机3. 5V电源4. 共阴极数码管5. 连接线6. 调试工具(如示波器、万用表等)四、实验步骤1. 连接电路:按照实验原理图,将单片机的P0口与数码管的各个段连接,将单片机的VCC和GND与数码管的VCC和GND连接。

2. 编写程序:使用C语言编写程序,控制单片机输出相应的数字到数码管。

3. 烧录程序:将编写的程序烧录到单片机中。

4. 调试程序:使用调试工具观察数码管显示的数字,确认程序运行正常。

5. 修改程序:根据实验要求,修改程序,实现不同的显示效果。

五、实验内容1. 显示数字0-9:编写程序,使数码管依次显示数字0-9。

2. 显示特殊字符:编写程序,使数码管显示特殊字符,如“”、“”等。

3. 显示自定义字符:编写程序,使数码管显示自定义的字符,如“ABC”等。

4. 显示数字与字符混合:编写程序,使数码管同时显示数字和字符。

六、实验结果与分析1. 显示数字0-9:程序运行正常,数码管依次显示数字0-9。

2. 显示特殊字符:程序运行正常,数码管显示特殊字符。

3. 显示自定义字符:程序运行正常,数码管显示自定义字符。

4. 显示数字与字符混合:程序运行正常,数码管同时显示数字和字符。

在实验过程中,遇到以下问题:1. 数码管显示不清晰:经过检查,发现数码管与单片机的连接线存在松动,重新连接后,数码管显示清晰。

基于51单片机实现LED数码管静态与动态显示的设计浅析

基于51单片机实现LED数码管静态与动态显示的设计浅析

33第2卷 第22期产业科技创新 2020,2(22):33~34Industrial Technology Innovation 基于51单片机实现LED数码管静态与动态显示的设计浅析龙 志(广州大学松田学院,广州 增城 511370)摘要:随着社会的发展,在我们日常的生活中,数码管的应用随处可见,尤其是在电子应用设计显示等方面常常发挥着非常重要的作用,因此研究数码管的显示有非常重要的现实意义。

数码管我们可以分为静态显示和动态显示,这两种显示有着本质的区别,静态显示的特点是占用CPU 时间少,显示便于监测和控制,显示字形稳定,而动态数码管的显示,效果相对静态显示亮度差少许,但成本较低。

本设计主要是基于51单片机,先通过结合集成芯片74HC573对LED 数码管静态显示的硬件电路设计与分析,进一步拓展到采用芯片74HC138与LED 数码管动态显示的硬件电路设计与分析,最终实现两种不同的电路设计显示的方法。

关键词:LED 数码管;静态显示;动态显示;51单片机中图分类号:TP368.12 文献标识码:A 文章编号:2096-6164(2020)22-0033-02随着电子应用技术的不断发展,显示电路在电子设计应用方面更加广泛,尤其是LED 数码管显示在各行各业中的应用更加重要,如红绿交通灯显示,电子时钟显示,家电产品功能显示等方面都需要用到LED 数码管作为显示。

因此,对LED 数码管的显示控制有着非常重要的现实意义。

因此我们要实现LED 数码管的熟练显示控制,我们必须要根据数码管的特点来进行分析和设计,数码管有静态显示和动态显示的两种方法,接下对这两种电路作详细的分析与设计,最终实现对LED 数码管静态与动态的两种不同显示设计方法。

1 数码管静态显示电路设计数码管静态显示设计是利用MCS-51单片机结合两片集成芯片74HC573,实现对4个LED 数码管的显示控制。

具体设计如图1所示:图1 数码管静态显示设计电路图本电路设计主要是利用单片机的P0口来实现对数码管的位选控制与段选的控制,P0口之所以能够正确的对数码管进行位选与段选的控制,关键是在于设计中使用了芯片74HC573。

静态数码管显示(可编程)

静态数码管显示(可编程)

电子信息与自动化学院《可编程逻辑器件》实验报告学号:姓名:实验名称:数码管静态显示一、实验原理七段数码管是电子开发过程中常用的输出显示设备。

在实验系统中使用的是四个共阳极型七段数码管。

由于七段数码管公共端连接到VCC(共阳极型),当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。

图1数码管原理图图2程序设计大致流程图二、实验步骤1、打开QuartusII软件,新建一个工程然后创建一个Verilog File,打开VHDL编辑对话框进行编程;2、主要程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity JINGTAI isport (clk:in std_logic;x: out std_logic_vector(6 downto 0);y: out std_logic_vector(3 downto 0));end JINGTAI;architecture behave of JINGTAI issignal number :integer range 50000000 downto 0;signal count: std_logic_vector (1 downto 0);signal key: std_logic_vector (3 downto 0);beginy<="0000";PROCESS(clk)begin if clk'event and clk='1' then if number<50000000 thennumber <= number+1;else number <= 0;key <= key +1;end if;end if;end process;process(key)begincase key iswhen "0000" => x <= "1000000" ;when "0001" => x <= "1111001" ;when "0010" => x <= "0100100" ;when "0011" => x <= "0110000" ;when "0100" => x <= "0011001" ;when "0101" => x <= "0010010" ;when "0110" => x <= "0000010" ;when "0111" => x <= "1111000" ;when others => null;end case;end process;end behave;3、引脚锁定图3 引脚锁定三、实验结果仿真图如下:图4时序仿真图由以上可知,实验结果符合要求,则设计成功。

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

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

51单片机数码管显示实验实验内容:1)编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复。

2)C语言程序#include<reg52.h>#define uint unsigned intvoid display();void num();int i;unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表void delayms(uint);void main(){while(1){num();display();}}void display(){P2=0xff;//消隐P0连接段选,P1节位选P1=0x00;//8个数码管同时显示P2=table[i];//数码管显示数码0 delayms(1000);//延时5ms}void num(){if(i<9)i++;elsei=0;}void delayms(uint x){uint i,j;for(i=0;i<x;i++)for(j=0;j<110;j++);}3)汇编语言:ORG 0000HLJMP MAINORG 0100H;P2连接段选,P1节位选MAIN: MOV P1,#00H ;所有的数码管都显示MOV R2,#00H ;从0开始显示LOOP: MOV A,R2 ;为下面的基址加变址寄存器寻址方式做准备MOV DPTR,#TAB1 ;把数组的首地址赋给DPTRMOVC A,@A+DPTR ;取数组中的数字MOV P2,A ;把取得的值送给P0口显示ACALL DELAY ;延时一会INC R2 ;为取下一个数加一CJNE R2,#10,LOOP ;只要数小于10就继续循环显示MOV R2,#00H ;如果加到10后重新从0开始LJMP LOOP ;进入循环函数;****************************************** TAB1: DB 0C0H,0F9H,0A4H,0B0H,99H; 数组DB 92H,82H,0F8H,80H,90HRET;****************************************** DELAY: MOV R3,#3 ;延时函数DE1: MOV R4,#0FFHDE2: MOV R5,#0FFHDJNZ R5,$DJNZ R4,DE2DJNZ R3,DE1RET;*************************************************END(3)编写程序学习数码管的动态显示,让8只数码管从从左往右显示1、2、3……8。

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

6.2技术准备
6.2.1 数码管静态显示理论知识
1、显示器及其接口 单片机系统中常用的显示器有: 发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7 段、米字型等)和点阵显示(5×8、8×8点阵等)。 2、数码管实物如图所示
4、数码管驱动电路 要驱动1个四位数码管常见的有以下几种数码管驱动电路: 1.使用12个IO口
2. P2.4-P2.7驱动位选,IO口直接驱动位选
3. P0驱动段选,IO口直接驱动段选
6.2技术准备
6.2.4 LED显示二种接法
1、使用LED显示器时,要注意区分这两种不同的接法。为了 显示数字或字符,必须对数字或字符进行编码。七段数码 管加上一个小数点,共计8段。因此为LED显示器提供的编 码正好是一个字节。BST实验板用共阴LED显示器。如图所示。
图6- 1数码管实物
6.2技术准备
6.2.2 数码管可显示内容和特点
可显示内容:数字、小数点和部分英文字符、符号。 特点:1、自发光、亮度高,特别适合环境亮度低的场合使用。2、牢 固,不怕冲击。数码管是一种半导体发光器件,其基本单元是发光二 极管。
6.2.3 LED显示器(数码管)的结构与原理
1、数码管的结构 LED显示器(数码管)系发光器件的一种。常用的LED发光器件有两 类:数码管和点阵。
6.3 项目实施
6.3 项目实施
6.3.1 数码管静态显示实战环节 程序一 /************************************
*实验名:数码管静态显示
*实验效果:第一个数码管显示字符“b” ************************************/
2、数码管显示原理 LED数码管的a~g七个发光二极管。加正电压的发光,加零电压的不 能发光,不同亮暗的组合就能形成不同的字型,这种组合称为字型 码。共阳极和共阴极的字型码是不同的,下面进行分析。 3、静态显示驱动
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由 一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器 译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占 用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来 驱动,要知道一个89S52单片机可用的I/O端口才32个呢:),实际应 用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根 据各管的亮暗组合成字符。根据内部发光二极管的接线形式可分为共 阴极和共阳极两种。
使用时,共阴极数码管公共端接地,共阳极数码管公共端接电源。每 段发光二极管需5~10mA的驱动电流才能正常发光,一般需加限流电 阻控制电流的大小。
6.2技术准备
图6- 3LED显示接法
6.2技术准备
2、LED数码管显示分析
LED数码管的结构:①共阳与共阴
图6- 4 LED数码管的结构 单片机系统扩展LED数码管时多用共阳LED: 共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很 小;而共阴数码管段笔画是用高电平(“1”)点亮的,要求驱动功率较 大。 通常每个段笔画要串一个数百欧姆的降压电阻。
项目 6 数码管静态显示
项目目标 通过在 4 位数码管静态显握的知识
1 .数码管的基本类型
2 .数码管静态扫描 需要掌握的技能
懂得数码管程序编写, PROTEUS 常用外设和总线的绘 制
6.1项目分析
单片机也需要人机交互,掌握常用的输入和输出设备非常必 要。本章选取了最常用的输出模块数码管来演示其典型程序的编制 方法。
相关文档
最新文档