LED数码管显示实验
led数码管实验报告
led数码管实验报告
LED数码管实验报告
实验目的:通过LED数码管实验,掌握数字电路的基本原理和数字显示技术。
实验原理:LED数码管是一种数字显示装置,由多个LED灯组成,可以显示0-
9的数字。
在数字电路中,LED数码管通常用于显示数字信号,通过控制LED
的亮灭来显示不同的数字。
实验材料:LED数码管、数字电路实验板、数字信号发生器、数字电路元件等。
实验步骤:
1. 将LED数码管连接到数字电路实验板上,并接入电源。
2. 使用数字信号发生器产生不同的数字信号,将信号输入到LED数码管中。
3. 观察LED数码管的显示效果,记录不同数字信号对应的LED亮灭状态。
4. 分析LED数码管的工作原理,探讨数字信号与LED数码管的对应关系。
实验结果:通过实验观察和记录,得出了不同数字信号与LED数码管显示的对
应关系,掌握了LED数码管的工作原理和数字信号的显示技术。
实验结论:LED数码管是一种常用的数字显示装置,广泛应用于计时器、计数器、电子钟等领域。
通过本次实验,我们深入了解了LED数码管的工作原理,
掌握了数字信号与LED数码管的对应关系,为今后的数字电路设计和应用打下
了基础。
总结:LED数码管实验是数字电路实验的重要内容,通过实验学习,可以加深
对数字电路原理的理解,提高数字显示技术的应用能力。
希望同学们能够认真
学习实验内容,掌握实验技能,为将来的工程实践奠定坚实基础。
LED数码管显示实验
《微机实验》报告实验名称 LED数码管显示实验指导教师专业班级姓名学号序号联系方式一、任务要求基本要求:利用末位数码管循环显示数字0-9,显示切换频率为1Hz。
提高要求:在4位数码管显示器上依次显示当天日期和时间,显示格式如下:yyyy (年份)mm.dd(月份.日)hh.mm(小时.分钟)相关输出接口和控制接口如下:二、设计思路1.基本部分设计思路:首先依次计算得出共阴极LED数码管对应0~9的段码数据,依次分别为:FCH,60H,DAH,F2H,66H,B6H,BEH,E0H,FEH,F6H;并将上述段码以字符的形式分别存于存储区域的50H~59H。
以备取用。
然后以1HZ的频率分别将上述段码分别依次循环输出至P1端口,每次输出时均使P0.7和P0.6均为低电平,即选择末位数码管显示相应数据:使用计数器T0,并选择定时方式1,即16位定时器,由初始化代码可知指令周期为16us,计算可得计数器初值为0BDCH时(即TH0为0BH,TL0为DCH),计时时间即为1s。
每次计时1s时,使用查表指令MOVC A,@A+DPTR从段码存储区域依次取出段码数据,并输出给P1端口,同时选择末位数码管进行显示。
每次查表输出持续1s后,对存储地址R0进行加一操作,然后循环查表取下一个相应段码数据。
直到R0=59H时,最后一个段码已取出并输出,重新赋值R0←50H,然后从第一个段码开始查表取出数据,再依次查表取出段码数据并选择末位数码管输出,如此无限循环下去。
2.提高部分设计思路:首先依次计算得出共阴极LED数码管对应“2012”“11.07”“23.45”的段码数据,且由于每次输出时从末位开始刷新,需要按“2→1→0→2”“7→0→1.→1”“5→4→3.→2”的顺序输出给P1端口,其段码数据分别为:DAH,60H,FCH,DAH,E0H,FCH,61H,60H,B6H,66H,F3H,DAH;并将上述段码以字符的形式分别存于存储区域的50H~5BH。
实验六 七段LED数码管显示实验
实验六七段LED数码管显示实验
一、实验目的
学习LED显示器的使用方法。
二、实验设备
MUT—Ⅲ型实验箱、8086CPU模块。
三、实验内容
输出LED的位选码和段选码,在七段LED显示器上循环显示8字。
四、实验原理介绍
显示器的段选码由8255A的PA口提供,显示器的位扫描信号由8255A的PB 口提供给共阴极LED数码管的公共端。
五、实验步骤
1、实验连线
将LED数码管右侧的短路快取下。
8255A的PA0~PA7分别连LED-A~LED-DP,8255A的PB0~PB5分
别连接LED1~LED6,8255CS连CS0。
2、编写调试并运行程序,在LED显示器上显示8字并循环,调
整延时程序,观察运行结果。
六、实验提示
1、各端口地址:
PA口:04A0H
PB口:04A2H
PC口:04A4H
控制口:04A6H
2、LED显示的方法为动态显示。
七、实验报告要求
1、画出程序框图。
2、编写并整理经过运行,证明是正确的源程序,并加以注释。
实验四 LED数码管显示实验报告
实验名称 LED数码管显示实验指导教师曹丹华专业班级光电1202班姓名陈敬人学号联系电话一、任务要求实验目的:理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。
实验内容:1.基础部分:利用C8051F310单片机控制数码管显示器。
利用末位数码管循环显示数字0-F,显示切换频率为1Hz。
2.提高部分:在数码管上显示0→199计数,计数间隔为0.5秒。
二、设计思路1.基础部分C8051F310单片机片上晶振为24.5MHz,采用8分频后为3.0625MHz ,输入时钟信号为48个机器周期,T1采用定时器工作方式1,单次定时最长可达1.027s,可以实现1s定时要求。
定时采用软件查询工作方式,利用JNB TF0, HERE实现。
置P0.6和P0.7端口为0,位选信号选定末位数码管。
通过MOVC A, @A+DPTR指令,利用顺序查表法取出显示段码数据。
寄存器R0自增1,并赋给A以取出下一个显示段码数据。
为减短代码长度,利用CJNE指令实现循环结构。
当寄存器R0增至0FH后,跳转至开头,重新开始下一轮显示。
2.提高部分定时方式及查表方式同基础部分,由于要实现三个数码管同时显示,因此采用动态扫描显示法。
三、资源分配1.基础部分P0.6: 位选信号端口P0.7:位选信号端口P1:输出段码数据R0:存放显示数据DPTR:指向段码数据表首 2.提高部分P0.6:位选信号端口P0.7:位选信号端口R0:存放个位显示数据 R5:存放十位显示数据 R6:存放百位显示数据 P1:输出段码数据DPTR: 指向段码数据表首四、流程图1.基础部分2.提高部分五、源代码(含文件头说明、语句行注释)1.基础部分;******************基础部分源代码***************************;Filename: test.asm;Decription: 末位数码管循环显示数字0-F,显示切换频率为1Hz。
led数码管显示控制实验报告
led数码管显示控制实验报告篇一:单片机实验报告——LED数码管显示实验《微机实验》报告LED数码管显示实验指导教师:专业班级:姓名:学号:联系方式:一、任务要求实验目的:理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。
实验内容:利用C8051F310单片机控制数码管显示器基本要求:利用末位数码管循环显示数字0-9,显示切换频率为1Hz。
提高要求:在4位数码管显示器上依次显示当天时期和时间,显示格式如下:yyyy(月份.日)(小时.分钟)思考题:数码管采用动态驱动方式时刷新频率应如何选择?为什么?二、设计思路C8051F310单片机片上晶振为,采用8分频后为,输入时钟信号采用48个机器周期。
0到9对应的断码为:FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H 基础部分:由于只需要用末位数码管显示,不需要改变位码,所以只需要采用LED的静态显示。
采用查表的方法,通过循环结构,每次循环查找数据表下一地址,循环十次后重新开始循环。
每次循环延时1s,采用定时器0定时方式1。
提高部分:四个数码管都要显示,所以采用LED的动态显示。
由于数码管的位选由、控制,P0端口的其他引脚都没用到,所以对P0端口初始化赋00H,每次循环加40H、选中下一位,四次后十六进制溢出,P0端口变又为00H回到第一个数码管。
每位数码管显示一个段码后都延时1ms(否则数码管太亮,刺眼)采用定时器0定时方式1,依然采用查表法改变段码值。
通过循环:DJNZ R5,BACKMOVR5,#250 DJNZ R4,BACK MOVR4,#8来控制每种模式的切换时间,我采用2s切换一次(8*250*1ms=2s)。
切换模式,可以采用改变查表法的偏移量来实现,没切换一次模式,偏移量加04H,三次后回到初始偏移量,来实现三种模式的循环显示。
三、资源分配基础部分:、:控制数码管的位选P1:控制数码管段码的显示R0:控制段选提高部分:、:控制数码管的位选P1:控制数码管段码的显示R0:控制位选R1:控制段选R3:用于改变偏移量来切换模式R4、R5:控制循环次数,控制模式切换时间四、流程图基础部分:提高部分篇二:实验八数码管LED实验报告苏州大学实验报告院、系年级专业姓名学号课程名称成绩指导教师同组实验者实验日期实验名称:数码管LED实验一.实验目的理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管LG5641AH与MCU 的接线图。
led数码管显示控制实验报告
led数码管显示控制实验报告实验名称:LED数码管显示控制实验实验目的:1.了解LED数码管及其工作原理。
2.学习如何控制LED数码管显示数字。
3.加强对单片机控制IO口的编程能力。
实验器材:1.STC89C52RC单片机开发板2.数码管(共阳、共阴)3.杜邦线实验原理:LED数码管是一种数字显示组件,在工业控制、计算机等领域都有广泛应用。
LED数码管在显示数字时,通过LED管来显示数字,根据不同的管脚状态,控制LED管的导通和隔离,间隔时间来控制亮和灭的时间,从而显示出不同的数字。
在STC89C52RC单片机上,通过控制IO的高低电平来控制数码管的显示。
当要显示的数字为0~9时,需要将相应的IO输出低电平,同时将其他IO输出高电平,从而实现数字的显示。
实验步骤:1.将共阳数码管的正极连接到P0口(注意极性),并将共阴数码管的负极连接到P0口(注意极性)。
2.将STC89C52RC单片机开发板连接到电源,将USB转串口线连接到电脑。
3.打开Keil uVision5软件,创建一个新工程,配置完工程后编写控制代码(具体代码见附录)。
4.编写完成后,将代码下载到单片机中,开始实验。
实验结果:成功实现了数字0到9的显示。
通过实验,我们了解了LED数码管的工作原理,学会了控制单片机IO口进行数字的显示,加强了对单片机编程的掌握能力。
附录:代码如下:```#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit dula = P2^6;sbit wela = P2^7;uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=114;y>0;y--);}void Display(){uchar i;for(i=0;i<10;i++){P0 = table[i]; dula = 0;dula = 1;delay(500);}}。
电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告
电子设计自动化(EDA)—数字时钟LED数码管显示二、实验内容和实验目的1. 6个数码管动态扫描显示驱动2. 按键模式选择(时\分\秒)与闹钟(时\分)调整控制,3. 用硬件描述语言(或混合原理图)设计时、分、秒计数器模块、闹钟模块、按键控制状态机模块、动态扫描显示驱动模块、顶层模块。
要求使用实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒;要求模式按键和调整按键信号都取自经过防抖处理后的按键跳线插孔。
实验目的: 1)学会看硬件原理图, 2)掌握FPGA硬件开发的基本技能3)培养EDA综合分析、综合设计的能力三、实验步骤、实现方法(或设计思想)及实验结果主要设备: 1)PC机, 2)硬件实验箱, 3)Quartus II软件开发平台。
1.打开Quartus II , 连接实验箱上的相关硬件资源, 如下图1所示。
2.建立新文件, 选择文本类型或原理图类型。
3. 编写程序。
4.编译5. 仿真, 加载程序到芯片, 观察硬件输出结果(数码管显示)6.结果正确则完成。
若结果不正确, 则修改程序, 再编译, 直到正确。
模24计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count24 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count24;ARCHITECTURE arc OF count24 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,en)BEGINhh<=a;hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0010" AND b="0011") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;IF(a="0010" AND b="0010") THENcout<='1';ELSE cout<='0';END IF;END IF;END IF;END PROCESS;END arc;模60计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count60 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count60;ARCHITECTURE arc OF count60 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL sout:STD_LOGIC;BEGINPROCESS(clk)BEGINhh<=a; hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0101" AND b="1001") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;END IF;END IF;END PROCESS;sout<='1' WHEN a="0101" AND b="1001" ELSE '0';cout<=sout AND en;END arc;4-7显示译码模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY segment4to7 ISPORT(s:IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g:OUT STD_LOGIC);END segment4to7;ARCHITECTURE arc OF segment4to7 IS SIGNAL y:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINa<= y(6);b<= y(5);c<= y(4);d<= y(3);e<= y(2); f<= y(1);g<= y(0);PROCESS(s)BEGINCASE s ISWHEN "0000"=>y<="1111110"; WHEN "0001"=>y<="0110000"; WHEN "0010"=>y<="1101101"; WHEN "0011"=>y<="1111001"; WHEN "0100"=>y<="0110011"; WHEN "0101"=>y<="1011011"; WHEN "0110"=>y<="1011111"; WHEN "0111"=>y<="1110000"; WHEN "1000"=>y<="1111111"; WHEN "1001"=>y<="1111011"; WHEN OTHERS=>y<="0000000"; END CASE;END PROCESS;END arc;带闹钟控制模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mode_adjust_with_alarm ISPORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END mode_adjust_with_alarm;ARCHITECTURE arc OF mode_adjust_with_alarm ISTYPE mystate IS (s0,s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS (c_state)BEGINCASE c_state ISWHEN s0=> next_state <= s1; clkh<=clk1hz; clkm<=clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="000";WHEN s1=> next_state <= s2; clkh<=adjust; clkm<= '0'; clks<='0';enh<='1'; enm<='0';enha<='0'; clkh_a<= '0';clkm_a<= '0'; mode_ss <="001";WHEN s2=> next_state <= s3; clkh<= '0'; clkm<=adjust; clks <= '0';enh<='0';enm<='1';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="010";WHEN s3=> next_state <= s4; clkh<= '0'; clkm<= '0'; clks<=adjust;enh<='0'; enm<='0';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="011";WHEN s4=> next_state <= s5; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0';enm<='0';enha<='1'; clkh_a<=adjust; clkm_a<= '0'; mode_ss <="100";WHEN s5=> next_state <= s0; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<=adjust; mode_ss <="101";END CASE;END PROCESS;PROCESS (mode)BEGINIF (mode'EVENT AND mode='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;扫描模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan ISPORT(clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END scan;ARCHITECTURE arc OF scan ISTYPE mystate IS (s0, s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS ( c_state )BEGINCASE c_state ISWHEN s0=> next_state <=s1; ss<="010";WHEN s1=> next_state <=s2; ss<="011";WHEN s2=> next_state <=s3; ss<="100";WHEN s3=> next_state <=s4; ss<="101";WHEN s4=> next_state <=s5; ss<="110";WHEN s5=> next_state <=s0; ss<="111";END CASE;END PROCESS;PROCESS (clk256hz)BEGINIF (clk256hz'EVENT AND clk256hz='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;复用模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux ISPORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END mux;ARCHITECTURE arc OF mux ISSIGNAL a,hhtmp,hltmp,mhtmp,mltmp,shtmp,sltmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(mode_ss)BEGINCASE mode_ss ISWHEN "000"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "001"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "010"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "011"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "100"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN "101"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN OTHERS=>hhtmp<="0000";hltmp<="0000";mhtmp<="0000";mltmp<="0000";shtmp<="0000";sltmp<="0000"; END CASE;END PROCESS;PROCESS(ss)BEGINCASE ss ISWHEN "010"=> a <=hhtmp;WHEN "011"=> a <=hltmp;WHEN "100"=> a <=mhtmp;WHEN "101"=> a <=mltmp;WHEN "110"=> a <=shtmp;WHEN "111"=> a <=sltmp;WHEN OTHERS => a <="0000";END CASE;y<=a;END PROCESS;alarm<='1' WHEN ((hh=hha)AND(hl=hla)AND(mh=mha)AND(ml=mla)) ELSE '0';END arc;闪烁模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY blink_control ISPORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END blink_control;ARCHITECTURE arc OF blink_control ISBEGINPROCESS (ss,mode_ss)BEGINIF(ss="010" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="110" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="111" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="010" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="101") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="101") THEN blink_en<='1';ELSE blink_en<='0';END IF;END PROCESS;END arc;Top文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY design3 ISPORT (mode,adjust,clk1hz,clk2hz,clk256hz,clk1khz:IN STD_LOGIC;alarm,a,b,c,d,e,f,g:OUT STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END design3;ARCHITECTURE arc OF design3 ISCOMPONENT mode_adjust_with_alarm PORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT scan PORT (clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT segment4to7 PORT (s: IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g: OUT STD_LOGIC);END COMPONENT;COMPONENT mux PORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END COMPONENT;COMPONENT blink_control PORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END COMPONENT;COMPONENT count24 PORT (clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT count60 PORT (clk ,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNALclkh,enh,clkm,enm,clks,clkh_a,clkm_a,coutm,couts,coutm_en,couts_en,cout,vcc,coutma_en,coutma,alarm1,bli nk_en,blink_tmp,enha: STD_LOGIC;SIGNAL mode_ss,ss1:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,y,i:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINvcc<='1';coutm_en <= enh OR coutm;couts_en <= enm OR couts;coutma_en<= enha OR coutma;blink_tmp<=blink_en and clk2hz;i(3)<=y(3) OR blink_tmp;i(2)<=y(2) OR blink_tmp;i(1)<=y(1) OR blink_tmp;i(0)<=y(0) OR blink_tmp;ss<=ss1;alarm<=alarm1 AND clk1khz;u1:mode_adjust_with_alarmPORT MAP( adjust,mode,clk1hz,clkh,enh,clkm,enm,clks,enha,clkh_a,clkm_a,mode_ss);u2:count24 PORT MAP(clkh,coutm_en,cout,hh,hl);u3:count60 PORT MAP(clkm,couts_en,coutm,mh,ml);u4:count60 PORT MAP(clks,vcc,couts,sh,sl);u5:count24 PORT MAP(clkh_a,coutma_en,cout,hha,hla);u6:count60 PORT MAP(clkm_a,vcc,coutma,mha,mla);u7:mux PORT MAP(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,ss1,mode_ss,y,alarm1);u8:scan PORT MAP(clk256hz,ss1);u9:blink_control PORT MAP(ss1,mode_ss,blink_en);u10:segment4to7 PORT MAP(i,a,b,c,d,e,f,g);END arc;实验结果:数字钟包括正常的时分秒计时, 实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒。
实验四 数码管显示控制
实验四数码管显示控制一、实验目的1、熟悉Keil uVision2软件的使用;2、掌握LED数码管显示接口技术;3、理解单片机定时器、中断技术。
二、实验设备及仪器Keil μVision2软件;单片机开发板;PC机一台三、实验原理及内容1、开发板上使用的LED 数码管是四位八段共阴数码管(将公共端COM接地GND),其内部结构原理图,如图4.1所示。
图4.1共阴四位八段LED数码管的原理图图4.1表明共阴四位八段数码管的“位选端”低电平有效,“段选端”高电平有效,即当数码管的位为低电平,且数码管的段为高电平时,相应的段才会被点亮。
实验开发板中LED数码管模块的电路原理图,如图4.2所示。
SP1a~hP0.4~P0.7SP2P0.0~P0.3图4.2 LED数码管模块电路原理图图中,当P1.0“段控制”有效时,P0.0~P0.7分别对应到数码管的a~h段。
当P1.1“位控制”有效时,P0.0~P0.7分别对应到DIG1~DIG8。
训练内容一:轮流点亮数码管来检测数码管是否正常。
参考程序:ORG 00HAJMP MAINMAIN:SETB P1.2;LED流水灯模块锁存器的控制位MOV P0,#0FFH;关闭LED灯CLR P1.2SETB P1.3 ;点阵模块的行控制锁存器MOV P0,#0 ;关闭点阵行CLR P1.3MOV A,#11111110B;数码管“位选信号”初值,低电平有效LOOP:SETB P1.1;数码管位控制锁存器有效MOV P0,ACLR P1.1RL A ;形成新的“位选信号”,为选择下一位数码管做准备SETB P1.0;数码管段控制锁存器有效MOV P0,#0FFH ;数码管的所有段点亮,显示“8”CLR P1.0CALL DELAYSJMP LOOPDELAY:MOV R5,#0;延时子程序D1: MOV R6,#0D2:NOPDJNZ R6,D2DJNZ R5,D1RETEND训练内容二:静态显示,0~9计数。
LED数码管显示实验
一、实验目的1、熟悉LED数码管的显示原理。
2、掌握驱动数码管工作的汇编语言程序的基本方法。
二、实验内容编写程序,使实验箱上的6个数码管依次闪动显示一些字符。
例如滚动显示“123456”及“good”等。
三、数码管的字形/字位七段数码管的显示原理如图2-1所示,用一个字节的信息对一个数码管的字形进行编码,“0”亮、“1”灭。
字形码中的二进制位由低到高对应数码管的A到H。
例如“0”的字形码是11000000 B。
图2-1 数码管原理图字位码用一个字节表示,如表2-1所示。
G5到G0对应实验箱上的数码管从左到右。
表2-1 字位码表实验箱上LED数码管的端口地址是固定不变的。
字形端口的地址为0FFDCH,字位端口的地址为0FFDDH。
四、程序流程程序流程图参考图2-2。
图2-2 流程图五、实验步骤编写程序,运行程序,观察数码管显示情况。
六、实验报告要求报告内容:实验名称、姓名、班级、学号、实验目的、实验步骤、完整的源程序代码、问题、收获及总结。
提示:本实验在实验箱系统上完成,因此编程方式与PC机环境下(实验一)的编程有一些区别。
例如不能使用功能调用和中断调用,程序不能自动停止等。
程序的流程可以像参考的那样无限次循环,也可以设计成有限次循环后结束。
程序:STACKS SEGMENTORG 2000HDW 256 DUP(?)TOP LABEL WORDSTACKS ENDSCODE1 SEGMENTASSUME CS:CODE1,DS:DATAS,SS:STACKSORG 1000HSTART:MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AXMOV CX,3L6:PUSH CXL5:MOV AL,20HPUSH AXMOV AL,11111001B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY1ROR AL,1PUSH AXMOV AL,10100100B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY1ROR AL,1PUSH AXMOV AL,10110000B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHCALL DELAY1ROR AL,1PUSH AXMOV AL,10011001B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY1ROR AL,1PUSH AXMOV AL,10010010B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY1ROR AL,1PUSH AXMOV AL,10000010B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY1POP CXMOV CX,3L2:PUSH CXMOV CX,50L1:PUSH CXMOV AL,20HPUSH AXMOV AL,10001001B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY2ROR AL,1PUSH AXMOV AL,10000110B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY2ROR AL,1PUSH AXMOV AL,11000111B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY2ROR AL,1PUSH AXMOV AL,11000111B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY2ROR AL,1PUSH AXMOV AL,11000000B MOV DX,0FFDCHOUT DX,ALPOP AXMOV DX,0FFDDHOUT DX,ALCALL DELAY2POP CXLOOP L1MOV AL,0MOV DX,0FFDDHOUT DX,ALCALL DELAY1POP CXLOOP L2JMP STARTDELAY1 PROC NEARMOV CX,50000DLOOP:LOOP DLOOPRETDELAY1 ENDPDELAY2 PROC NEAR MOV CX,500DLOOP1:LOOP DLOOP1 RETDELAY2 ENDPCODE1 ENDSEND START。
单片机led数码管的静态控制显示方式实验报告
单片机led数码管的静态控制显示方式实验报告开发环境:
本实验使用的是Keil uV5,MCU为STC89C52RC,和四位数码管模块。
实验目的:
本次实验是静态控制数码管显示,目的是使用单片机控制四位数码管上显示一个数字。
实验准备:
硬件:STC89C52RC单片机模块,4位数码管模块;
软件:Keil uV51.3 + STC-ISP软件;
实验原理:
单片机控制数码管显示,需要使用三个管脚控制,分别为A,B,C,当A为高电平时,B和C同时为低电平时,这时显示第一个数字;当B为高电平时,A和C同时为低电平时,这时显示第二个数字;当C为高电平时,A和B同时为低电平时,这时显示第三个数字。
实验步骤:
1. 设计电路:确定STC89C52RC控制四位数码管控制连接。
2. 安装软件:安装Keil uV5以及STC-ISP软件。
3. 编程:根据原理进行程序编写,编写完整的显示代码,实现任意数字的显示。
4. 烧录:将编写的程序通过STC-ISP软件烧录,然后重新启动单片机。
5. 测试:当烧写完成,四位数码管显示正确且稳定时,表示实验测试成功。
实验结果:
实验成功,STC89C52RC控制四位数码管显示正确且稳定。
实验结论:
实验证明,基于STC89C52RC芯片,通过编写程序,可以实现不同数字或字母在四位
数码管上的显示,达到定量和定性的要求。
led数码显示控制实验报告
led数码显示控制实验报告LED数码显示控制实验报告引言:在现代科技的发展中,LED(Light Emitting Diode)数码显示控制技术得到了广泛的应用。
它具有高亮度、低功耗、长寿命等优势,被广泛应用于电子产品、汽车、舞台灯光等领域。
本实验旨在通过对LED数码显示控制的研究和实践,探索其工作原理以及应用场景。
一、实验目的本实验的主要目的是通过设计与搭建一个简单的LED数码显示电路,实现对数字的显示和控制。
通过实际操作,深入了解LED数码显示控制的工作原理以及相关的电路设计和控制方法。
二、实验材料1. LED数码管:用于显示数字的组件,通常由7个发光二极管组成。
2. 数码显示驱动芯片:用于控制LED数码管的亮灭,实现数字的显示。
3. 电路板:用于搭建实验电路。
4. 电阻、电容:用于限流和滤波。
5. 面包板、导线等。
三、实验步骤1. 搭建电路:根据实验要求,将LED数码管、数码显示驱动芯片以及其他所需元件连接在电路板上。
确保接线正确、稳固。
2. 编程控制:通过编程,实现对数码显示驱动芯片的控制。
根据需要显示的数字,设置相应的控制信号,通过控制芯片的输出状态来控制LED数码管的亮灭。
3. 调试测试:将电路连接到电源,进行调试测试。
观察LED数码管的显示情况,检查是否符合预期的结果。
如有问题,及时排查故障并修复。
4. 实验数据记录:记录实验中的关键数据和结果,包括电流、电压、亮度等参数的测量结果,以及LED数码管的显示效果等。
四、实验结果与分析在实验中,我们通过搭建LED数码显示电路,成功实现了对数字的显示和控制。
通过编程控制,我们可以灵活地改变数码管上显示的数字,实现了灵活性和可变性的要求。
在实验过程中,我们还发现LED数码管的亮度和电流之间存在一定的关系。
通过改变电流的大小,我们可以调节数码管的亮度。
这为我们在实际应用中的亮度调节提供了一定的参考。
此外,在实验中我们还注意到,LED数码管的显示效果会受到环境光的影响。
LED数码管显示实验
电子信息工程系实验报告课程名称:单片机原理及接口(应用)实验项目名称: LED 数码管显示实验实验时间: 班级: 姓名: 学号:一、实 验 目 的熟悉keil 仿真软件、proteus 仿真软件、软件仿真板的使用。
了解并熟悉一位数码管与多位LED 数码管的电路结构、与单片机的连接方法及其应用原理。
学习proteus 构建LED 数码管显示电路的方法,掌握C51中单片机控制LED 数码管动态显示的原理与编程方法。
二、实 验 环 境硬件:Window XP ; 软件:keil C51单片机仿真调试软件,proteus 系列仿真调试软件;三、实 验 原 理LED 显示器是由发光二极管显示字段的显示器件。
在单片机应用系统中通常使用的是七段LED ,这种显示器有共阴极与共阳极两种。
例如共阴极,如图1所示。
管脚配置如图2所示。
图1 共阴极 图2 管脚配置共阴极LED 显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发光二极管则点亮;共阳极LED 显示器的发光二极管阳极并接。
七段LED 数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引脚相连即可。
多位七段LED 数码管与单片机连接时将所有LED 的段选线并联在一起,由一个八位I /O 口控制,而位选线分别由相应的I /O 口线控制。
例如:段选码的推导(1)要显示字母C ——则a 、f 、e 、d 灯亮。
(2)因为共阴——则a 、f 、e 、d 送0时才亮。
(3)段选dp-a 为——11000110。
由于所有位的段选码皆由一个I /O 控制,因此,在每个瞬间,多位LED 只可能显示相同的字符。
要想每位显示不同的字符,必须采用动态扫描显示方式。
即在每一瞬间只使某一位显示相应字符。
在此瞬间,位选控制I /O 口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I /O 口输出相应字符段选码。
如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。
实验一、LED显示控制、82C55A并行接口数码管显示控制实验
返回
从上->下框图
从上->下框图
接口技术实验指导书
计数器 0FE减H 左1 移一位
赋予 TEMP TEMP 取反 TEMP 输 出 到 IO 地址延时
计数器==0
计数器=8
返回
四 、程序代码
录入程序时,请特别注意”1”与英文字母”l”的区别,文件的扩展名为 C,即文件名一定是??-??.C。 在每个源程序的开头必须加上如下的注解,并按各人实际填写。
void delay1()
{ int i,j,a=0; for (i=1;i<=5000;i++)
{ for (j=1;j<=10000;j++) { a=a+0; }
} return; }
//延时
接口技术实验指导书
将 PCIcard.h 与 上 述 的 C 源 程 序 存 放 在 同 一 目 录 下 ,
} err=getPCIbase0(); iobase0=iobase0&0xfffc;
//从 PCI 配置空间读入的与地址空间有关的数据其 bit 0 位为 1,
printf("IOBase0=%xH\n",iobase0);
//表明此空间为 IO 空间参与 PCI 总线地址译码
err=getPCIbase1(); iobase1=iobase1&0xfffc; printf("IOBase1=%xH\n",iobase1); err=getPCImembase1(); err=getPCImembase0(); membase0=membase0+membase1<<16;
微机原理实验四LED数码管显示实验
微机原理实验四LED数码管显示实验LED数码管显示实验是微机原理中的一项重要实验,通过该实验可以学习到数码管的工作原理以及如何通过控制数字信号来实现数字的显示。
本文将详细介绍实验所需材料和步骤,并解析实验原理。
一、实验材料1.STM32F407开发板2.数码管模块3.面包板4.连接线5.杜邦线二、实验原理数码管是一种能够显示数字的装置,它由七个发光二极管组成,分别代表数字0-9、通过控制这七个发光二极管的亮灭,可以显示出不同的数字。
在实验中,我们使用STM32F407开发板来控制数码管。
数码管模块通过引脚与STM32F407开发板进行连接,其中共阴数码管的引脚与开发板的GPIO引脚相连,通过控制GPIO引脚的高低电平来控制数码管的亮灭。
三、实验步骤1.在面包板上连接数码管模块。
将数码管模块的引脚与STM32F407开发板的相应引脚通过杜邦线连接。
具体连接方式可以参考数码管模块和开发板的引脚定义。
2. 打开STM32CubeMX软件,创建一个新工程。
选择适合的开发板型号,并进行引脚配置。
将引脚配置为通用输出模式,并将相应的引脚定义为控制数码管的引脚。
3. 在生成的代码中找到main.c文件,在其中添加控制数码管的代码。
首先需要引入相应的头文件,并定义控制数码管的引脚宏定义。
4. 在main函数中,初始化控制数码管的引脚为输出模式。
然后通过控制引脚的高低电平来实现数码管的亮灭。
四、实验结果与分析经过以上步骤,我们成功控制了数码管的显示。
数码管显示的数字由控制引脚的高低电平确定,通过改变控制引脚的电平可以实现不同的数字显示。
值得注意的是,数码管的亮灭是通过切换引脚的电平来实现的,当引脚为高电平时,数码管熄灭;反之,当引脚为低电平时,数码管亮起。
在实际应用中,可以通过编写代码来改变控制引脚的电平,从而实现字母、字符、动画等更加复杂的显示效果。
五、实验总结本次实验通过控制STM32F407开发板的GPIO引脚,成功实现了LED数码管的显示。
实验2LED数码管动态和静态显示实验
广东海洋大学学生实验报告书实验名称实验2 LED数码管动态和静态显示课程名称计算机控制技术系自动化系专业自动化班级1132 学生姓名袁明星/201311632223 实验地点科技楼403实验日期王波成绩指导教师一、设计目的:LED数码管动态和静态显示二、设计任务:1.LED数码管动态显示,动态扫描时间间隔可调;2.LED数码管静态显示,显示动态扫描时间间隔;三、操作流图:步骤:1.上排的三个数码管用静态扫描方式,显示动态扫描时间间隔;2.下排的6用数码管用动态扫描方式,显示时钟;3.一个独立的按键,每按一次,可增加动态扫描时间间隔四、实验要求:1、态度严谨,独立完成,勤于思考,善于总结;2、认真完成实验报告。
ORG 0000HAJMP STARTORG 0003HAJMP INT_0ORG 000BHAJMP INT_T0ORG 0030H START:MOV 30H,#0 ;秒MOV 31H,#0 ;分MOV 32H,#0 ;时MOV 33H,#1MOV SP,#40HSETB IT0MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HMOV IE,#83HSETB TR0MOV R0,#20V1: MOV A,33HMOV B,#100DIV ABMOV DPTR,#TABMOVC A,@A+DPTRMOV P3,#4FHMOV P2,AMOV A,BMOV B,#10DIV ABMOV DPTR,#TABMOVC A,@A+DPTRMOV P3,#2FHMOV P2,AMOV A,BMOV DPTR,#TABMOVC A,@A+DPTRMOV P3,#1FHMOV P2,AMOV A,30HMOV B,#10DIV ABMOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,#02H MOV P0,AACALL DELAY MOV A,BMOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,#01H MOV P0,AACALL DELAYMOV A,31HMOV B,#10DIV ABMOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,#08H MOV P0,AACALL DELAY MOV A,BMOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,#04H MOV P0,AACALL DELAYMOV A,32HMOV B,#10DIV ABMOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,#20H MOV P0,AACALL DELAY MOV A,BMOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,#10H MOV P0,AACALL DELAYAJMP V1INT_T0:PUSH ACCDJNZ R0,NEXTMOV A,30HINC ACJNE A,#60,NEXT1MOV 30H,#0MOV A,31HINC ACJNE A,#60,NEXT2MOV 31H,#0MOV A,32HINC ACJNE A,#24,NEXT3MOV 32H,#0AJMP NEXT4NEXT1: MOV 30H,AAJMP NEXT4NEXT2: MOV 31H,AAJMP NEXT4NEXT3: MOV 32H,ANEXT4: MOV R0,#20 NEXT: MOV TH0,#3CHMOV TL0,#0B0HPOP ACCRETIINT_0: PUSH ACCMOV A,33HCJNE A,#100,NEXT01MOV 33H,#1AJMP NEXT0NEXT01:MOV B,#10MUL ABMOV 33H,ANEXT0: POP ACCRETIDELAY:MOV R7,33HDEL1: MOV R6,#4NOPDEL2: MOV R5,#123DEL3: DJNZ R5,DEL3DJNZ R6,DEL2DJNZ R7,DEL1RETTAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H END六、实验心得:通过实验,让我对这门课程有了更深入的了解。
数码管实验报告实验原理(3篇)
第1篇一、实验背景数码管是一种常用的显示器件,它可以将数字、字母或其他符号显示出来。
数码管广泛应用于各种电子设备中,如计算器、电子钟、电子秤等。
本实验旨在通过实践操作,让学生了解数码管的工作原理,掌握数码管的驱动方法,以及数码管在电子系统中的应用。
二、实验原理1. 数码管类型数码管分为两种类型:七段数码管和液晶数码管。
本实验主要介绍七段数码管。
七段数码管由七个发光二极管(LED)组成,分别代表七个笔画。
当七个LED中的某个或某几个LED点亮时,就可以显示出相应的数字或符号。
根据发光二极管的连接方式,七段数码管可分为共阳极和共阴极两种类型。
2. 数码管驱动方式(1)静态驱动静态驱动是指每个数码管独立驱动,每个数码管都连接到单片机的I/O端口。
这种方式下,数码管显示的数字或符号不会闪烁,但需要较多的I/O端口资源。
(2)动态驱动动态驱动是指多个数码管共用一组I/O端口,通过控制每个数码管的扫描时间来实现动态显示。
这种方式可以节省I/O端口资源,但显示的数字或符号会有闪烁现象。
3. 数码管显示原理(1)共阳极数码管共阳极数码管的特点是七个LED的阳极连接在一起,形成公共阳极。
当要显示数字时,将对应的LED阴极接地,其他LED阴极接高电平,即可显示出相应的数字。
(2)共阴极数码管共阴极数码管的特点是七个LED的阴极连接在一起,形成公共阴极。
当要显示数字时,将对应的LED阳极接地,其他LED阳极接高电平,即可显示出相应的数字。
4. 数码管驱动电路(1)BCD码译码驱动器BCD码译码驱动器是一种将BCD码转换为七段数码管所需段码的电路。
常用的BCD码译码驱动器有CD4511、CD4518等。
(2)74HC595移位寄存器74HC595是一种8位串行输入、并行输出的移位寄存器,常用于数码管的动态驱动。
它可以将单片机输出的串行信号转换为并行信号,驱动数码管显示。
三、实验目的1. 了解数码管的工作原理和驱动方式。
实验五8255和LED数码管显示实验
1.实验5静态显示实验参考程序如下:data segmentled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb 7fh,67h,77h,7ch,39h, 5eh,79h,71hmesg1 db 0dh,0ah,'input a num(0-9)from keyboar:', 0dh,0ah,'$' data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,28bhmov al,80hout dx,almov dx,288hmov ax,00hout dx,alss0: mov dx,offset mesg1mov ah,09hint 21hmov ah,1int 21hcmp al,27jz ss3cmp al,61hjb ss1sub al,39jmp ss2ss1: cmp al,41hjb ss2sub al,7ss2: and al,0fhmov bx,offset ledxlatmov dx,288hout dx,aljmp ss0ss3: mov ah,4chint 21hcode endsend start2.实验5动态显示参考程序如下:code segmentassume cs:codestart: mov dx,28bhmov al,80hout dx,alss0: mov dx,28ahmov al,00hout dx,almov dx,288hmov al,06hout dx,almov dx,28ahmov al,08hout dx,alcall delaymov dx,28ahmov al,00hout dx,almov dx,288hmov al,5bhout dx,almov dx,28ahmov al,04hout dx,alcall delaymov dx,28ahmov al,00hout dx,almov dx,288hmov al,4fhout dx,almov dx,28ahmov al,02hout dx,alcall delaymov dx,28ahmov al,00hout dx,almov dx,288hmov al,66hout dx,almov dx,28ahmov al,01hout dx,alcall delayjmp ss0mov ah,4chint 21hdelay proc near ;延时子程序mov cx,100n1: loop n1retdelay endpcode endsend start附图1:如下所示,在实验台上设有四/两个共阴极七段数码管显示及驱动电路,段码为同相驱动器(输入1时对应的段亮),位码为反相驱动器(输入1时对应的数码管亮),从段码与位码的驱动器输入端(段码输入端:a、b、c、d、e、f、g、dp,位码输入端:s1、s2)输入不同的代码即可显示不同的数字或符号。
计数显示_实验报告
一、实验目的1. 了解计数显示的基本原理和方法。
2. 掌握计数显示电路的设计与制作。
3. 熟悉计数显示模块的使用。
二、实验原理计数显示是一种将数字信号转换为直观的数字显示的方法。
常见的计数显示方法有LED数码管显示、LCD液晶显示等。
本实验以LED数码管显示为例,介绍计数显示的基本原理。
LED数码管是一种由多个LED灯组成的显示器件,通过控制LED灯的亮与灭来显示数字。
常见的LED数码管有七段式和十四段式两种。
本实验采用七段式LED数码管,其结构如图1所示。
图1 七段式LED数码管结构图计数显示的基本原理如下:1. 计数器:用于记录输入的脉冲信号数量,常见的计数器有十进制计数器、十六进制计数器等。
2. 比较器:将计数器的输出与预设的数值进行比较,当计数器输出等于预设数值时,输出一个信号。
3. 驱动电路:将比较器输出的信号转换为LED数码管所需的驱动信号,驱动LED数码管显示相应的数字。
三、实验仪器与设备1. 实验箱:1套2. LED数码管:1个3. 74LS90计数器:1个4. 74LS20比较器:1个5. 电阻:若干6. 电容:若干7. 信号发生器:1个8. 电源:1个四、实验步骤1. 连接电路:根据实验原理图,将计数器、比较器、驱动电路、LED数码管等元器件连接到实验箱上。
2. 调整参数:根据实验要求,调整计数器的预设数值和比较器的阈值。
3. 测试电路:将信号发生器输出的脉冲信号连接到计数器的输入端,观察LED数码管显示的数字是否正确。
4. 调试电路:根据观察结果,对电路进行调整,直至LED数码管显示的数字正确。
五、实验结果与分析1. 实验结果:连接电路后,调整参数,观察LED数码管显示的数字为预设数值,实验成功。
2. 实验分析:(1)计数器在脉冲信号的作用下,计数器中的数值逐渐增加。
(2)当计数器的数值达到预设数值时,比较器输出一个信号,该信号通过驱动电路驱动LED数码管显示相应的数字。
(3)实验过程中,若LED数码管显示的数字不正确,可能是电路连接错误、元器件损坏或参数设置不当等原因。
数码管显示实验报告
一、实验目的1. 理解数码管的工作原理及驱动方式。
2. 掌握51单片机控制数码管显示的基本方法。
3. 学会使用动态扫描显示技术实现多位数码管的显示。
4. 提高编程能力和实践操作能力。
二、实验原理数码管是一种常用的显示器件,它由多个发光二极管(LED)组成,可以显示数字、字母或其他符号。
根据LED的连接方式,数码管可分为共阴极和共阳极两种类型。
本实验使用的是共阳极数码管。
51单片机控制数码管显示的基本原理是:通过单片机的I/O口输出高低电平信号,控制数码管的各个段(a-g)的亮灭,从而显示相应的数字或符号。
动态扫描显示技术是将多个数码管连接到单片机的I/O口,通过快速切换各个数码管的显示状态,实现多位数码管的显示。
三、实验器材1. 51单片机实验板2. 共阳极数码管3. 电阻、电容等元件4. 仿真软件(如Proteus)5. 编译器(如Keil)四、实验步骤1. 搭建电路:按照实验原理图连接51单片机、数码管和电阻等元件。
2. 编写程序:使用Keil软件编写控制数码管显示的程序。
程序主要包括以下部分:a. 初始化:设置单片机的工作状态,配置I/O口等。
b. 显示函数:根据需要显示的数字或符号,控制数码管的各个段亮灭。
c. 动态扫描函数:实现多位数码管的动态显示。
3. 编译程序:将编写好的程序编译成机器码。
4. 仿真测试:使用Proteus软件对程序进行仿真测试,观察数码管的显示效果。
5. 实验验证:将程序烧录到51单片机实验板上,进行实际测试。
五、实验结果与分析1. 实验结果:通过仿真测试和实际测试,数码管能够正确显示0-9的数字。
2. 结果分析:实验结果表明,51单片机可以成功地控制数码管显示数字。
动态扫描显示技术能够有效地实现多位数码管的显示,提高了显示效率。
六、实验总结1. 通过本次实验,我们掌握了51单片机控制数码管显示的基本方法,提高了编程能力和实践操作能力。
2. 动态扫描显示技术能够有效地实现多位数码管的显示,提高了显示效率。
数码管静态显示实验
1、根据LED数码管连接电路(电路中U1是74LS244作为段码驱动电路;U5和U4是SN75452,与非门,作为位选信号电路),编写实验程序,实现1位数码管的静态显示,要求:内容为0~9循环显示。
2、接线方案:
P10~P17/51单片机 接 a、b…dp/数码管;
P2.0~P2.3/51单片机 接 s1~s4/数码管。
单 片 机实验报告
通信工程系13班(2016年5月19日 )
姓名学号31130
实验题目:数码管静态显示实验
实验目的:
1.掌握8051单片机与七段LED数码管连接的设计方法;
2.掌握LED数码管静态显示的编程方法。
实验仪器:
51单片机、LED数码管
实验原理:
LED数码管静态显示的显示程序简单,显示亮度高,但所需的I/O端口较多,并且功耗较大。所以静态显示常用在显示位数较少的系统中。下表为共阴极LED数码管的段码表
实验步骤:
1.连接串行通信电缆盒电源线;
2.将C51单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”;
3.打开实验箱上的电源开关。
4.利用KeilC51创建实验程序,并进行编译生产后缀为.HEX的文件;
5.利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;
6.观察实验现象,并记录。若实验现象有误请重复第5、6步。
实验程序:
实验结果:
任课老师评语:
签名:__________
日期_____Leabharlann __月__
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LED数码管显示实验
一、实验目的:
(1)进一步掌握8255的工作原理。
(2)学习LED数码管的显示原理。
(3)熟悉LED数码管显示器的接口设计方法。
二、实验设备:
MUT—Ⅲ型实验箱、8086CPU模块。
三、实验内容:
编程实现在六位LED数码管上“E”字跑马灯。
四、实验电路原理图:
CPU 8255A
八段LED数码管显示器采用共阴极接法,其段码由8255A的A口输出,通过PA0~PA7分别送给LED1~LED6的段码输入端(LED-A,LED-B,…,LED-G,LED-DP)。
显示器的位扫描信号经B口输出,通过PB0~PB5提供给数码管的公共极。
数码管采用动态扫描的方式显示。
八段LED数码管显示原理:
如下图(a)所示,LED数码管的主要部分是由八段发光二极管构成,这八段发光二极管分别称为a,b,c,d,e,f,g和DP(小数点)。
通过7个发光二极管的不同组合,可以显示数字0~9和字母A~F,从而实现十六进制数的显示。
LED数码管可以分为共阳极和共阴极两种结构,图(b)为共阳极结构,数码显示端输入低电平有效,当某一段为低电平时,该段便发光;图(c)为共阴极结构,数码显示端输
入高电平有效,当某一段得到高电平时,便发光。
例如,当a,b,g,e,d为高电平,而其他段为低电平时,则显示数字“2”。
显示段码与各段的对应关系如下图所示。
根据对应关系,LED数码管在共阴极结构下,数字“2”的显示段码为01011011 B(即5BH)
下表是数字0~9与字母A~F的七段数码管显示段码。
五、实验步骤:
(1)实验连线
PA0连LED-A,PA1连LED-B,PA2连LED-C,PA3连LED-D,PA4连LED-E,PA5
连LED-F,PA6连LED-G,PA7连LED-DP; PB0连LED1,PB1连LED2,PB2连LED3,
PB3连LED4,PB4连LED5,PB5连LED6。
CS0 CS8255(注意:运行程序前,需
要除去电路板上数码管右侧的跳线!表示使用外部接口电路)
(2)编写程序,全速运行,观察实验结果
六、参考程序
CODE SEGMENT
ASSUME CS:CODE
ORG 0100H
START: MOV DX, 04A6H ;8255控制口地址
MOV AL, 80H ;A口和B口工作于方式0,输出
OUT DX, AL
COUNT: MOV CX, 6 ;循环次数
MOV BL, 11011111B ;位选码初值:PB5=0,选中LED6, 其它灭NEXT: MOV DX, 04A0H ;A口地址
MOV AL, 79H ;“E”的段码送AL
OUT DX, AL ;显示“E”
MOV DX, 04A2H ;B口地址
MOV AL, BL ;送位选码给AL
OUT DX, AL
CALL DELAY ;延时
SAR BL, 1 ;位选码右移1位,选择下一位数码管
LOOP NEXT
JMP COUNT ;显示完一轮后再继续显示下一轮
DELAY: MOV SI, 8FFFH ;延时约1秒的子程序
DELAY1: NOP
NOP
DEC SI
JNZ DELAY1
RET
CODE ENDS
END START
程序框图:
作业题:
1、修改上述程序,显示“8”字跑马。
2、如何显示“HELLO”。