实验3 数码管静态显示

实验3  数码管静态显示
实验3  数码管静态显示

实验3 数码管静态显示

一.实验目的:

1.学习数码管的静态控制原理

2.学习用单片机的串行口扩展74LS373实现静态显示方法。

二.实验原理

8字形的数码管驱动方式分两种:共阴极和共阳极。

数码管是由发光二极管组成的,发光二极管有两种驱动方式,数码管自然也有两种驱动方式:共阴极与共阳极。

共阳极是指数码管内部LED的正极接在一起,想要点亮LED,拉低相应的负极即可。共阴极是指数码管内部LED的负极接在一起,想要点亮LED,拉高相应的正极即可。

什么是数码管编码?就是让数码管显示数字时,对应的IO输出的高低电平。

0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e。共阳极0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71。共阴极什么是段选?什么是位选?

段选就是显示数字时,这个数字对应的IO编码,也就是上面的数码管编码。

位选就是让8个数码管的哪一个数码管显示数字。

锁存器的功能就是可以把当前输入的状态在输出脚锁住,这样及时输入变化,输出也能保持不变。控制方式非常简单,只需控制74LS373的控制即可。

8位共阴数码管其中J2(B)为段锁存,J2(A)为位锁存。

实验原理图如下:

共阳极显示数字1

程序:共阴8位数码管显示1位数字(旧板子第0位显示数字4)

#include

#include

sbit duan=P2^2; 连接J2(B)

sbit wei=P2^3;

void main()

{

While(1)

{

P1=0xfe; //第0位显示

Wei=1;

Wei=0;

Delay50ms();

P1=0x66;

duan=1; //显示数字4

duan=0;

}

}

Void delay50ms()

{

Unsigned int i;

For(i=0;i<1000;i++);

}

实验4 LED数码管静态显示电路的设计与仿真

实验项目四 LED数码管静态显示电路的设计与仿真 [实验目的] 1.掌握LED数码管编码方法 2.掌握LED数码管静态显示电路的设计 3.掌握对LED数码管静态显示的控制方法 [实验原理] [实验仪器] PC机一台 [Proteus用到器件的关键词] 单片机(at89c52)、数码管(7seg-com-cathode)、排阻(respack-7) [实验内容与步骤] 1.用Proteus软件设计出LED数码管显示电路原理图。 2.由于单片机P0口内部无上拉电阻,故使用时要外接上拉电阻,阻值为10KΩ。 3.用Keil编写程序让第二个数码管从0显示到F,然后再让从0开始显示;每当第二个数码管显示到F后,第一个数码管显示值加1一次,最后调试程序、编译后生成HEX文件。4.将HEX文件装载到MCU AT89C52中,单击Start按钮开始动态仿真。 [实验数据记录] ;******两位数码管静态显示程序*******;

ORG 0000H LJMP MAIN ORG 0050H MAIN: MOV R3,#0 MOV P0,#3FH LP2: MOV DPTR,#0200H LP1: MOVC A,@A+DPTR MOV P2,A LCALL DELAY MOV R2,A CLR A INC DPTR CJNE R2,#6FH,LP1 INC R3 MOV DPL,R3 MOVC A,@A+DPTR MOV P0,A CLR A CJNE R3,#10,LP2 AJMP MAIN DELAY: MOV R0,#0FFH DL2: MOV R1,#0FFH DL1: NOP NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 RET ORG 0200H TAB: DB 3FH;0 DB 06H;1 DB 5BH;2 DB 4FH;3 DB 66H;4 DB 6DH;5 DB 7DH;6 DB 07H;7 DB 7FH;8 DB 6FH;9 END [实验数据处理] [实验结果及讨论]

实验三 数码管显示实验

实验十九数码管显示实验 一、实验目的 1、了解数码管的显示原理; 2、掌握数码管显示的编程方法。 二、实验内容 1、编写数码管显示程序,循环显示0-F字符 三、实验设备 1、硬件: JX44B0实验板; PC机; JTAG仿真器; 2、软件: PC机操作系统(WINDOWS 2000); ARM Developer Suite v1.2; Multi-ICE V2.2.5(Build1319); 四、基础知识 1、掌握在ADS集成开发环境中编写和调试程序的基本过程。 2、了解ARM 应用程序的框架结构; 3、了解数码管的显示原理; 五、实验说明 1、LED显示原理 发光二极管数码显示器简称LED显示器。LED显示器具有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,目前广泛应用于各类电子设备之中。 7段LED由7个发光二极管按“日”字排列。所有发光二极管的阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。一般共阴极可以不需要外接电阻。 其中各二极管的排列如上图在共阳极接法中,如果显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。这样如果按照dp、g、fe、d、c、b、a的顺序排列的话对应的码段是:6DH。其它的字符同理可以得到。

2、数码管显示驱动 数码管的显示一般有动态显示和静态显示两大类,另外按照驱动方式又分串行驱动和并行驱动两种方式。串行驱动主要是提供串-并转换,减少控制线数量;并行驱动对每一个段提供单独的驱动,电路相对简单。这方面参看数字电路相关内容。 下面主要介绍静态显示和动态显示: 1)静态显示: LED数码管采用静态接口时,共阴极或共阳极节点连接在一起地或者接高电平。每个显示位的段选线与一个8位并行口线相连,只要在显示位上的段选位保持段码电平不变,则该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O口,也可以采用串行驱动。相应的电路如下: 很明显采用静态显示方式要求有较多的控制端(并行)或较复杂的电路(串行)。但是在设计中对器件的要求低。

《一位LED数码管显示0-9》

成都理工大学工程技术学院 单片微机原理及应用课程设计《一位LED数码管显示0-9》 学生姓名: 学号: 专业:

班级: 指导教师: 完成日期: 目录 一实验目的与任务 (2) 二实验要求 (2) 三实验内容 (2) 四元器件清单 (2) 五LED数码管的结构及工作原理 (2) 六关于PLC控制LDE介绍 (4) 七原理图绘制说明 (5) 八流程图绘制以及说明 (9)

九电路原理图与仿真 (10) 十源程序 (12) 十一心得体会 (12) 十二参考文献 (13) 一、实验与任务 结合实际情况,编程设计、布线、程序调试、检查与运行,完成一个与接近实际工程项目的课题,以培养学生的实际操作能力,适应生产一线工作的需要。做到能检查出错误,熟练解决问题;对设备进行全面维修。通过实训对PLC的组成、工作原理、现场调试以及基于网络化工作模式的基本配置与应用等有一个一系列的认识和提高。 利用51单片机、1个独立按键及1位7段数码管等器件,设计一个单片机输入显示系统,要求每按一下独立按键数码管显示数据加1(数码管初始值设为0,计到9后再加1 ,则数码管显示0)。 本次设计采用12MHz的晶体振荡器为单片机提供振荡周期,外加独立按键,复位电路和显示电路组成。 二、实验要求 1、了解七段LED数码管的结构、分类以及数码管的显示码。 2、学习1位LED数码管静态显示与动态显示的编程方法。

3、掌握可编程序控制器技术应用过程中的一些基本技能。 4、了解可编程控制器的装备、调试的全过程。 三、实验内容 1、练习设计、连接、调试控制电路; 2、学习PLC程序编程; 四、元器件清单 从PROTUES库中选择元器件 (1)AT89C51;单片机。 (2)RES、RX8;电阻、8排阻。 (3)7SEG-COM-CAT-BLUE;带公共端共阴极七段蓝色数码管。 (4)CAP/CAP-ELEC;电容、电解电容。 (5)CRYSTAL:晶振。 五、LED数码管的结构及工作原理 led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位0,1,2,3,4,5,6,8,10位等等....,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,

LED数码管显示实验

信息工程学院实验报告 课程名称:单片机原理及接口 实验项目名称:LED 数码管显示实验 实验时间:2016年3月11日 班级:通信141 姓名: 学号: 一、实 验 目 的: 熟悉keil 仿真软件、proteus 仿真软件、软件仿真板的使用。了解并熟悉一位数码管与 多位LED 数码管的电路结构、与单片机的连接方法及其应用原理。学习proteus 构建LED 数 码管显示电路的方法,掌握C51中单片机控制LED 数码管动态显示的原理与编程方法。 二、实 验 设 备 与 器 件 硬件:微机、单片机仿真器、单片机实验板、连线若干 软件:KEIL C51单片机仿真调试软件,proteus 系列仿真调试软件 三、实 验 原 理 LED 显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七 段LED ,这种显示器有共阴极与共阳极两种。 共阴极LED 显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发 光二极管则点亮;共阳极LED 显示器的发光二极管阳极并接。 七段LED 数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引 脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制 成 绩: 指导老师(签名): a f b e g c d dp 1 2 3 4 5 10 9 8 7 6 g f a b e d c dp (a) 共阴极 (b) 共阳极 (c) 管脚配置

发光二极管的8位字节数据称为段选码。 多位七段LED数码管与单片机连接时将所有LED的段选线并联在一起,由一个八位I/O 口控制,而位选线分别由相应的I/O口线控制。如:8位LED动态显示电路只需要两个八位I/O口。其中一个控制段选码,另一个控制位选。 由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,多位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I/O口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。 不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。 四、实验内容与步骤 1、电路图的设计。 (1)打开proteus软件,单击P,打开搜索元器件窗口,如图 1-1 所示: 图1-1 搜索元器件 (2)添加元器件AT89C51、CAP、BUTTON、LED-BLUE、RES、CRYSTAL、7SEG-MPXI1CC,修改元器件的参数,绘制电路图,如图1-2 所示:

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

/****************************************************************************** ************** * 功能:一位数码管静态显示。 * 硬件条件:1.CPU型号:AT89S52 * 2.晶振:12.000MHz * 3. P0口全部接上拉电阻。 * 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号 ******************************************************************************* **************/ #include "reg52.h" // 包含头文件 /* 与编译器无关的数据类型定义*/ /****************************************************************************** **************/ typedef unsigned char uint8; // 无符号8位整型变量 typedef signed char int8; // 有符号8位整型变量 typedef unsigned short uint16; // 无符号16位整型变量 typedef signed short int16; // 有符号16位整型变量 typedef unsigned int uint32; // 无符号32位整型变量 typedef signed int int32; // 有符号32位整型变量 typedef float fp32; // 单精度浮点数(32位长度)typedef double fp64; // 双精度浮点数(64位长度) /****************************************************************************** **************/ /* 定义位变量*/ sbit P0_0 = P0 ^ 0; sbit P0_1 = P0 ^ 1; sbit P0_2 = P0 ^ 2; sbit P0_3 = P0 ^ 3; sbit P0_4 = P0 ^ 4; sbit P0_5 = P0 ^ 5; sbit P0_6 = P0 ^ 6;

单片机实验——数码管显示

单片机实验——数码管显示

数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输

入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图

发送数据 二、数码管动态显示 1、电路图

图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R

排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数

拨码开关输入数码管显示实验

综合课程设计实验报告 班级: 姓名: 学号:11 指导老师:

实验名称: 拨码开关输入数码管显示实验 实验要求: 1. 掌握数码管显示原理 2. 掌握拨码开关工作原理 3. 通过FPGA用拨码开关控制数码管显示 实验目标: 4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。 实验设计软件 Quartus II 实验原理 1.数码管显示模块 电路原理图:

如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。 2.拨码开关模块 电路原理图: 拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。 程序代码 module bomakaiguan(out,key_in,clk); assign p='b1111; output[7:0] out=8'b; input[7:0] key_in; input clk; reg[7:0] out; always @(posedge clk) begin case(key_in) 8'b: out=8'b;

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

单片机数码管静态显示实验程序 org 00h num equ p0 ;p0口连接数码管 clr p2.0 ; mov dptr ,#tab clr a mov r2,#0 loop: movc a,@a+dptr mov num ,a acall delay_200ms inc r2 mov a,r2 cjne r2,#15, loop mov r2,#0 clr a ajmp loop tab : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH delay_200ms: mov r3,#20 delay: acall delay_10ms djnz r3,delay ret ;;;;;;;;;;;;;;;; 非中断精确1MS定时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; delay_1ms: MOV R7 ,#249 signed: ;循环部分4机器周期 nop nop djnz R7 ,signed ret ;返回指令2机器周期 ;2+249*4+2=1000us 可以精确定时1MS,假设外部晶振是12M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 非中断精确10MS定时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov r6,#9 ;2个机器周期用2us delay_10ms_sined: ;9次循环共用9(1ms+4us)=9036us acall delay_1ms djnz r6,delay_10ms_sined MOV r6 ,#240 ;2个机器中期用2us signed_10ms : ;循环部分4机器周期共240次 nop nop djnz r6 ,signed_10ms ret ;返回指令要2us ;2us+9036us+240*4us+2us = 10ms 即可精确定时10ms ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 非中断精确定时1s ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; delay_1s: mov r5,#99 ;两个机器周期2us delay_1s_signed: ;循环指令周期为4us,加上延时10ms ;(10ms+4us)*99 = 990.396ms acall delay_10ms djnz r5,delay_1s_signed mov r5 ,#9 ;两个机器周期2us signed_1s: ;循环指令周期为4us,加上延时1ms ;(1ms+4us)*9 = 9ms+36us acall delay_1ms djnz r5 ,signed_1s mov r5 ,# 140 ;机器周期2us signed_1s_: ;一次循环4us共有140次。140us*4 = 560us nop nop djnz r5,signed_1s_ ret ;2us ;2us+990ms+396us+2us+9ms+36us+2us+560us+2us = 999ms+1000us = 1s end

实验三静态数码管显示

实验三静态数码管显示 1.实验目的 通过本实验让学生学习7段数码管显示译码器的设计,进一步了解、熟悉和掌握FPGA 开发软件Quartus II的使用方法及VHDL语言的编程方法,学习LPM兆功能模块的调用。 2.实验内容 实验箱上有2个4位动态共阳极数码管,其中8个位码DIG0~DIG7和8位段码SEG0~SEG7分别与FPGA相应的引脚相连。这样只要DIG0~DIG7上一直输出低电平“0”,则8个数码管将显示相同的数码,这样8位动态数码管就变成了静态数码管。 本实验的内容是建立7段译码显示模块,用于控制LED数码管的静态显示。要求在试验箱上循环显示0~9和A~F 16个字符。 3.实验原理 数码管LED显示是工程项目中使用较广的一种输出显示器件。常见的数码管有共阴和共阳两种。共阴数码管是将8个发光二极管的阴极连接在一起作为公共端,而共阳数码管是将8个发光二极管的阳极连接在一起作为公共端。公共端常称为位码,而将其它8位称为段码,分别为:a、b、c、d、e、f、g、h,其中h为小数点。对于共阳极数码管,只要公共端为高电平“1”,某个段输出为低电平“0”,则相应的段就亮。 本实验通过分频模块得到1Hz的频率信号,加载于4位计数器的时钟输入端,计数循环输出0~9和A~F 16个字符,通过7段译码模块后在数码管上显示出来。 4.实验步骤 (1)启动Quartus II,建立一个空白工程,然后命名为sled.qpf。 (2)新建decl7s.vhd源程序文件,编写代码。然后进行综合编译。若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。生产符号文件decl7s.bsf (File→ Create/_Update → Create Symbol Files for Current File)。 (3)将实验模块库里的int_div.vhd和int_div.bsf拷贝到工程目录下。 (4)添加4位兆计数器功能模块。步骤如下: ①在Quartus II主界面中选择Tools—Mega Wizard Plug-In Manager,打开如下图所示的兆功能模块向导。选择Create a new custom megafunction variation新建一个新的兆功能模块。

八段数码管显示实验

八段数码管显示实验报告 一.设计目的 1.掌握数码管动态显示的原理; 2.学会用总线方式控制数码管显示; 3.熟悉利用单片机驱动数码管的电路及编程原理。 二.设计内容 利用实验箱提供的显示电路,设计一个能够动态显示一行数据的系统。实验箱一般提供了6位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。能够正常显示数据之后,请改变一下数字的变化速度或者LED显示的方向。 三.实验原理 1.原理:当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O方式驱动八段显示管时,请将开关拨到“外驱”位置。 本实验仪提供了6 位8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。 本实验仪中 8位段码输出地址为0X004H,位码输出地址为 0X002H。此处X 是由KEY/LED CS 决定,参见地址译码。做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS 接到CS0上,则段码地址为08004H,位码地址为08002H。 七段数码管的字型代码表如下表:

2. 3.程序 OUTBIT equ 08002h ; 位控制口

OUTSEG equ 08004h ; 段控制口 IN equ 08001h ; 键盘读入口 LEDBuf equ 60h ; 显示缓冲 Num equ 70h ; 显示的数据 DelayT equ 75h ; ljmp Start LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop: mov dptr, #OUTBIT mov a, #0 movx @dptr, a ; 关所有八段管 mov a, @r0 mov dptr, #OUTSEG movx @dptr,a

单个数码管静态显示教案

单个数码管静态显示公开课教案 主讲老师杨镇彬授课班级13电子B2 日期2014.11.11 教学目标:1、理解数码管显示控制原理; 2、掌握单个数码管静态显示的程序;并能修改程序; 3、能使用模拟软件模拟实验效果。 重点难点:1、数码管静态显示原理; 2、数码管显示控制的主程序。 教学过程时 间 一、复习ORG MOV AJMP SJMP DJNZ CLR RET END 4 二、导入在我们生活中能经常见到LED数码管的应用实例,如电饭煲、电磁炉、洗 衣机、数码万年历等等,这些数码管都是由单片机控制的,那么如何控制数码 管显示的呢? 1 三、七段LED数码管内部结构 有a、b、c、d、e、f、g七个笔画,第八位为小数点dp,分为共阳、共阴 两大类。 3

四、显示原 理 以共阴极为例(控制正极,高电平有效)9 五、电气原 理图分析 3 六、练习1猜猜显示的数字是多少? MOV P0,# 0000 0110 B 1 MOV P0,# 0101 1011 B 2 MOV P0,# 0111 1111 B 8 请问要显示数字7的话,需要传送什么数值给P0端口? 6 七、单个数码管显示MAIN: CLR P2.0;设置低电平,接通负极 MOV A,#00000110B;储存控制信号 MOV P0,A;传送控制信号 LCALL DELAY;调用延时子程序 SJMP MAIN;跳回主程序 8

主程序 八、完整程序ORG 0000H AJMP MAIN ORG 0100H MAIN:CLR P2.0 MOV A,#00000110B MOV P0,A SJMP MAIN END 1 九、软件模 拟实验 1、显示数字1; 2 十、学生 操作 叫学生上讲台操作(修改程序) 2

键盘与数码管静态显示实验 单片机 程序

键盘与数码管静态显示实验 实验内容: 1、根据电路图图1和图2编写按键程序,左侧第一位数码管显示独立式按键编号“1”、“2”、“3”、“4”,哪一个按下,对应的编号显示在左侧第一位数码管(左侧第二个数码管为全灭状态),右侧二位数码管显示“00--15”的十进制键值,无键按下时数码管为全灭状态。 图1 动态显示电路图

图2 键盘接口电路图 评分表 #include unsigned char code led_code[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09 , 0x11,0xc1,0x63,0x85,0x61,0x71,0xff}; unsigned char dis_buf[4]; unsigned char i; unsigned char aa,bb,cc,lie; sbit key1=P2^0; sbit key2=P2^1; sbit key3=P2^2;

sbit key4=P2^3; sbit led_clk= P1^6 ; sbit led_data = P1^7 ; void delay_ms(unsigned int i) { unsigned char j; for(i;i>0;i--) { for(j=110;j>0; j-- ); } } void key_scan(void) { P3=0Xf0; if((P3&0xf0)!=0xf0) { aa=0xfe; for(lie=0;lie<4;lie++) { P3=aa; aa=(aa<<1)|0x01; if((P3&0xf0)!=0xf0) { bb=P3&0Xf0; switch(bb) { case 0xe0:cc=lie;break; case 0xd0:cc=lie+4;break; case 0xb0:cc=lie+8;break; case 0x70:cc=lie+12;break; default :cc=16;break; } } } } else cc=16; } void led_display ( ) { unsigned char t,i; unsigned char input_code; for(i=0;i<4;i++) {

实验四 数码管静态显示

实验四数码管静态显示 一、实验目的 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--定时器/计数器控制寄存器的位描述

数码管显示实验报告

三、数码管显示实验 一、实验目的及要求 理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管J3641AS通过DP1668与CPU的接线图。 理解8段数码管原理,运行与理解各子程序,编制一个4连排8段数码管程序,CPU 的P2口接左、右两个DP1668的控制引脚,各DP1668接LED的数据线hgfedcba,在4 连排8段数码管显示编程的日期。 熟悉结构后,自行编程左边四个数码管,显示分钟和秒,当计时达到一个小时,就重新从00:00开始计时。另外,指定计时的开始值。 二、实验原理(图) 8段数码管一般由8个发光二极管(Llight-emitting diode,LED)组成,每一个位段就是一个发光二极管。一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)组成。根据公共端所接电平的高低,可分为共阳极和共阴极两种。 三、实验设备(环境): 1、电脑一台 2、STC-ISP(V6.85I)烧写应用程序 3、Keil应用程序 四、实验内容(算法、程序、步骤和方法): #include //此文件中定义了STC15系列的一些特殊功能寄存器 #include"intrins.h" #define uchar unsigned char #define uint unsigned int

sbit TM1668R_DIO_H = P4^4; //左边数码管宏定义 sbit TM1668R_CLK_H = P2^0; sbit TM1668R_STB_H = P2^1; sbit TM1668L_DIO_H = P2^2; //左边数码管宏定义 sbit TM1668L_CLK_H = P2^3; sbit TM1668L_STB_H = P2^4; sbit LIGHT = P0^1; uchar Today_data[8]; uint temp,kk; const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void Send_Data(uchar dat,uchar n); void DIS_data_1668(uchar data1,uchar data2,uchar data3,uchar data4,uchar n); /****************************************************************************** * * 函数名: Send_Data * 函数功能: TM1668发送一字节数据函数 * 输入: 无 * 输出: 无 ******************************************************************************/ void Send_Data(uchar dat,uchar n) { uchar i; for(i = 0;i<8;i++) //1个字节 { if(n==0) TM1668R_CLK_H = 0; else TM1668L_CLK_H = 0; if(dat&(1<

LED数码管静态显示接口与编程

51单片机汇编语言教程:23课:LED数码管静态显示接口与编程在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。 引言:还记得我们小时候玩的“火柴棒游戏”吗,几根火柴棒组合起来,能拼成各种各样的图形,LED数码管显示器实际上也是这么一个东西。 八段LED数码管显示器 <单片机静态显示接口> 八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED数码管显示器有两种不一样的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。如下图所示。` 共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就能表示欲显示字符的字形代码。例如,对于共阴LED数码管显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,数码管显示器显示"P"字符,即对于共阴极LED数码管显示器,“P”字符的字形码是73H。如果是共阳LED数码管显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。这里必须注意的是:很多产品为方便接线,常不按规则的办法去对应字段与位的关系,这个时候字形码就必须根据接线来自行设计了,后面我们会给出一个例程。 在单片机应用系统中,数码管显示器显示常用两种办法:静态显示和动态扫描显示。所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU的开销小。能供给单独锁存的I/O接口电路很多,这里以常用的串并转换电路74LS164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。 MCS-51单片机串行口方式押为移们寄存器方式,外接6片74LS164作为6位LED数码管显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。 74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个管脚按逻辑与运算规律输入信号,公一个输入信号时可并接。

实验2LED数码管动态和静态显示实验

广东海洋大学学生实验报告书实验名称实验2 LED数码管动态和静态显示课程名称计算机控制技术系自动化系专业自动化班级1132 学生姓名袁明星/201311632223 实验地点科技楼403实验日期 王波成绩 指导教师 一、设计目的: LED数码管动态和静态显示 二、设计任务: 1.LED数码管动态显示,动态扫描时间间隔可调; 2.LED数码管静态显示,显示动态扫描时间间隔; 三、操作流图: 步骤: 1.上排的三个数码管用静态扫描方式,显示动态扫描时间间隔; 2.下排的6用数码管用动态扫描方式,显示时钟; 3.一个独立的按键,每按一次,可增加动态扫描时间间隔 四、实验要求: 1、态度严谨,独立完成,勤于思考,善于总结; 2、认真完成实验报告。 五、程序设计流程及代码

ORG 0000H AJMP START ORG 0003H AJMP INT_0 ORG 000BH AJMP INT_T0 ORG 0030H START: MOV 30H,#0 ;秒 MOV 31H,#0 ;分 MOV 32H,#0 ;时 MOV 33H,#1 MOV SP,#40H SETB IT0 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV IE,#83H SETB TR0 MOV R0,#20 V1: MOV A,33H MOV B,#100 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV P3,#4FH MOV P2,A MOV A,B MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV P3,#2FH MOV P2,A MOV A,B MOV DPTR,#TAB MOVC A,@A+DPTR MOV P3,#1FH MOV P2,A

LED数码管驱动显示实验

LED数码管驱动显示实验 实验内容: 1、八字段LED数码管驱动显示工作原理 2、74LS138三—八译码器工作原理及如何控制数码管工作原理 3、数码管动态显示工作原理分析与计算 4、数码管多种显示实验 实验讲义: 一、七字段数码管显示工作原理 共阴级接法 共阳级接法

详情分析可以启动51单片机工具箱软件,选择“数码管字形”生成选项进行字形分析。 二、74LS138三—八译码器工作原理及如何控制数码管工作原理

注:上图是工程样品图。实际修改后的电路板图将接入9012三极管的Y0-Y7顺序改为Y7-Y0 三、数码管驱动方式及动态显示工作原理分析与计算 1、人眼的视觉暂留现象 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 ①静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S52单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 ②动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 2、数码管使用的电流与电压计算 电流:静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。 电压:查引脚排布图,看一下每段的芯片数量是多少?当红色时,使用1.9V乘以每段的芯片串联的个数;当绿色时,使用2.1V乘以每段的芯片串联的个数。 四、数码管显示实验 利用3-8译码器来选择需要显示(亮)哪个数码管,利用P0口来负责显示什么数字或符号 1、让Y0所对应的数码管显示“0”—“9”,间隔1秒 2、让Y0所对应的数码管显示“0”,Y1显示“1”,Y2显示“2”…………以此类推最后Y7显示“7”,间隔1秒

实验三 数码管显示实验

计算机科学与工程学院 数字电路实验报告 专业__软件工程_班级20111431 姓名__王金华____学号___50___ 实验三数码管显示实验 一、实验目的 1. 熟悉共阴、共阳数码管的使用。 2. 掌握数码管的驱动方法。 二、实验仪器和器材 1、数字逻辑电路实验箱(带共阴共阳数码管)。 2、数字逻辑电路实验箱扩展板。 3、数字万用表。 4、芯片74LS47、78LS48、74LS248 三、实验原理 在数字测量仪表和各种数字系统中,都需要将数字量直观的显示出来,一方面供人们 直接读取测量和运算的结果;另一方面用于监视数字系统的工作情况。因此,数字显示电路是许多数字设备不可缺少的部分。数字显示电路通常由译码器、驱动器和显示器等部分组成,如图3-1 所示。 图3-1 数字显示电路组成方块图 数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵 式。目前以分段式应用最为普遍,主要器件是七段发光二极管(LED)显示器。它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。 下图3-2(a)、3-2(b)分别是共阴管和共阳管的电路,3-3(a)、3-3(b)分别是共阴管和共阳管的引出脚功能图。

3-2(a) 3-2(b)3-3(b) 一个LED 数码管可用来显示一位0~9 十进制数和一个小数点。小型数码管(0.5 寸和 0.36 寸)每段发光二极管的正向压降,随显示光(通常为红、绿、黄、橙色)的颜色不同略有差别,通常约为2~2.5V,每个发光二极管的点亮电流在5~10mA。LED 数码管要显示BCD 码所表示的十进制数字就需要有一个专门的 译码器,该译码器不但要有译码功能,还 要有相当的驱动能力。 1. 74LS48 共阴极译码驱动器 它的引脚排列为: 图3-4 74LS48 的引脚排列 它的功能表为: 2. 74LS47 共阳极译码驱动器

相关文档
最新文档