实验4.8位LED动态扫描显示实验

合集下载

LED动态扫描显示实验

LED动态扫描显示实验

51单片机实验报告二名称:LED动态扫描显示目的:掌握数码LED的动态扫描显示原理;学习延时子程序的编写和使用。

原理:为了节省输出端口数,数码LED显示一般采用动态扫描的方法,将所有数码LED的共阴极接在一个位型输出口上,将所有数码管的相同段接在一起作为字型口,软件控制每个数码LED轮流显示,任一时刻只一个数码亮,但扫描速度足够快时,视觉效果是8个数码LED同时亮。

电路图:流程图:汇编程序:ORG 0000HAJMP MAINORG 0080HMAIN:CLR P2.0 ;选中第一个数码管MOV P0, #3FH ;显示0LCALL DELAY ;调用延时MOV P0, #0FFH ;关显示SETB P2.0CLR P2.1 ;选中第二个数码管MOV P0, #06H ;显示1LCALL DELAYMOV P0, #0FFHSETB P2.1CLR P2.2 ;选中第三个数码管MOV P0, #5BH ;显示2LCALL DELAYMOV P0, #0FFHSETB P2.2CLR P2.3 ;选中第四个数码管MOV P0, #4FH ;显示3LCALL DELAYMOV P0, #0FFHSETB P2.3CLR P2.4 ;选中第五个数码管MOV P0, #66H ;显示4LCALL DELAYMOV P0, #0FFHSETB P2.4CLR P2.5 ;选中第六个数码管MOV P0, #6DH ;显示5LCALL DELAYMOV P0, #0FFHSETB P2.5CLR P2.6 ;选中第七个数码管MOV P0, #7DH ; 显示6LCALL DELAYMOV P0, #0FFHSETB P2.6CLR P2.7 ;选中第八个数码管MOV P0, #07H ; 显示7LCALL DELAYSETB P2.7MOV P0, #0FFHAJMP MAIN ;重新开始DELAY: ;延时子程序MOV R7 ,#2D1: MOV R6, #25D2: DJNZ R6, D2DJNZ R7, D1RETEND现象及结论:8只数码管循环滚动显示单个数字0—7。

LED数码管动态扫描显示实验

LED数码管动态扫描显示实验

单片机实验五LED数码管动态扫描显示实验一.实验目的掌握LED数码管动态扫描显示的原理和编程实现方法。

二.实验原理LED数码管动态扫描显示即各数码管循环轮流显示,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁现象,这种显示需要一个接口完成字形码的输出(段码),另一接口完成各数码管的点亮(位选)。

三.实验内容及要求1.对于显示的字形码数据此实验采用查表的方法来完成。

2.此实验要求是在八个数码管中显示学生的班级号(如11040601)或日历年月日(如2014 05 20)。

四.实验电路图中,SEG1为八个封装在一起的共阴数码管,RP1为排阻,其余同实验三,导线以总线形式完成。

五.实验步骤1.在KEIL4中编写、调试、编译程序。

2.在PRTUSE中设计电路,加载HEX文件运行。

3.(1)将单片机实验箱通过USB口与PC机连接;(2)用杜邦线(8根线)将实验箱上的JP8与J16连接(去掉原J15和J16之间的短路跳线帽),JP10与J12连接。

(3)打开实验箱电源开关POWER;(4)打开STC自动下载器,将步骤1中创建的*.HEX文件下载到单片机,完成后观测LED数码管显示内容。

六.实验参考程序(请同学自己编写实验程序)七.思考题1.某同学在实验时数码管闪烁,可能的原因是什么?2.为节省I/O口,可采用7段译码器(比如CD4511,74LS 等)和3-8译码器74LS138,如何连接电路并编程。

LDE数码管动态试验ORG 0000HAJMP MAINORG 0100HMAIN: SP,#60HMOV 30H,#02HMOV 31H,#00HMOV 32H,#01HMOV 33H,#04HMOV 34H,#00HMOV 35H,#05HMOV 36H,#02HMOV 37H,#00HSTART:MOV R0,#30HMOV R3,#0FEHNEXT: MOV P1,#0FFHMOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,AMOV P1,R3LCALL DLY2MSINC R0JNB P1.7,STRATMOV A,R3RL AMOV R3,AAJMP NEXTDLY2MS:MOV R6,#2DL2: MOV R7,#250DL1:NOPNOPDJNZ R7,DL1DJNZ R6,DL2RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END。

8位数码扫描显示电路设计实验

8位数码扫描显示电路设计实验

实验一基本组合电路设计(1)实验目的:熟悉 Quartus U的文本输入设计法和原理图输入设计法,学习简单组合电路以及多层次电路的设计、仿真和硬件测试。

(2)实验内容:I.利用Quartus U完成2选1多路选择器的文本编辑输入。

【参考程序】:ENTITY mux21a ISPORT ( a, b, s: IN BIT;y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGINPROCESS (a,b,s)BEGINIF s = ' O' THEN y <= a ;ELSE y<= b ;END IF;END PROCESS;END ARCHITECTURE one ;n .将实验I中的2选1多路选择器生成一个元件 mux21a利用原理图输入设计方法实现图1-1的双2选1多路选择器,并将此文件放在同一目录中。

最后进行编译、仿真,并对其仿真波形作出分析说明。

川.对U进行引脚锁定及硬件下载测试。

建议选择实验电路模式5,用键1(PIOO, 引脚号为1)控制sO;用键2(PIO1,引脚号为2)控制s1; a3、a2和a1分别接clock5(引脚号为16)、clockO (引脚号为93)和clock2 (引脚号为17);输出信号outy接扬声器spker (引脚号为129)。

通过短路帽选择clock5接1024Hz 信号,clock0接256Hz信号,clock2接8Hz信号。

最后进行编译、下载和硬件测试实验(通过选择键1、键2、控制s0、s1,可使扬声器输出不同音调)。

(3)实验报告:1.实验U的原理图。

2•实验U的仿真波形报告分析说明。

3.实验川硬件测试的详细实验说明。

图1-1 双2选1多路选择器实验_二基本时序电路设计(1)实验目的:熟悉Quartus U的VHDL文本设计过程,学习简单时序电路的设计、仿真和硬件测试。

8位8段LED数码管动态扫描显示

8位8段LED数码管动态扫描显示

8位8段LED数码管动态扫描显示
项目名称:8位8段LED数码管动态扫描显示班级:09电二姓名:解健学号:09020313
一.实验目的
1.掌握数码管动态扫描显示原理及实现方法。

2.掌握动态扫描显示电路驱动程序的编写方法。

二.实验电路
第一步:先在Proteu软件中设计仿真电路原理图。

第四步:最后观察设计的电路图是否能得到预想的效果,若不能,进行检查,找到毛病且纠正。

流程图
开始灭显示器I=0延时Counter=0Counter=0选择段选择段点亮所有位按数值点亮位延时延时
Counter++YCounter<8NI++YNNCounter++YCounter<8N停止Y结束I<30
实验现象:
显示器点亮所有段,持续约1,然后灭显示器,持续2,最后显示“hello-93”,保持。

附:程序
#include#include#defineTRUE1#definedataPortP0#defineledConPortP 2
{unignedchari,counter=0;
for(i=0;i<30;i++){
voiddelay_5u(void){_nop_();_nop_();}
voiddelay_50u(void){unignedchari;for(i=0;i<4;i++){delay_5u() ;}}
voiddelay_100u(void){delay_50u();delay_50u();}
for(j=0;j<10;j++)delay_100u();ucM--;}}。

4 八段码显示控制实训报告

4 八段码显示控制实训报告

八段码显示控制实训一 实训目的1. 学会利用PLC 控制LED 数码管。

2. 采用循环扫描法控制输出LED 显示。

二 实训器材1. 三菱可编程控制器实训装置 1台2. 八段码显示控制实训模块 1个3. 计算机 1台4. 编程电缆 1根5. 连接导线 若干三 实训要求八段码显示控制实训模块中利用LED 指示灯模拟一个八段数码管的每个笔段,数码管的每一段都对应于PLC 的一个输出端子,利用PLC 来控制LED 数码管的显示。

LED 面板示意图如下图所示。

abcdefgh八段码显示控制实训的控制要求: 1. 按下启动按钮,程序开始运行; 2. 按照从a ~h 依次显示各笔段;3. 按照0~F 的顺序依次显示十六进制数;4. 按照上面的顺序循环显示;5. 按下停止按钮,所有指示灯全部熄灭。

四 实训组成员名单组长: 徐玄 ;实训组成员: 胡建、费子威、王晓攀、郑婷婷 ; 实训操作员: 徐玄、郑婷婷 ;实训监护员: 胡建 ; 现象与结果记录员: 费子威、王晓攀 。

五 实训步骤及注意事项1. 理解实训的原理及控制要求,列出I/O 分配表。

2. 根据分配表编写实训程序。

3. 将编程电缆一端与PLC的编程接口相连,另一端与计算机串口连接。

4. 按I/O分配表接线,画出实训接线图。

5. 打开电源,输入编好的实训程序并下载到PLC中。

6. 下载完毕以后将主机上的RUN/STOP开关拨到RUN状态,若程序无逻辑错误则主机上的RUN运行指示灯亮,否则PROG-E出错指示灯亮,需要修改程序。

7. 当PLC指示RUN状态时,表明程序开始运行,观察运行的结果。

若结果与控制要求不符,则根据观察到的现象修改程序,重新下载进行调试,直至满足控制要求为止。

六实训注意事项1. 烧写程序前注意要接通电源,并检查主机PLC上的RUN/STOP开关是否置于“STOP”状态。

2. 运行程序要检查主机PLC上的RUN/STOP开关是否拨至“RUN”状态,并且检查主机上的RUN运行指示灯是否亮,指示灯表示程序无逻辑错误,否则PROG-E出错指示灯亮,需要修改程序。

计控实验报告LED动态显示

计控实验报告LED动态显示

实验 LED动态显示主要教学目标:掌握LED动态显示的方法。

教学的方法及教学手段:讲授法,讨论法,练习法,实验法教学重点及难点:LED动态显示实验内容1.LED用动态显示123456;2.时间切换开关K1,可切换动态扫描时间间隔,1ms和50ms。

(一)作法微型机定时地对显示器件扫描。

显示器件分时工作,每次只能有一个器件显示。

1.LED用动态显示123456;2.时间切换开关K1,可切换动态扫描时间间隔,1ms和50ms。

(二)1、8155 的PA口输出显示码,PB口用来输出位选码。

2、74LS07为6 位驱动器,为LED提供一定的驱动电流3、8155的PB口经75452缓冲器/驱动器反向后,作为位控信号。

4、75452内部包括两个缓冲器/驱动器,它们各有两个输入端。

(三)显示原理1、8155初始化,建立显示缓冲区为DISBUF, 存放待显示数据。

2、用软件译码法求出待显示的数对应的七段显示码,由PA口输出,并经过74LS07驱动后送到各显示器3、由PB口输出位选码。

各位从左至右依次显示,每个数码管显示1ms。

显示完最后一位数后,再重复上述过程,(四)电路图(五)参考程序#include <reg51.h>#include <intrins.h>#include <absacc.h>#define uint unsigned int#define uchar unsigned char/*8155控制字和PA,PB口地址定义*/ #define CON_8155 XBYTE[0x7F00] #define PA_8155 XBYTE[0x7F01] #define PB_8155 XBYTE[0x7F02] //数码管字型定义uchar LEDDA TA[]={0x3F, /*0*/0x06, /*1*/0x5B, /*2*/0x4F, /*3*/0x66, /*4*/0x6D, /*5*/0x7D, /*6*/0x07, /*7*/0x7F, /*8*/0x6F, /*9*/0x77, /*A*/0x7C, /*b*/0x39, /*C*/0x5E, /*d*/0x79, /*E*/0x71, /*F*/};//动态扫描时间间隔50ms标志位bit g_delay50ms = 0;//函数原型声明void Delay1ms(void);void Delay50ms(void);void main(){uchar i, selectLED;IT0 = 1; //外部中断0,边沿触发EX0 = 1;EA = 1;CON_8155 = 0x03; //PA口、PB口基本输入输出selectLED = 0x20; //LED位选,从左到右扫描while(1){for(i=1; i<7; i++){PA_8155 = LEDDATA[i]; //从8155 A口输出显示码PB_8155 = selectLED; //从8155 B口输出位选码selectLED = _cror_(selectLED, 1); //准备显示下一位if(selectLED == 0x80){selectLED = 0x20;}if (g_delay50ms){Delay50ms(); //动态扫描时间间隔50ms}else{Delay1ms(); //动态扫描时间间隔1ms}PB_8155=0x00; //消隐}}}void Int0(void) interrupt 0{g_delay50ms = !g_delay50ms;}void Delay1ms(void){uchar i, j, k;for(i=1; i>0; i--)for(j=142; j>0; j--)for(k=2; k>0; k--);}void Delay50ms(void){unsigned char a,b;for(b=173;b>0;b--)for(a=143;a>0;a--);}。

八位数码管动态扫描案例原理与测试说明

八位数码管动态扫描案例原理与测试说明

“八位数码管动态扫描”案例原理与测试说明
1程序设计目标及程序运行效果说明
本程序是动态扫描所有的数码管,从左到右8个数码管分别显示1、2、3、4、5、6、7、8。

2程序相关电路及工作原理说明
2.1 LED数码管电路
2.2 LED数码管引脚定义
2.3 工作原理
P0口的8位输出分别控制1个LED数码管的7段和一个小数点;而P2.3经反相器U4C控制74HC138的使能信号E3,结合P2.0、P2.1、P2.2这3个位选控制信号确定8个LED数码管中的哪个被点亮;电阻R15~R22为限流电阻。

当段选为高、使能信号有效时,对应的LED管将会发光。

通过以一定频率扫描位选信号,修改段选信号进行数码管点亮一段时间,从而给人视觉上几个数码管几乎同
时显示的效果。

3测试方法
(1)用STC ISP默认设置,打开工程中的HEX并下载
(2)下载后观察现象为:从左到右8个数码管分别显示1、2、3、4、5、6、7、8。

(3)本案例无需辅助操作。

4led 动态扫描显示及按键实验感想

4led 动态扫描显示及按键实验感想

4led 动态扫描显示及按键实验感想
在完成4LED动态扫描显示及按键实验后,我深深感受到了科技的实际应用与电路设计的美妙结合。

这不仅是一次对于理论知识的学习和巩固,更是一次将知识转化为实践的宝贵体验。

实验中,我们通过编程控制4个LED灯的亮灭,使其按照特定的模式进行动态扫描。

这其中涉及到了数字信号处理、逻辑门电路、微控制器等多个知识点。

每一个LED灯的亮与灭,都代表着一串代码的执行,每一次的动态扫描,都是程序在控制板上跑动的轨迹。

在实验过程中,我深刻体会到了编程的魅力。

通过编写程序,我可以精确地控制每一个LED灯的亮灭时间,甚至可以创造出复杂的扫描效果。

而按键的部分更是增添了实验的趣味性。

通过按键,我可以随时改变LED的扫描模式,每一次按键,都像是给程序注入了一个新的灵魂,使其焕发出不同的光彩。

当然,实验过程中也遇到了不少困难。

例如,如何确保4个LED 灯能够均匀地亮起与熄灭,如何处理按键抖动问题等。

但正是这些问题的存在,使得整个实验更加具有挑战性。

通过不断地尝试、调试,我最终克服了这些困难,也更加深入地理解了相关知识。

这次实验让我认识到,理论知识的学习固然重要,但只有将其应用于实践中,才能真正体会到知识的价值。

同时,实验中的每一个细节、每一个问题,都是对自身能力的锻炼与提升。

通过不断地实践与
尝试,我相信自己能够更好地掌握知识,更好地将理论知识与实践相结合。

未来,我计划进一步深入学习微控制器编程、电路设计等相关知识,希望能够为未来的科技应用做出更大的贡献。

同时,我也希望能够将这次实验的经验分享给更多的同学,共同探索科技的奥秘。

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