单片机课程设计-8位8段LED数码管动态扫描显示资料
单片机课程设计-8x8LED点阵显示的技术
郑州科技学院《单片机》课程设计题目8x8LED点阵显示的技术学生姓名X X X专业班级电气工程及其自动化X班学号XXXXXX院(系)电气工程学院指导教师X X完成时间2015 年XX 月X 日目录1 设计目的 (3)2 设计任务及要求 (3)3 设计方案 (3)4 设计原理及功能说明 (4)5 元器件的介绍及选用 (5)6单元电路设计说明 (9)7 硬件的焊接与调试 (11)7.1元器件焊接 (11)7.2电路调试 (12)8 软件介绍 (13)9 设计总结 (14)参考文献 (16)附录1:总体电路原理图 (17)附录2:实物图 (18)附录3:元器件清单 (19)1 设计目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期一周的单片机课程设计。
通过实际操作使我们在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。
单片机课程设计的目的是培养我们综合设计的能力,训练学生灵活应用所学知识,独立完成问题分析、总体设计和编程实现等软硬件开发全过程的综合实践能力。
巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的学习作风。
为今后学习其他计算机课程打下基础。
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将书本上的理论知识和工作、生产实际有机结合起来,从而锻炼学生分析问题、解决实际问题的能力,提高学生的编程能力和创新意识。
2 设计任务及要求利用8x8点阵显示屏,自己设计、焊接并调试电路板,实现单片机的控制下,点阵显示“电子设计”,显示方式分别为左右滚动显示、上下滚动显示。
系统功能说明:系统在正常工作模式下为上下左右循环显示“滚动光柱”,当按下复位开关时点阵显示屏开始上下左右各三次循环显示。
在点阵显示过程中按下复位开关后单片机复位,程序从新开始。
3 设计方案本设计采用STC89C52单片机作为主控制器,外部加数码管显示。
stm328位数码管动态扫描说明书
S T M328位数码管动
态扫描说明书
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
8位数码管动态扫描说明书
一:原理图
数码管电路图
LED数码管引脚定义
二:工作原理
数码管中的A~G、DP段分别连接到电路图中的A~G、H线上,当某段上有一定的电压差值时,便会点亮该段。
当E3输入为1,也就是LED_SEL输入为0时,根据SEL0~SEL2的值确定选中的数码管,即位选,再根据A~H引脚的高低电平,点亮对应段,即段选。
寄存器的具体说明可参考《STM32中文参考资料》。
三:实验现象及操作
对于给出的8位数码管动态扫描案例,下载后,在开发板上可观察到8个数码管从左至右依次显示对应的数字,且每一个数码显示的数字在1-9之间循环。
无其他操作。
可以通过加快扫描频率,使得八位数码管在人眼看上去是同时显示。
在后续的案例中可以看到该现象。
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--;}}。
单片机8位数码管动态显示数据
j=0;
num++;
if(num==9)
num=0;
}
}
}
/*------------------------------------------------
延时函数,含有输入参数unsigned int t,无返回值
unsigned int是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
主函数
------------------------------------------------*/
main()
{
unsigned char i=来自,num;unsigned int j;
while(1)
{
DataPort=WeiMa[i]; //取位码
LATCH2=1; //位锁存
LATCH2=0;
#define DataPort P0 //定义数据端口程序中遇到DataPort则用P0替换
sbit LATCH1=P2^6;//定义锁存使能端口段锁存
sbit LATCH2=P2^7;//位锁存
unsigned char code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示段码值0~F
单片机8位数码管动态显示数据
编写:szjcdz
日期:2010.9
八位数码管动态扫描案例原理与测试说明
“八位数码管动态扫描”案例原理与测试说明
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)本案例无需辅助操作。
单片机课程设计-8位8段LED数码管动态扫描显示资料
华南理工大学广州汽车学院单片机课程设计题目:8位8段LED数码管动态扫描专业:电子信息工程班级:09电信(1 )班姓名:付锦辉学号:200930062745一、内容要求:在8位8段LED数码管显示8.8.8.8.8.8.8.8.”持续500ms,之后灭显示器200ms;然后显示“ WELCOM-1 ”(由于8位8段LED数码管显示不能显示字母 W 和M,所以改为显示“ HELLO-93 ”)二、目的和意义1、掌握数码管动态扫描显示原理及实现方法。
2、掌握动态扫描显示电路驱动程序的编写方法。
三、总体方案设计思路LED 数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,再选通相应的数码管后,即显示字段上得到显示字形码。
这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。
动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。
其接口电路是把所有显示器的 8 个笔画段 A-DP 同名端并联在一起,而每个显示器的公共极 COM 各自独立地接受 I/O 线控制, CPU 向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM 端,而这一端是由 I/O 控制的,所以就可以自行决定何时显示哪一位了。
而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的 COM 端,使各个显示器轮流点亮。
再轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是一组稳定的显示数据,不会有闪烁感。
采用总线驱动器 74HC245 提供 LED 数码管的段驱动,输出高电平时点亮相应段;采用集电极开路的BCD-十进制译码器/驱动器完成LED数码管位驱动,输出低电平时选通相应位。
P2 口每个口线输出灌电流不足以驱动一个数码管显示器的位-公共极,所依通过集电极开路的BCD-十进制译码器/驱动器7445驱动,即节约P2 口线,又增加驱动能力。
八段数码管显示实验
八段数码管显示实验报告一.设计目的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 StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ; 延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #01call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管 retStart:mov sp, #40hmov Num, #0MLoop:inc Nummov a, Nummov b, amov r0, #LEDBufFillBuf:mov a, banl a, #0fhmov dptr, #LEDMapmovc a, @a+dptr ; 数字转换成显示码mov @r0,a ; 显示在码填入显示缓冲inc r0inc bcjne r0, #LEDBuf+6, FillBufmov DelayT,#30DispAgain:call DisplayLED ; 显示djnz DelayT,DispAgainljmp MLoopend四.设计步骤1.根据任务书中的系统性能要求,设计实验流程框图;2.学习课程设计相关的原理知识,特别是数码管动态显示的原理;3.对设计出的流程框图,使用汇编语言完成源代码的编写;4.在实验箱配套软件上完成汇编程序的初步调试;5.连接实验箱,完成系统功能性测试;6.完成课程设计报告,报告内容包括:a、程序设计流程框图;b、说明设计的依据;c、记录程序测试的过程;d、说明实验过程中遇到的问题和解决的方法。
单片机课程设计位段LED数码管动态扫描显示
经验分享:注意编程细节,避免出现错误
心得体会:实践操作过程中,需要耐心和细心,遇到问题要及时解决
建议:多参考相关资料,提高编程能力,积累经验
PART SEVEN
设计目标:实现LED数码管动态扫描显示
设计方法:采用单片机控制,实现动态扫描显示
设计难点:如何实现动态扫描显示,如何控制LED数码管
设计成果:成功实现LED数码管动态扫描显示,提高了显示效果和效率
设计目标:实现LED数码管动态扫描显示
设计思路:采用单片机控制,实现LED数码管的动态扫描显示
电源电路设计:设计电源电路,如使用稳压芯片等
连接电路设计:设计连接电路,如使用杜邦线等
调试电路:调试电路,确保硬件电路正常工作
单片机选择:选择合适的单片机型号,如51系列、AVR系列等
数码管选择:选择合适的数码管型号,如共阴极、共阳极等
连接电路:将单片机与LED数码管、面包板等连接起来
解决方法:检查电路连接是否正确,电源电压是否稳定
解决方法:检查程序逻辑是否正确,是否有死循环或内存溢出
解决方法:检查LED数码管是否损坏,电源电压是否过低
解决方法:检查下载线是否连接正确,单片机是否处于下载模式
实践操作:熟悉单片机编程,掌握LED数码管动态扫描显示原理
单片机:选择合适的单片机型号,如514段等
驱动电路:设计驱动电路,如使用三极管、MOS管等
静态扫描:每个LED数码管轮流点亮,亮度较低,但显示稳定
动态扫描:多个LED数码管同时点亮,亮度较高,但显示不稳定
混合扫描:结合静态和动态扫描,提高显示效果和稳定性
单片机:选择合适的单片机型号,如51系列、AVR系列等
LED数码管:选择合适的LED数码管型号,如7段、14段等
数码管动态显示教案
电子综合设计实训题目数码管动态显示 _ 姓名专业学号指导教师郑州科技学院电气工程学院目录摘要 (I)1背景 (1)1.1介绍 (1)1.2设计步骤 (2)2 设计思路 (3)2.1方案对比 (3)3元件的选择 (6)3.1单片机 (6)3.2 显示元器件的选择 (6)4 设计原理及功能说明 (8)4.1 各部分功能说明 (8)5 装配与调试 (14)5.1装配 (14)5.2调试 (14)6 总结 (15)附录 (17)附录一:元件清单 (17)附录二:电路源程序 (17)数码管动态显示的设计摘要本文介绍了一种基于AT89C51单片机的8个数码管滚动显示单个数字的设计,让八位数码管滚动显示0、1、2、3、4、5、6、7,我们以液晶显示技术的发展为背景,选择了比较常用的液晶数码管显示模块,利用了单片机控制数码管模块的显示机理。
研究学习AT89C51单片机其功能,对学习过的单片机,C语言课程进行巩固,设计一款在8只数码管上流动显示单个数字的程序,并用PROTEUS进行电路设计和实时仿真。
该电路有两部分组成:AT89C51单片机和显示模块组成。
AT89C51单片机具有超低功耗和CPU外围的高度整合性;显示模块数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极,方便易用。
实际应用中不需要外部任何元器件即可实现,具有接口电路简单、可靠,易于编程的特点,抗干扰性好等特点。
单片机技术使我们可以利用软硬件实现数码管准确显示各种数码。
而且这种技术相对简单,性价比较高,在我们生活中应用很广泛,具有一定的发展前景。
关键词:AT89C51单片机;数码管;滚动显示1背景1.1介绍随着电子技术的发展,特别是新型集成电路、分立元件的不断投入市场,使得人们对电子技术应用的关注程度已大大超过了电子技术本身。
在计时,自动报时及自动控制等领域发挥着重要的作用,在人们的日常生也愈加离不开数字化的各种生活用品,电子技术深入到社会生活的各个角落。
数码管流动显示12345678
学号天津城建大学嵌入式系统及应用课程设计设计说明书数码管流动显示12345678起止日期:2015 年11月15日至2015 年11月27 日学生姓名班级成绩指导教师(签字)计算机与信息工程学院2015年11 月27 日课程设计报告书题目: 数码管流动显示12345678学生姓名:学生学号:院名:专业:任课教师:目录摘要 (II)第一章课设总述 (1)1.1单片机概述 (1)1.3课题研究的目的和意义 (1)1.4课题的主要研究工作 (1)第二章系统硬件介绍及设计 (2)2.1AT89C51简介 (2)1.2数码管7SEG-COM-AN-BLUE介绍(7段数码管) (3)2.2硬件电路图 (4)2.3元件清单 (4)第三章系统软件设计 (5)3.1程序描述 (6)3.2程序流程图 (6)第四章系统调试 (7)4.1在PROTEUS中仿真 (7)参考文献 (7)摘要1.内容:利用动态扫描让八位数码管稳定的显示1、2、3、4、5、6、7、82.目标:(1)掌握单片机控制八位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让八位数码管稳定的显示12345678。
(2)用PROTEUS进行电路设计和实时仿真3.知识点链接(1)数码管动态扫描(动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线s一位数码管有效。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
(2)总线的应用元器件与总线的连线P0口的接线采用总线方式,详细如电路图1所示。
①选择总线按钮②绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。
如果终点在空白处,左键双击结束连线。
画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。
此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。
8位动态LED数码管显示实验(精)
8位动态LED数码管显示实验(精)8位动态LED数码管显示实验2008-03-18 18:048.1 实物图与原理图本实验仪配置带8位动态扫描显示模块一个。
实物图如下:为减少IO的使用,我们采用串入并出芯片CD4094来扩展了IO 口,即采用3个IO来实现数据的传输。
原理图如下:所以,我们占用3个IO来传输数据,8个IO来进行8个LED数码管的位选。
在本实验仪中链接管教分布如下:STK-----P2.5DAT-----P2.6CLK-----P2.7B0、B1、B2、B3、B4、B5、B6、B7接P0口(P0.0 P0.1 P0.2 P0.3 P0.4 P0.5P0.6 P0.7)由于上一节已经讲述了CD4094驱动一位LED数码管的问题,这里我们讲如何来扫描8位数码管。
8.2 LED动态显示原理根据原理图管脚连接,我们知道P0口控制了8个LED数码管的位选中,所以如果想让8个数码管都亮起来,我们可以逐位扫描8位数码管。
动态显示原理:原理上同一时刻只有一位LED是点亮的,但只要扫描的频率足够高(一般大于25Hz),由于人眼的视觉暂留特性,直观上感觉却是连续点亮的,这就是常说的动态扫描显示。
动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。
如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,所以一般均取几个ms左右为宜。
8.3 DG3000 动态显示头文件display_s.h//----------------------------------------------------------//程序作用:显示头文件display_s.h//----------------------------------------------------------#ifndef _display_#define _display_#includesbit SDA=P2^6; //定义显示管脚sbit CLK=P2^7;unsigned char data display_bit;unsigned char codeled[20]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x 89,0x8C };//定义段码//延时程序void delay(unsigned int k){ unsigned int i,j;for(i=0;i<k;i++)< bdsfid="131" p=""></k;i++)<>for(j=0;j<100;j++);}//数据传输void send(unsigned char a){unsigned char i;for(i=0;i<8;i++){if(_crol_(a,i)&0x80)SDA=1;elseSDA=0;CLK=0;CLK=1;}}//显示程序 8位LED数码管扫描void display(unsigned chardisplay_buffer[8]){unsigned char i,k;display_bit=0xfe;for(i=0;i<8;i++){k=led[display_buffer[i]];send(k);P0=display_bit;delay(0x01);P0=0xff;display_bit=_crol_(display_bit,1);}display_bit=0xfe;8.4 8位数码管动态显示01234567(C51程序)//----------------------------------------------------------//程序作用:动态扫描显示01234567//---------------------------------------------------------- #include#include //调用显示头文件main(){unsigned chara[8]={0x0,0x1,0x2,0x3,0x4,0x5,0x6, 0x7};//显示01234567 while(1){display(a); //显示数据}}。
8位数码管动态显示电路设计
电子课程设计——8位数码管动态显示电路设计学院:电子信息工程学院专业、班级:自动化姓名:学号:指导教师:2014年12月目录一、设计任务与要求...................... 错误!未定义书签。
二、总体框图............................ 错误!未定义书签。
2.1、设计思想....................... 错误!未定义书签。
2.2、设计方案....................... 错误!未定义书签。
2.3、对方案的分析................... 错误!未定义书签。
三、选择器件 (4)3.1、实验所需器件: (4)3.2、器件说明: (4)四、功能模块 (7)4.1、脉冲模块设计 (7)4.2、扫描电路模块设计 (8)4.3、显示电路模块设计 (9)五、总体设计电路图 (10)5.1总体设计原理 (10)5.2、总体设计电路图 (11)5.3、仿真结果 (11)5.4、硬件实验 (13)六、心得体会 (14)8位数码管动态显示电路设计一、设计任务与要求1.设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。
(第一至第八个数码管依次显示1、2、3、4、5、6、7、8)2.要求在某一时刻,仅有一个LED数码管发光。
3.该数码管发光一段时间后,下一个LED发光,这样8只数码管循环发光。
4.当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。
5.研究循环地址码发生器的时钟频率和显示闪烁的关系。
二、总体框图2、1、设计思想电路有八种显示状态,在第一脉冲周期内,第一个数码管显示1;第二个脉冲周期内,第二个数码管显示2;在第三脉冲周期内,第三个数码管显示3;第四个脉冲周期内,第四个数码管显示4;在第五脉冲周期内,第五个数码管显示5;第六个脉冲周期内,第六个数码管显示6;在第七脉冲周期内,第七个数码管显示7;第八个脉冲周期内,第八个数码管显示8。
(单片机实验教学资料)5.数码管动态显示
实验效果上,学生能够通过实际操作掌握数码管动态显示 的方法,提高对单片机的应用能力。在实验过程中,需要 注意避免数码管亮度过高导致视觉疲劳,以及保证程序的 稳定性,避免出现闪烁或乱码现象。
展望
技术发展与新应用
教学改进与新方法
个人能力提升与拓展
随着技术的不断发展,数码管动态显 示技术将会有更多的应用领域。例如 ,在智能家居、物联网等领域中,数 码管动态显示可以作为人机交互界面 ,实现更加直观、高效的信息展示。
或字符。
数码管内部通常有8个LED段, 分别表示数字0-9和字母A-F。
当给某个LED段加上正向电压时, 该段点亮;反之,则熄灭。
动态显示与静态显示的区别
静态显示
每个数码管在某一时刻只显示一 个字符,需要使用多路复用技术 来控制多个数码管。
动态显示
通过轮流点亮不同的数码管,使 多个数码管同时显示不同的字符 ,实现多位显示。
实验结果展示
结果1
数码管成功显示数字或字母,无闪烁 或错位现象。
结果2
数码管显示效果不理想,存在闪烁或 错位现象。
结果分析
分析1
程序编写正确,数码管连接无误,因此数码管能够正确显示数字或字母。
分析2
程序中存在延时函数设置不当或数码管连接存在问题,导致数码管显示效果不 理想。
05
总结与展望
总结
发送控制信号
02
根据需要显示的内容,编写程序代码以向数码管发送相应的控
制信号。
刷新显示
03
在需要动态显示的情况下,编写程序代码以实现数码管的刷新
显示。
数码管驱动程序的编写
确定驱动程序功能
根据实际需求,确定驱动程序应具备的功能,如显示数字、字母 或自定义字符等。
单片机控制8位数码管显示秒表课程设计
长沙学院《单片机原理及应用》课程设计说明书题目 LED数码管显示电子秒表设计系(部) **系专业(班级) *************姓名邹部长9931学号******指导教师***起止日期 2016.12.19—2016.12.24《单片机原理及应用》课程设计任务书1系(部):**系专业:******长沙学院课程设计鉴定表目录摘要 (5)第一章概述 (6)1.1电子秒表的设计要求 (6)1.2电子秒表的电路图 (6)1.3电子秒表的设计原理及方案 (7)第二章电子秒表的程序设计 (8)2.1 程序设计流程图 (8)2.2程序设计源代码 (10)第三章程序的调试 (16)第四章设计总结 (17)参考文献 (18)摘要随着经济与社会的发展对智能化和信息化技术要求的不断提高,单片机作为智能控制的核心,逐渐渗透到社会生产和生活的各个方面。
而本文则主要阐述基于单片机设计的数码管秒表,这次设计所采用的的单片机为stc89c52单片机,数码管则是使用2个4位共阴LED数码管组成的8位。
为减少I/O口,而使用了SM74HC138 和74HCT573这2片芯片实现数码管显示8位数据。
利用单片机内部定时器实现计时功能,分别显示为:分—秒—0.01秒。
控制则是使用一键控制,可实现计时开始,计时暂停,计时清零3个功能的循环。
本次的程序设计采用C语言编写,包括显示程序,定时中断服务程序,延时程序。
最后在单片机电路板来观察工作状态。
第一章概述1.1电子秒表的设计要求○1显示要求在初始状态显示的是00—00—00,最左边的2位显示分钟,中间2位显示秒,左边2位显示十分之一秒和百分之一秒,还有个2个LED数码管只显示中间那一段,用作间隔符。
○2然后还的有一个键用来控制秒表,要求按第一下开始计时,按第二下暂停计时,按第三下清零,以此往复循环控制。
○3使用单片机T0方式实现计时0.01秒。
1.2电子秒表的电路图1.3电子秒表的设计原理及方案设计原理根据单片机本身的定时计数器实现1秒的计时。
单片机控制8X8LED点阵显示程序
单片机控制8X8LED点阵滚动显示数字0-9 LED是light-emitting diode的缩写,在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。
PN 结加反向电压,少数载流子难以注入,故不发光。
这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。
LED电子显示屏作为一种现代电子媒体,以其灵活的显示面积(可分割、任意拼装)、高亮度、长寿命、大容量、数字化、实时性的特点,是其他任何一种媒体所不可替代的。
LED电子显示屏充分运用现代信息技术,将声、光、电、机等学科整合并完美组合、集视频、动画、字幕、图片于一体的高科技信息发布的终端产品。
LED显示屏还可延伸到网络、通讯、综合布线、监控、广播等弱电系统。
LED点阵一般采用扫描式显示,实际运用分为三种方式:(1)点扫描;(2)行扫描;(3)列扫描。
若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。
若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。
此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED 亮度会不足。
今天做一个简单的点阵显示实验,使点阵模块循环向左滚动反显数字0-9,即数字是对应的LED是不亮的,其余的是亮的!我们使用的是8*8点阵的型号是PAL48SB。
PAL48SB点阵参数如下:发光尺寸:Φ4.8mm,列行:8×8,发光颜色:高亮红绿双色,极性:共阳,散射剂:透明,表面黑色。
表面大小:48×48×9.2mm,双列12脚,位距:2.54×11=27.94mm。
点阵外形图和其内部的连线图如下图所示!上下分别为0DF3A1GH和25E7CB64。
单独的8*8点阵是没法工作的。
下面我们做一个点阵模块,它可以直接通过排线接到单片机的I/O口上!让我们来做一个点阵模块。
八位数码管动态扫描实验
8位数码管动态扫描实验(1) 实验目的:学习计数器器的设计、分析和测试方法。
学习硬件扫描显示电路的设计方法。
(2) 实验原理:如图1所示的是8位数码扫描显示电路,其中每个数码管的8个段:h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别由8个选通信号k1、k2、…k8来选择。
被选通的数码管显示数据,其余关闭。
如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。
根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1、k2、…k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。
图1数码管动态扫描原理图(3)实验内容1:如图2所示,为数码管动态扫描电路结构图,用VHDL语言描述一个数码管动态扫描显示电路,在数码管上显示 1 2 3 4 5 6 7 8,在QuartusⅡ上进行编译、综合、适配、仿真,给出其所有信号的时序仿真波形,下载至试验箱,观看结果。
电路模式不限,引脚图参考附录图12。
将试验箱左下方的拨码开关全部向上拨,时钟CLK可选择clock0,通过跳线选择16384Hz信号。
图2 数码管动态扫描电路结构图(4)实验内容2:以下为数字钟的VHDL程序,输入时钟12MHZ,输出为秒低位、秒高位、分低位、分高位、时低位、时高位。
结合实验内容一的程序,把上述的秒低位、秒高位、分低位、分高位、时低位、时高位在数码管1 2 4 5 7 8上显示出来。
--数字钟Library IEEE;Use IEEE.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Use IEEE.std_logic_arith.all;Entity clock isPort( clk: in std_logic;secL: out std_logic_vector(3 downto 0);secH: out std_logic_vector(3 downto 0);minL: out std_logic_vector(3 downto 0);minH: out std_logic_vector(3 downto 0);houL: out std_logic_vector(3 downto 0);houH: out std_logic_vector(3 downto 0));end clock;architecture arch of clock issignal clk_1s : std_logic;signal count : integer range 0 to 11999999;signal counter :std_logic_vector(2 downto 0);signal datain :std_logic_vector(31 downto 0);signal dataout: std_logic_vector(3 downto 0);signal tsecL,tsecH,tminL,tminH,thouL,thouH: std_logic_vector(3 downto 0); beginprocess (clk) --分频器,产生秒脉冲beginif clk'event and clk='1' thenif count=count'high then count<=0;else count<=count+1;end if;end if;end process;process (clk)beginif clk'event and clk='1' thenif count>=count'high/2 then clk_1s<='1';else clk_1s<='0';end if;end if;end process;process (clk_1s) --计时器beginif clk_1s'event and clk_1s='1' thenif tsecL = "1001" thentsecL <= "0000";if tsecH = "0101" thentsecH <= "0000";if tminL = "1001" thentminL <= "0000";if tminH = "0101" thentminH <= "0000";if thouH = "0010" and thouL = "0011" thenthouH <= "0000";thouL <= "0000";elsif thouL = "1001" thenthouL <= "0000";thouH <= thouH + 1;else thouL <= thouL + 1;end if;else tminH <= tminH + 1;end if;else tminL <= tminL + 1;end if;else tsecH <= tsecH + 1;end if;else tsecL<=tsecL+1;end if;end if;end process;secL <= tsecL;secH <= tsecH;minL <= tminL;minH <= tminH;houL <= thouL;houH <= thouH;end arch;。
8位数码管动态显示电路设计
电子课程设计—8位数码管动态显示电路设计学院:电子信息工程学院专业、班级:姓名:学号:指导老师:2014年12月目录一、设计任务与要求................................................. (3)二、总体框图................................................. (3)三、选择器件................................................. (3)四、功能模块................................................. (9)五、总体设计电路图................................................. . (10)六、心得体会.................................................. .. (12)8位数码管动态显示电路设计一、设计任务与要求1. 设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。
2. 要求在某一时刻,仅有一个LED数码管发光。
3. 该数码管发光一段时间后,下一个LED发光,这样8只数码管循环发光。
4. 当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。
5、研究循环地址码发生器的时钟频率和显示闪烁的关系。
二、总体框图设计的总体框图如图2-1所示。
图2-1总体框图三、选择器件 1、数码管数码管是一种由发光二极管组成的断码型显示器件,如图1所示。
U13DCD_HEX图1 数码管数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED 的阴极连在一起,让其接地,这样给任何一个LED 的另一端高电平,它便能点亮。
八位数码管动态显示演示
*创建人:东流,2012年2月7日
*版本号:1.0
***********************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
/********************************************************************
*名称: Delay_1ms()
*功能:延时子程序,延时时间为1ms * x
*输入: x (延时一毫秒的个数)
*输出:无
***********************************************************************/
void Delay(uint i)
{
uint x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
}
/********************************************************************
*名称: Main()
*功能:数码管的显示
*输入:无
*输出:无
***********************************************************************/
8只数码管滚动显示单个数字设计报告
机电工程学院课程设计报告书题目: 8只数码管滚动显示单个数字专业:电气自动化技术班级: DQ 09302学号:学生姓名:杨超指导教师:朱晓玲2010 年12月30日摘要功能简介:1内容:利用动态扫描让八位数码管稳定的显示1、2、3、4、5、6、7、82目标:(1)掌握单片机控制八位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让八位数码管稳定的显示12345678。
(2)用PROTEUS进行电路设计和实时仿真3知识点链接(1)数码管动态扫描(动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线s一位数码管有效。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
(2)总线的应用元器件与总线的连线P0口的接线采用总线方式,详细如图------所示。
①选择总线按钮②绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。
如果终点在空白处,左键双击结束连线。
画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。
此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。
在画斜线时,需要关闭线路自动路径功能才好绘制。
Proteus的线路自动路径功能简称WAR,当选中两个连接点后,WAR将选择一个合适的路径连线。
WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。
③给与总线连接的导线贴标签PART LABELS与P0口相连的线标签名依次为P00—P06,本电路中的P0口的上拉电阻通过总线与P0口相连,数码管也是通过总线与P0口相连,这些都需要标注,以表明正确的电气连接。
单击绘图工具栏中的导线标签按钮,使之处于选中状态。
将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“×”号,表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图---所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华南理工大学广州汽车学院
单片机课程设计
题目:8位8段LED数码管动态扫描
专业:电子信息工程
班级:09电信(1)班
姓名:付锦辉
学号:200930062745
一、内容要求:
在8位8段LED数码管显示“8.8.8.8.8.8.8.8.”持续500ms,之后灭
显示器200ms;然后显示“WELCOM-1”(由于8位8段LED数码管显示不能显示字母W 和M,所以改为显示“HELLO-93”)
二、目的和意义
1、掌握数码管动态扫描显示原理及实现方法。
2、掌握动态扫描显示电路驱动程序的编写方法。
三、总体方案设计思路
LED数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,再选通相应的数码管后,即显示字段上得到显示字形码。
这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。
动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。
其接口电路是把所有显示器的8个笔画段A-DP同名端并联在一起,而每个显示器的公共极COM各自独立地接受I/O线控制,CPU向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。
而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。
再轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是一组稳定的显示数据,不会有闪烁感。
采用总线驱动器74HC245提供LED数码管的段驱动,输出高电平时点亮相应段;采用集电极开路的BCD-十进制译码器/驱动器完成LED数码管位驱动,输出低电平时选通相应位。
P2口每个口线输出灌电流不足以驱动一个数码管显示器的位-公共极,所依通过集电极开路的BCD-十进制译码器/驱动器7445驱动,即节约P2口线,又增加驱动能力。
四、仿真电路设计(电路原理图及关键单元说明)
8位8段LED数码管动态扫描显示实验电路
(1)AT89C52
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C5 2可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
(2)集电极开路bcd-十进制译码器/驱动器7445:
五、设计程序:
#include <intrins.h>
#include <REGX52.H>
#define TURE 1
#define dataport P0 /*定义p0为段输出口*/
#define ledConPort P2 /*定义p2为位输出口*/
unsigned char code ch[8]={0x76,0x79,0x38,0x38,0x3f,0x40,0x6f,0x4f}; /*HELLO-93'对应的值*/
//unsigned char code ch[9]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; /*LED灯0~8译码*/
void time(unsigned int ucMs);//延时单位:ms
void main(void)
{
unsigned char i,counter=0; /*各LED灯状态值数组的索引*/
for(i=0;i<30;i++){//1,显示"8.8.8.8.8.8.8.8.",即点亮显示器所有段,持续约500ms;
for(counter=0;counter<8;counter++)
{
ledConPort=counter;
dataport= 0xff; /*点亮选中的LED灯*/
time(5); /*延时5ms*/
}
}
ledConPort=0xff;
time(200); //2、灭显示器,持续约200ms
while(TURE) //3、显示"HELLO-93",保持.
{
for(counter=0;counter<8;counter++)
{
ledConPort=counter;
dataport= ch[counter]; /*点亮选中的LED灯*/
time(5);/*延时5ms*/
}
}
}
void delay_5us(void)//延时5us,晶振改变时只改变这一个函数! {
_nop_();
_nop_();
//_nop_();
//_nop_();
}
/*********** delay_5ous **************/
void delay_50us(void)
{
unsigned char i;
for(i=0;i<4;i++)
{
delay_5us();
}
/*********** 延时100us **************/
void delay_100us(void)//延时100us
{
delay_50us();
delay_50us();
}
/*********** 延时单位: ms **********/
void time(unsigned int ucMs)//延时单位: ms
{
unsigned char j;
while(ucMs>0){
for(j=0;j<10;j++) delay_100us();
ucMs--;
}
}
六、仿真调试:
在仿真过程中,用Proteus画图软件并没什么大的问题,都是很简单的操作,用keil编写程序是有很多错误,修改了很多次。
七、实际目标时情况:
在8位8段LED数码管显示“8.8.8.8.8.8.8.8.”持续500ms,之后灭
显示器200ms;然后显示“WELCOM-1”,在老师的要求的课程设计的题目中,要求显示的是“WELCOM-1”但是实际上8位8段LED数码管显示不了字母W和M,所以我最后参考实验书显示“HELLO-93”。
八、课程设计心得体会:
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在
这努力的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机掌握得不好,还有就是C语言,还是需要努力学习……通过这次课程设计之后,一定把以前所学过的知识重新温故。
课程设计真的有点累.然而,当我一着手清理自己的设计成果,漫漫回味这几周的心路历程,一种少有的成功喜悦即刻使倦意顿消.虽然这是我刚学会走完的第一步,也是人生的一点小小的胜利,然而它令我感到自己成熟的许多,另我有了一中”春眠不知晓”的感悟.通过课程设计,使我深深体会到,干任何事都必须耐心,细致.课程设计过程中,许多计算有时不免令我感到有些心烦意乱:有几次因为不小心我出错,只能毫不情意地重来.但一想起老师对我们耐心的教导,想到今后自己应当承担的社会责任,想到世界上因为某些细小失误而出现的令世人无比震惊的事故,我不禁时刻提示自己,一定呀养成一种高度负责,认真对待的良好习惯.这次课程设计使我在工作作风上得到了一次难得的磨练.
参考书籍:
《单片机应用系统设计技术》
《单片机原理与应用系统设计》。