范文一:LED数码管显示实验
1.掌握数字、字符转换成显示段码的软件译码方法
2.掌握静态数码显示的原理和相关程序的编写方法
电路图见下页,显示器由5个LED数码管组成,输入只
13有两个信号:串行数据线DIN和移位信号CLK。5个串/并移AQ024BQ15位寄存器芯片74LS164首尾相连。每片的并行输出作为LEDQ26Q310数码管的段码。 Q4811CLKQ512Q674LS164的引脚图如图所示,是一个8位串入并出移位913MRQ7寄存器,1、2为串行输入端,Q0~Q7为并行输出端,CLK74LS164为移位时钟脉冲,上升沿移入一位:MR为清零端,低电平
时并行输出为零。
采用单片机串行口工作方式0把串行数据转换成并行数据输出。串行口在工作方式为
0时,数据为8位,从RXD端输出,TXD输出移位同步时钟信号,其波特率固定位Fosc/12,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将状态寄存
器的TI位置1,TI必须由软件清零。
单片机的P3.0作串行数据输出,P3.1作移位脉冲输出。
1.使用89C51最小应用系统模块,用导线连接P3.0、P3.1到串行静态显示模块的DIN、
CLK端。
2.安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片
机插座中,打开模块电源,插上仿真器电源插头。
3.启动计算机,打开仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU
类型;选择通信端口,测试串行口功能。
第 1 页 共 4 页
4.对编写的源程序进行编译,下载到单片机中,全速运行程序,若程序无误,用5LED
显示“89C51”。程序运行时显示不变,说明静态显示模块具有数据锁存功能。
第 2 页 共 4 页
11111aaaaa22222aaaaabbbbb33333cccccfbfbfbfbfb44444gggggddddd55555eeeeeececececec66666ddpddpddpddpddpfffff77777ggggg88888dpdpdpdpdp
1010101010
99999
20202020201313131313AQ0AQ0AQ0AQ0AQ02424242424BQ1BQ1BQ1BQ1BQ155555Q2Q2Q2Q2Q266666Q3Q3Q3Q3Q31010101010Q4Q4Q4Q4Q4811811811811811CLKQ5CLKQ5CLKQ5CLKQ5CLKQ51212121212Q6Q6Q6Q6Q6913913913913913MRQ7MRQ7MRQ7MRQ7MRQ7
74LS16474LS16474LS16474LS16474LS164
第 3 页 共 4 页
1. 说出静态显示与动态显示各有何特点? 2.采用串/并转换方式驱动数码管与直接用并口驱动数码管相比有哪些优
点?
第 4 页 共 4 页
范文二: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 在一秒钟内点亮不少于 30次,其效果和一直点亮相差不多。
四、实 验 过 程
1、设置实验电路图
选择 按钮,从库中选取器件 AT89C52、 RESPACK-8、 7SEG-MPX8-CC-BULE ,其中 RESPACK-8作上拉电阻,起稳压作用, 7SEG-MPX8-CC-BULE 为 8段共阴数码管。其实验电路图如图 3所示。
图 3 实验电路图
2、建立 KEIL 和 PROTEUS 项目的过程
首先选择 按钮,建立新项目;其次选择 按钮,编写完整的程序代码后,保存为 .c 文件;
之后选择 按钮,在 选项中勾选 ,生成 HEX 文件,最后经过加载、翻译完成 Keil 和 Proteus 的建立。
五、实 验 内 容 及 结 果
1、在左边第 3位显示 5。
程序代码为:
#include main() { P2=0xfb; P0=0x6d; } 程序运行结果如图 4所示 图 4 运行结果 1 2、在左边第 2位循环显示 1-8。 程序代码为: #include unsigned char code tab[]= {0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; main() { unsigned int i; while(1) { for(i=0;i<8;i++)>8;i++)> P2=0xfd; P0=tab[i]; delay(200); } } } 程序运行结果如图 5所示 图 5 运行结果 2 3、同时显示 12345678。 程序代码为: #include unsigned char code tab1[]= {0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; unsigned char code tab2[]= {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; main() { unsigned int i; while(1) { for(i=0;i<8;i++)>8;i++)> P2=tab2[i]; P0=tab1[i]; delay(5); } } } 程序运行结果如图 6所示 图 6 运行结果 3 4、一个开关控制(开始) 8跑马 8次 程序代码为: #include { unsigned char a; unsigned int i,j; if(P32==0) P2=0xfe; P0=0x7f; if(P32==1) { for(j=0;j<8;j++)>8;j++)> P2=0xfe; P0=0x7f; a=0x01; delay(200); for(i=0;i<7;i++)>7;i++)> if(P32==1) P2=P2<1; p2="">1;> P0=0x7f; delay(200); } } while(1) {P2=0xff;} } } 程序运行结果如图 7所示 图 7 运行结果 4 六、实 验 心 得 1、熟悉 keil 仿真软件、 proteus 仿真软件等的使用。 2、了解了 LED 数码管的电路结构与单片机的连接方法及原理,并掌握了用 proteus 构建 LED 数码管 显示电路图。 3、通过本次实验,加深了 keil 与 proteus 的使用以及对编写程序的方法,为之后的学习打下基础。 《微机实验》报告 实验名称 LED数码管显示实验 专业班级 姓名xxxxx 学号 联系方式 【实验目的】 理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。 【任务要求】 使用C8051F310单片机控制数码管显示器,要求利用末位数码管循环显示数字0-9,显示切换频率为1Hz。 【设计思路】 对振荡器信号频率进行8分频,再对定时器进行48分频,以使在一次定时时间范围内实现1s定时。采用查询方式进行定时。位选信号选定末位数码管不改变。利用顺序查表法逐个取出显示段码数据,寄存器R0的值自增1并赋与寄存器A以改变下一次显示所取的段码数据(查表过程使用代码“MOVC A, @A+DPTR”)。当寄存器R0的值增至09H后,跳转至开头,重新开始下一轮显示。 【资源分配】 利用查表方式取显示数据段码,段码数据置于数据表TABLE中。工作寄存器R0所存数Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave 据用于调整查表操作所取数据及决定是否开始下一轮的显示。数据指针DPTR用于查表。P1 口用于输出显示数据段码信号。定时器T0用于实现1s定时。 【流程图】 开始 查表准备 DPTR?TABLE 置T0计数初值 选定末位数码管 R0?00H 取段码数据 启动定时器 N 等待中断 TF0=0, Y 重置T0初值 R0=09H, Y N Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave INC R0 【源代码】 ; ;------------------------------------ ;- Generated Initialization File -- ;------------------------------------ ;-------------------------------------- ;Desgined by :xxxxx ;Date: 11月7号 ;class: xxxxx ;number:xxxxx ;-------------------------------------- $include (C8051F310.inc) ORG 0000H LJMP MAIN ORG 1000H CLR P3.1 MAIN: LCALL Init_Device ;设备初始化 CLR P3.1 ;关闭蜂鸣器 MOV SP ,#60H ;设置堆栈保护现场 MOV DPTR ,#TABLE ;通过dptr访问数据表table CLR P0.6 ;选择最后一个数码管显昃数字 CLR P0.7 MOV TMOD ,#01H ;设定定时器工作方式0 MOV TH0,#06H ;给定使砌设订初值 Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave MOV TL0,#0C6H ;通过R0实现0到9的递增 BEGIN:MOV R0,#00H MOV A ,R0 MOVC A ,@A+DPTR MOV P1,A ;数码管显示数据 SETB TR0 ;启动定时器 YICHU: JNB TF0,YICHU ;判断是否溢出 CLR TR0; ;停止计时 CLR TF0; ;溢出位复位 CJNE R0, #09H,CONTINUE ;未溢出时继续显示 SJMP BEGIN ;溢出返回执行 CONTINUE:INC R0 ;R0++ MOV A,R0 MOVC A,@A+DPTR MOV P1,A SETB TR0 SJMP YICHU TABLe: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H ; 表中存放的0-9 ; Peripheral specific initialization functions, ; Called from the Init_Device label PCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h ret Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave Timer_Init: mov TMOD, #001h mov CKCON, #002h ret Port_IO_Init: ; P0.0 - Unassigned, Push-Pull, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Push-Pull, Digital ; P0.3 - Unassigned, Push-Pull, Digital ; P0.4 - Unassigned, Push-Pull, Digital ; P0.5 - Unassigned, Push-Pull, Digital ; P0.6 - Unassigned, Push-Pull, Digital ; P0.7 - Unassigned, Push-Pull, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 - Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov P0MDOUT, #0FDh mov XBR1, #040h Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave ret ; Initialization function for device, ; Call Init_Device from your main program Init_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init ret end 【程序测试方法与结果、软件性能分析】 1、软件仿真结果 P0(选定末位数码管) P1(0~9显示数据输出信号) 0 Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave 1 2 3 4 Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave 5 6 7 8 Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave 9 2、硬件运行结果 Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave 【思考题】 ?数码管采用动态驱动方式时刷新频率应如何选择,为什么, 答:利用人眼视觉暂留效应,若在一定时间范围内,数码管笔端 频率越快,则人眼看不出闪烁。因此,需选择刷新频率高一些, 则可看清楚数字。 Shen Longbao look in the eyes, for a chance to kill him. Shen Longbao behind smart to keep gendarmes, picked up a brick reservoir in cotton vest, walked into a small alley corner, seeing four weeks nobody will step up and pulled out bricks Asahi on military police knocked down. Unsuspecting Japanese military police was flaccid paralysis. Shen Longbao picked the Japanese military police gun in cotton vest, leave .model tiny com_add equ 0F003H PA_add equ 0F000H pb_add equ 0f001h .stack 100 .data led_tab db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h db 7fh,6fh,77h,7ch,39h,5eh,79h,71h count db 0 .code start:mov ax,@data mov ds,ax nop mov dx,com_add mov al,80H out dx,al mov count,00h lea bx,led_tab start1: mov al,count and al,ofh xlat inc count call dis jmp start1 dis proc near mov cx,100 dis_1: call dis8 loop dis_1 ret dis endp dis8 proc near push cx mov cx ,8 mov ah,ofeh dis8_1:mov dx,pa_add out dx,al mov dx,pb_add xchg al,ah out dx,al xchg al ,ah call dl1ms rol ah,1 loop dis8_1 pop cx ret dis8 endp dl1ms proc near push cx mov cx,240 dl1ms1:loop dl1ms1 pop cx ret dl1ms endp end start 连线说明: ;A3 区:CS1----B4区:cs(8255) ;A0、AL-----A0 、A1 ;JP56(PA口)------G5区:B ;JP53(PB口)------G5区:C 《微机实验》报告 实验名称 LED数码管显示实验 专业班级 姓名xxxxx 学号 联系方式 【实验目的】 理解LED 七段数码管的显示控制原理,掌握数码管与MCU 的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。 【任务要求】 使用C8051F310单片机控制数码管显示器,要求利用末位数码管循环显示数字0-9,显示切换频率为1Hz 。 【设计思路】 对振荡器信号频率进行8分频,再对定时器进行48分频,以使在一次定时时间范围内实现1s 定时。采用查询方式进行定时。位选信号选定末位数码管不改变。利用顺序查表法逐个取出显示段码数据,寄存器R0的值自增1并赋与寄存器A 以改变下一次显示所取的段码数据(查表过程使用代码“MOVC A, @A+DPTR”)。当寄存器R0的值增至09H 后,跳转至开头,重新开始下一轮显示。 【资源分配】 利用查表方式取显示数据段码,段码数据置于数据表TABLE 中。工作寄存器R0所存数 据用于调整查表操作所取数据及决定是否开始下一轮的显示。数据指针DPTR 用于查表。P1口用于输出显示数据段码信号。定时器T0用于实现1s 定时。 【流程图】 【源代码】 ; ;------------------------------------ ;- Generated Initialization File -- ;------------------------------------ ;-------------------------------------- ;Desgined by :xxxxx ;Date: 11月7号 ;class: xxxxx ;number :xxxxx ;-------------------------------------- $include (C8051F310.inc) ORG 0000H LJMP MAIN ORG 1000H CLR P3.1 MAIN: LCALL Init_Device ;设备初始化 CLR P3.1 ; 关闭蜂鸣器 MOV SP ,#60H ;设置堆栈保护现场 MOV DPTR ,#TABLE ;通过dptr 访问数据表table CLR P0.6 CLR P0.7 ; 选择最后一个数码管显昃数字 MOV TMOD ,#01H ;设定定时器工作方式0 MOV TH0,#06H ; 给定使砌设订初值 MOV TL0,#0C6H BEGIN:MOV R0,#00H ;通过R0实现0到9的递增 MOV A ,R0 MOVC A ,@A+DPTR MOV P1,A ;数码管显示数据 SETB TR0 ;启动定时器 YICHU: JNB TF0,YICHU ;判断是否溢出 CLR TR0; ; 停止计时 CLR TF0; ;溢出位复位 CJNE R0, #09H,CONTINUE ;未溢出时继续显示 SJMP BEGIN ;溢出返回执行 CONTINUE:INC R0 ;R0++ MOV A,R0 MOVC A,@A+DPTR MOV P1,A SETB TR0 SJMP YICHU TABLe: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H ; ; Peripheral specific initialization functions, ; Called from the Init_Device label PCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h ret 表中存放的0-9 Timer_Init: mov TMOD, #001h mov CKCON, #002h ret Port_IO_Init: ; P0.0 - Unassigned, Push-Pull, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Push-Pull, Digital ; P0.3 - Unassigned, Push-Pull, Digital ; P0.4 - Unassigned, Push-Pull, Digital ; P0.5 - Unassigned, Push-Pull, Digital ; P0.6 - Unassigned, Push-Pull, Digital ; P0.7 - Unassigned, Push-Pull, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 - Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov P0MDOUT, #0FDh mov XBR1, #040h ret ; Initialization function for device, ; Call Init_Device from your main program Init_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init ret end 【程序测试方法与结果、软件性能分析】 1、软件仿真结果 P0(选定末位数码管) P1(0~9显示数据输出信号) 0 1 2 3 4 6 7 8 2、硬件运行结果 【思考题】 ●数码管采用动态驱动方式时刷新频率应如何选择?为什么? 答:利用人眼视觉暂留效应,若在一定时间范围内,数码管笔端 频率越快,则人眼看不出闪烁。因此,需选择刷新频率高一些,则可看清楚数字。 转载请注明出处范文大全网 » LED数码管显示实验范文三:LED数码管显示实验
范文四:八段数码管实验
范文五:LED数码管显示实验