51单片机项目教程项目 6 数码管静态显示
关于单片机的一些小实验_06 一位数码管静态显示

#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页

单片机数码管静态显示实验程序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篇)

第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数码管静态与动态显示的设计浅析

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单片机数码管显示实验实验内容: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.熟练掌握单片机定时器的原理和应用方法。
2.了解数码管的原理,掌握数码管的真值表的计算方法。
二、实验内容通过对单片机编程来实现数码管静态显示。
三、实验知识点3.1定时器的初步认识时钟周期:时钟周期T是时序中最小的时间单位具体计算的方法就是1/时钟源,我们KST-51单片机开发板上用的晶振是11.0592M,那么对于我们这个单片机系统来说,时钟周期=1/11059200秒。
机器周期:我们的单片机完成一个操作的最短时间。
机器周期主要针对汇编语言而言,在汇编语言下程序的每一条语句执行所使用的时间都是机器周期的整数倍,而且语句占用的时间是可以计算出来的,而C语言一条语句的时间是不可计算的。
51单片机系列,在其标准架构下一个机器周期是12个时钟周期,也就是12/11059200秒。
定时器和计数器。
定时器和计数器是单片机内部的同一个模块,通过配置SFR(特殊功能寄存器)可以实现两种不同的功能。
顾名思义,定时器就是用来进行定时的。
定时器内部有一个寄存器,我们让它开始计数后,这个寄存器的值每经过一个机器周期就会加1一次,因此,我们可以把机器周期理解为定时器的计数周期。
我们的秒表,每经过一秒,数字加1,而这个定时器就是每过一个机器周期的时间,也就是12/11059200秒,数字加1。
3.2 定时器的寄存器描述标准的51里边只有定时器0和定时器1这两个定时器,现在很多单片机也有多个定时器的,在这里我们先讲定时器0和1。
那么我前边提到过,对于单片机的每一个功能模块,都是由他的SFR,也就是特殊功能寄存器来控制。
而和定时器有关的特殊功能寄存器,有TCON和TMOD,定时值存储寄存器。
a)定时值存储寄存器表4-1中的寄存器,是存储计数器的计数值的,TH0/TL0用于T0, TH1/TL1用于T1。
表4-1 定时值存储寄存器表4-2 TCON--定时器/计数器控制寄存器的位分配(地址:88H)表4-3 TCON--定时器/计数器控制寄存器的位描述表4-2中有TF1、TR1、TF0、TR0这4位需要我们理解清楚。
单片机C语言程序(数码管动态静态显示)

0123动态显示:#inclu de<re g52.h>#de fineuchar unsi gnedchar#defi ne ui nt un signe d intuint num,numdu,numw e;uc har c ode t abled u[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucha r cod e tab lewe[]={0xfe,0xfd,0xfb,0xf7};sbit dula=P2^6;sbi t wel a=P2^7;vo id di splay();v oid m ain(){E A=1;ET1=1;T MOD=0x10;TH1=(65536-500)/256;TH0=(65536-500)%256;TR1=1;nu m=0;whil e(1){if(nu m==20){n um=0;i f(num du==4)numdu=0;if(numwe==4)nu mwe=0;displ ay();n umdu++;numw e++;}}}v oid t ime1() int errup t 3{TH1=(65536-500)/256;T H0=(65536-500)%256;num++;}voiddispl ay(){P0=0xff;we la=1;wel a=0;P0=t abled u[num du];dula=1;dula=0;P0=tab lewe[numwe];w ela=1;we la=0;}0123静态显示:#inclu de<re g52.h>#de fineuchar unsi gnedchar#defi ne ui nt un signe d intuint num,numdu,numw e;uc har c ode t abled u[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucha r cod e tab lewe[]={0xfe,0xfd,0xfb,0xf7};sbit dula=P2^6;sbi t wel a=P2^7;vo id de lay(u char);voi d mai n(){EA=1;E T1=1;TMO D=0x10;T H1=(65536-50000)/256;TH0=(65536-50000)%256;TR1=1;while(1){P0=0xf f;wela=1;wela=0;P0=t abled u[0];du la=1;du la=0;P0=tabl ewe[0];wela=1;wela=0;P0=0x ff;wela=1; wel a=0;P0=table du[1];d ula=1;d ula=0;P0=tab lewe[1];wela=1;wela=0;P0=0xff;wel a=1;we la=0;P0=tabl edu[2];dula=1;dula=0;P0=ta blewe[2];wel a=1;wel a=0;P0=0xff;we la=1;w ela=0;P0=tab ledu[3];dula=1;dula=0;P0=t ablew e[3];we la=1;we la=0;} }0-999循环跳变#in clude<reg52.h>#defi ne uc har u nsign ed ch ar#d efine uint unsi gnedintu int a,b,co unt,n um,nu mdu,n umwe; ucha r cod e tab ledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};u charcodetable we[]={0xf e,0xf d,0xf b,0xf7};s bit d ula=P2^6;sbitwela=P2^7;void dela y(uch ar);voiddispl ay(uc har,u char,uchar); vo id ma in(){EA=1;ET1=1;TM OD=0x10;TH1=(65536-50000)/256;T H0=(65536-50000)%256;TR1=1;coun t=0;whil e(1){if(nu m==20){nu m=0;if(count==1000)count=0;c ount++;}d ispla y(cou nt/100,cou nt%100/10,count%10);}}void time1() i nterr upt 3{T H1=(65536-50000)/256;TH0=(65536-50000)%256;num++;}void disp lay(u charbai,u charshi,u charge){P0=0xff;wel a=1;wela=0;P0=ta bledu[bai];du la=1;dul a=0;P0=t ablew e[1];wel a=1;wela=0;delay(1);P0=0xff;wela=1;wela=0;P0=tab ledu[shi];dul a=1;dula=0;P0=ta blewe[2];wela=1;wela=0;d elay(1); P0=0xff;wela=1;wela=0;P0=tab ledu[ge];dula=1;dula=0;P0=tab lewe[3];wela=1;w ela=0;de lay(1);}voiddelay(ucha r x){uc har a,b;for(a=x;a>0;a--)f or(b=200;b>0;b--); }。
数码管静态与动态显示课件

按颜色分类
按位数分类
优点
结构简单、体积小、重量轻、价格便宜、维护方便。
缺点
只能显示数字和字母,不能显示图像和视频,且亮度较低。
02
CHAPTER
数码管静态显示
七段数码管
由七个LED灯组成的,可以显示0-9的数字和部分字母。
显示原理
通过控制LED灯的亮灭来显示不同的字符。
8位数码管
05
CHAPTER
数码管显示常见问题及解决方案
数码管在显示时出现显示不全或者闪烁的问题,主要是由于硬件电路设计不合理或者软件编程有误所致。
这类问题通常是由于电源电压不稳定、驱动电路故障、显示数据不正确或者刷新频率过低等原因引起的。解决这类问题需要检查硬件电路设计和电源电压是否正常,同时检查软件程序中是否存在错误。
缺点
04
CHAPTER
数码管显示实例
数码管结构
4位7段数码管由7个LED段和4个位组成,通过控制各段的亮灭状态可以显示不同的数字。
电路设计
为了驱动4位7段数码管,需要设计相应的电路,包括电源、译码器、驱动器等部分。译码器的作用是将输入的BCD(二进制编码的十进制)信号转换成相应的LED段信号,驱动器则负责驱动各LED段。
注意事项
VS
除了4位数码管外,还有8位数码管,可以显示0~9999等更大的数字。在电路设计和编程实现上,8位数码管与4位数码管类似,只是需要更多的LED段和位。
点阵式数码管
点阵式数码管由多个LED点组成,可以显示各种文字和图案。在电路设计和编程实现上,点阵式数码管与7段数码管类似,但需要更多的LED点和驱动器。
总结词
详细描述
总结词
基于单片机的电子时钟6位LED数码管显示

数码管显示电子时钟设计一.功能要求1.数字电子时钟最主要是LED数码管显示功能,以24小时为一个周期,显示时间时、分、秒。
2.具有校时功能,可以对时、进行单独校对,使其校正到标准时间。
二.方案论证1.数字时钟方案数字时钟是本设计的最主要的部分。
根据需要,可利用两种方案实现。
方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
方案二:本方案完全用软件实现数字时钟。
原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。
该方案具有硬件电路简单的特点。
但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。
而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。
基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。
2.数码管显示方案方案一:静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8 位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
方案二:动态显示。
所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
51单片机-LESSON3_数码管静态显示及定时器和中断应用

低 级
RI TI
ES 1 ≥1
PS 1 0
中断入口
SCON
2、(P3.3)可由IT1(TCON.2)选择其为低电平 有效还是下降沿有效。当CPU检测到P3.3引脚上 出现有效的中断信号时,中断标志IE1(TCON.3) 置1,向CPU申请中断。
TCON
IT0 1 0 IE0 1 ET0 1 TF0 IT1 1 0 IE1 1 ET1 1 TF1 EX0 1
IE
EA 1
IP
PX0 1 0 PT0 1 0 1
硬件查询
自 然 优 先 级 中断源 高 级
INT0 T0 INT1 T1 RX TX
中断入口
EX1 1
PX1 1 0 PT1 1 0 0 自 然 优 先 级 中断源
低 级
RI TI
ES 1 ≥1
PS 1 0
中断入口
SCON
5、RI(SCON.0)或TI(SCON.1),串行口 中断请求标志。当串行口接收完一帧串行数 据时置位RI或当串行口发送完一帧串行数据 时置位TI,向CPU申请中断。
80C51中断系统的结构
80C51的中断系统有5个中断源(8052有 6 个) ,2个优先级,可实现二级中断嵌套 。
TCON
IT0 1 0 IE0 1 ET0 1 TF0 IT1 1 0 IE1 1 ET1 1 TF1 0 RI TI ES 1 ≥1 PS 1 0 0 PT1 1 0 自 然 优 先 级 中断源 低 级 0 EX1 1 PX1 1 EX0 1
的编码已列在下表。
共阴数码管码表
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
0 1 2 3 4 5 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 6 7 8 9 A B 0x39 , 0x5e , 0x79 , 0x71 , 0x00 C D E F 无显示
数码管的静态显示资料PPT课件

实现定时功能,比较方便的办法是利用单片机内部的定时/计数器。也可以采用 下面三种方法:
▪软件定时:软件定时不占用硬件资源,但占用了 CPU时间,降低了CPU的利用率。 ▪采用时基电路定时:例如采用555电路,外接必要 的元器件(电阻和电容),即可构成硬件定时电路。 但在硬件连接好以后,定时值与定时范围不能由软 件进行控制和修改,即不可编程。 ▪采用可编程芯片定时:这种定时芯片的定时值及定 时范围很容易用软件来确定和修改,此种芯片定时 功能强,使用灵活。在单片机的定时/计数器不够用 时,可以考虑进行扩展。
一、元器件的准备
准备好之前章节所做 的最小系统,除此之外再准 备8个阻值为510 Ω额定功 率为1/4 W的电阻、一个0.5 寸共阳极数码管、一个 按键和一个阻值为4.7
kΩ的上拉电阻。
第17页/共50页
三、程序设计
5
4
3
2
1
显示对应键值 指示逻辑电平 模拟流水 显示变化的数字 显示特定的数字或字符
(3) 指令周期
指令周期是执行一条指令所需要的时间,一般由若干个机器 周期组成。指令不同,所需的机器周期数也不同。对于一些简单 的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即 译码执行,不再需要其他的机器周期。
第20页/共50页
时钟周期、机器周期和指令周期之间的关系
第21页/共50页
80C51的定时/计数器
第22页/共50页
一、定时/计数器的结构 定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
MCS-51 系列单片机定时/计数器逻辑结构图
第23页/共50页
加1计数器输入的计数脉冲有两个来源,一个是由 系统的时钟振荡器输出脉冲经12分频后送来(12个 振荡周期计数器加1);一个是T0或T1引脚输入的 外部脉冲源。每来一个脉冲计数器加1,当加到计 数器为全1时,再输入一个脉冲就使计数器回零, 且计数器的溢出使TCON中TF0或TF1置1,向CPU 发出中断请求(定时/计数器中断允许时)。如果定 时/计数器工作于定时模式,则表示定时时间已到; 如果工作于计数模式,则表示计数值已满。
单片机数码管静态显示及定时器和中断应用

例 利用定时/计数器T1的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz。 解:1、计算计数初值X: 由于晶振为12 MHz,所以机器周期Tcy为1 s。 所以: N=t/ Tcy =10000/1=10000 X=65536-10000=55536=D8F0H 即应将D8H送入TH0中,F0H送入TL0中 2、求T1的方式控制字TMOD: M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。 :定时/计数模式选择位。 =0为定时模式; =1为计数模式。 M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。
TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。
TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。
RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。
使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。TX实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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项目分析
单片机也需要人机交互,掌握常用的输入和输出设备非常必 要。本章选取了最常用的输出模块数码管来演示其典型程序的编制 方法。