8×8LED点阵显示数字0到9
点阵式LED“0-9”数字显示技术
目录第一章绪论 (2)第二章方案设计 (3)2.1 方案确定 (3)2.1.1 功能要求 (3)2.2.2 方案确定 (3)2.2 器件选择 (3)第三章硬件电路设计 (4)3.1 整体模块设计 (4)3.2 单片机最小系统设计 (4)3.2.1 晶振电路设计 (4)3.2.2 复位电路设计 (5)3.3 驱动电路设计 (6)3.4 LED点阵显示设计 (7)第四章软件电路设计 (10)4.1 软件设计思想 (10)4.2 主程序流程图 (13)第五章系统仿真与调试 (14)5.1 系统仿真 (14)5.2 性能分析 (14)结束语 (14)参考文献 (15)致谢 (15)附录 (16)第一章绪论LED是发光二极管LIGHT EMINTTING DIODE的英文缩写,是一种直接能将电能转化为可见光的半导体。
LED点阵是由发光二极管排列组成的显示器件,在日常生活中随处可见,其发光类型属于冷光源,效率及发热量是普通发光器件难以比拟的。
它采用低电压扫描驱动,具有耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远、可靠耐用、应用灵活、安全、响应时间短、绿色环保、控制灵活等特点。
随着社会经济的不断进步,人们对LED显示器的认识不断加深,其应用领域越来越广。
本设计是基于AT89C5151的8×8点阵LED数码字符显示器的设计,LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。
本文讲述了基于AT89C51单片机8×8 LED数码字符显示器的基本原理、硬件组成与设计,Proteus软件仿真,程序设计等基本环节与相关技术。
LED电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活。
适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所。
该项目广泛涉及了计算机及电子技术中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术,系统软件技术,接口及驱动等技术。
8×8LED点阵屏显示数字(韩余)详解
目录1 设计目的 (1)1.1设计目的 (1)1.2设计内容和要求 (1)1.3设计思路 (1)2 设计原理分析 (2)2.1定时器控制8×8LED点阵屏显示数字系统设计 (2)2.2定时器控制8×8LED点阵屏显示数字系统的功能要求 (2)2.2.1计时显示 (2)2.2.2中断设置 (2)2.38×8LED点阵屏显示数字系统的基本构成及原理 (2)3 系统硬件电路的设计 (3)3.1系统硬件总电路构成及原理 (3)3.2主控制部分――AT89C51单片机简介 (3)3.2.1 AT89C51的内部结构功能 (4)3.2.2 51单片机的串行接口工作方式 (5)3.3其它器件 (6)3.4定时器控制8×8LED点阵屏显示数字系统原理图 (7)3.5设计的连线图: (8)3.5.1单片机实物图: (8)3.6硬件资源及其分配 (8)3.7运行步骤 (8)3.8检测与调试 (9)3.8.1硬件调试: (9)3.8.2软件调试: (10)4 系统软件程序的简单设计 (11)4.1程序框图 (11)4.2程序流程图及程序 (12)4.2.1程序流程图: (12)4.2.2程序清单: (12)4.2.3仿真结果图: (14)结论 (15)参考文献 (16)1 设计目的1.1设计目的1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2、通过8×8LED点阵屏显示数字系统的设计,掌握数码管的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。
1.2设计内容和要求内容:设计一个8×8LED点阵屏显示数字。
要求:利用单片机的中断系统,令8×8LED点阵屏循环显示数字0—9。
1.3 设计思路1.先熟悉实验原理,了解8×8LED点阵屏显示数字的工作过程,以及所需要的组件。
2.通过单片机的各个引脚的输出控制8×8LED点阵屏显示数字。
8X8_LED点阵显示的设计
摘要单片机是计算机技术、大规模集成电路技术和控制技术的综合产物。
经过30多年的发展历程,单片机应用已十分广泛和深入。
所以可以毫不夸张地说,任何设备和产品的自动化、数字化和智能化都离不开单片机。
现在,凡是电脑控制的设备和产品,必有单片机嵌入其中。
这一切表明,单片已成为人类生活中不可或缺的助手。
随着单片机应用的日益广泛,利用单片机控制汉字显示屏被广泛地应用与汽车报站器,广告屏等领域。
本文详细介绍了基于51单片机的LED显示屏控制系统的显示原理,对8*8点阵汉字进行显示,显示屏由1个8*8的LED点阵模块LED。
系统仿真利用PORTEUS 仿真软件和KEIL软件的联调对LED点阵显示屏系统进行调试,并用Protel 99进行PCB布线,制版。
关键词:LED点阵显示屏单片机PROTEUS仿真PCB布线及制版目录第1章系统概述设计任务及目的 (3)第2章系统硬件设计与分析电源电路 (4)复位电路 (4)主体电路 (5)硬件电路连线 (5)显示部分 (5)第3章单片机的配置及简介单片机介绍 (7)单片机系统设计 (9)单片机的发展趋势 (10)第4章系统软件设计数字的编码 (11)字母的编码 (12)程序流程图 (14)完整程序 (15)第5章有关软件的介绍PROTE电路设计及PCB图制作 (18)Keil C51 介绍及使用 (19)烧录器的简介及调试 (20)第6章结束语 (21)参考文献 (21)附图一原理图 (22)附图二PCB图 (23)第1章系统概述LED点阵显示系统中各模块的显示方式有静态和动态显示两种。
静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。
本文将介绍一种采用单片机AT89S51进行控制的8*8LED点阵。
点阵式LED“0-9”数字显示技巧
1.实验任务利用8X8点阵显示数字0到9的数字。
2.电路原理图图4.25.13.硬件系统连线(1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;(2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;4.程序设计内容(1).数字0-9点阵显示代码的形成如下图所示,假设显示数字“0”00123 4 5 6 78●●●●●●●●●●●●●●●●00 00 3E 41 41 41 3E 00因此,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。
送显示代码过程如下所示送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时2ms左右,如此下去,直到送完最后一列代码,又从头开始送。
数字“1”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●其显示代码为00H,00H,00H,00H,21H,7FH,01H,00H数字“2”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,27H,45H,45H,45H,39H,00H数字“3”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●00H,00H,22H,49H,49H,49H,36H,00H 数字“4”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●00H,00H,0CH,14H,24H,7FH,04H,00H00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,72H,51H,51H,51H,4EH,00H 数字“6”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,3EH,49H,49H,49H,26H,00H00123 4 5 6 78●●●●●●●●●●●00H,00H,40H,40H,40H,4FH,70H,00H 数字“8”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,36H,49H,49H,49H,36H,00H 数字“9”代码建立如下图所示00123 4 5 6 78●●●●●●●●●●●●●●●●●00H,00H,32H,49H,49H,49H,3EH,00H 5.汇编源程序TIM EQU 30HCNTA EQU 31HCNTB EQU 32HORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV TIM,#00HMOV CNTA,#00HMOV CNTB,#00HMOV TMOD,#01HMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256SETB TR0SETB ET0SETB EASJMP $T0X:MOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256MOV DPTR,#TABMOV A,CNTAMOVC A,@A+DPTRMOV P3,AMOV DPTR,#DIGITMOV A,CNTBMOV B,#8MUL ABADD A,CNTAMOVC A,@A+DPTRINC CNTAMOV A,CNTACJNE A,#8,NEXTMOV CNTA,#00HNEXT: INC TIMMOV A,TIMCJNE A,#250,NEXMOV TIM,#00HINC CNTBMOV A,CNTBCJNE A,#10,NEXMOV CNTB,#00HNEX: RETITAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH DIGIT: DB 00H,00H,3EH,41H,41H,41H,3EH,00HDB00H,00H,00H,00H,21H,7FH,01H,00HDB00H,00H,27H,45H,45H,45H,39H,00H00H,00H,22H,49H,49H,49H,36H,00HDB00H,00H,0CH,14H,24H,7FH,04H,00HDB00H,00H,72H,51H,51H,51H,4EH,00HDB00H,00H,3EH,49H,49H,49H,26H,00HDB00H,00H,40H,40H,40H,4FH,70H,00HDB00H,00H,36H,49H,49H,49H,36H,00HDB00H,00H,32H,49H,49H,49H,3EH,00HEND6.C语言源程序#includeunsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code digittab[10][8]={ {0x00,0x00,0x3e,0x41,0x 41,0x41,0x3e,0x00}, //0{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},//1{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//2{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},//3{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},//4{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00}, //5 {0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00}, //6{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},//7{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},//8{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00} //9}; unsigned int timecount;unsigned char cnta;unsigned char cntb;void main(void){TMOD=0x01;TH0=(65536-3000)/256;TL0=(65536-3000)%6;TR0=1;ET0=1;EA=1;while(1){;}}void t0(void) interrupt 1 using 0{TH0=(65536-3000)/256;TL0=(65536-3000)%6; P3=tab[cnta];P1=digittab[cntb][cnta]; cnta++;if(cnta==8){cnta=0;}timecount++;if(timecount==333){timecount=0;cntb++;if(cntb==10){cntb=0;}}}00。
点阵式LED“0-9”数字显示技术
目录第一章绪论 (2)第二章方案设计 (3)2.1 方案确定 (3)2.1.1 功能要求 (3)2.2.2 方案确定 (3)2.2 器件选择 (3)第三章硬件电路设计 (4)3.1 整体模块设计 (4)3.2 单片机最小系统设计 (4)3.2.1 晶振电路设计 (4)3.2.2 复位电路设计 (5)3.3 驱动电路设计 (6)3.4 LED点阵显示设计 (7)第四章软件电路设计 (10)4.1 软件设计思想 (10)4.2 主程序流程图 (13)第五章系统仿真与调试 (14)5.1 系统仿真 (14)5.2 性能分析 (14)结束语 (14)参考文献 (15)致谢 (15)附录 (16)第一章绪论LED是发光二极管LIGHT EMINTTING DIODE的英文缩写,是一种直接能将电能转化为可见光的半导体。
LED点阵是由发光二极管排列组成的显示器件,在日常生活中随处可见,其发光类型属于冷光源,效率及发热量是普通发光器件难以比拟的。
它采用低电压扫描驱动,具有耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远、可靠耐用、应用灵活、安全、响应时间短、绿色环保、控制灵活等特点。
随着社会经济的不断进步,人们对LED显示器的认识不断加深,其应用领域越来越广。
本设计是基于AT89C5151的8×8点阵LED数码字符显示器的设计,LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。
本文讲述了基于AT89C51单片机8×8 LED数码字符显示器的基本原理、硬件组成与设计,Proteus软件仿真,程序设计等基本环节与相关技术。
LED电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活。
适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所。
该项目广泛涉及了计算机及电子技术中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术,系统软件技术,接口及驱动等技术。
8×8点阵数字滚动显示
项目一8×8点阵数字滚动显示LED点阵的元件符号及内部结构图:对应编码:00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULL00H, 00H, 3EH, 41H, 41H, 41H, 3EH, 00H ; 000H, 00H, 00H, 00H, 21H, 7FH, 01H, 00H ; 100H, 00H, 27H, 45H, 45H, 45H, 39H, 00H ; 200H, 00H, 22H, 49H, 49H, 49H, 36H, 00H ; 300H, 00H, 0CH, 14H, 24H, 7FH, 04H, 00H ; 400H, 00H, 72H, 51H, 51H, 51H, 4EH, 00H ; 500H, 00H, 3EH, 49H, 49H, 49H, 26H, 00H ; 600H, 00H, 40H, 40H, 40H, 4FH, 70H, 00H ; 700H, 00H, 36H, 49H, 49H, 49H, 36H, 00H ; 800H, 00H, 32H, 49H, 49H, 49H, 3EH, 00H ; 900H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULL硬件设计原理:单片机利用外部晶振作为时钟信号输入,RST端口接入上电复位信号使它加电后自动进行复位操作。
将要显示的字符码表编入单片机的程序中,由单片机控制时序输出相应的扫描数据和字符数据。
行码数据由单片机P0口输出,经一个双向总线收发器控制传输方向后进入LED点阵,点亮相应的发光二极管。
列码扫描信号由P3口输出后,直接输入LED点阵控制8列的扫描,每列选通时间为5ms,看上去就像8列同时显示的效果一样。
加上行中相应的LED灯被点亮,就能看到显示的字符了。
三、源程序代码:R_CNT EQU 31H ;列码R_NCT=31H单元NUMB EQU 32H ;行码NUMB=32H单元TCOUNT EQU 33H;拉幕计数值TCOUNT=33H单元ORG 00H ;程序起始地址LJMP STARTORG 0BH;中断入口地址LJMP INT_T0ORG 30H;子程序入口地址START:;主程序开始MOV R0, #00H ;每列的行码起始序号置0MOV R_CNT,#00H;列:初值00送到31H单元MOV NUMB,#00H;行:初值00送到32H单元MOV TCOUNT,#00H;计数单元初值置0MOV TMOD, #01H;计数定时器选用16位的计数器,工作在方式1MOV TH0, #(65536—5000)/256;定时5ms。
LED8x8点阵显示设计说明报告
班级:电子1649 姓名:王立学号:1330302164944LED8x8点阵显示设计说明报告一、设计任务1.设计要求利用一块点阵数码板,按编程者要求实现任意符号的显示。
2.此次设计研究的主要内容及应解决的问题此次设计研究的主要内容是设计一个符号显示牌:通过程序控制符号显示牌,使符号显示牌,在无按键按下时,显示数字“0-9”,当第一次按下按键时,显示字母“μ”,当第二次按下按键时显示汉字“公”。
应解决的问题:单片机P1口的输出电流不足以驱动二极管,需要加驱动,本次研究中以S8050作为驱动,同时在S8050NPN晶体管基极加4.7K的电阻。
实验前要弄清晶体管三个引脚代表的极性,以免符号显示牌不亮导致而设计失败。
二、总体设计方案2.1 硬件电路组成本产品采用以89C51单片机为核心芯片的电路来实现,主要由89C51芯片、晶振电路、三极管驱动电路、按键控制电路、8×8 LED点阵5部分组成,电路框图如图1所示。
其中,89C51是一种带4kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,工业标准的MCS一51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/擦循环,数据保留时间为10年。
他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案。
因此,在智能化电子设计与制作过程中经常用到89C51芯片。
时钟电路由89C51的18,19脚的时钟端(XTAI 1及XTAL2)以及12 MHz晶振X 、电容C2、C3组成,采用片内振荡方式。
复位电路采用简易的上电复位电路,主要由电阻R ,R2,电容C ,开关K 组成,分别接至89C51的RST复位输人端。
LED点阵显示仿真----由浅入深之8X8,16X16,24X24LED点阵流动显示
一直以来,对LED点阵显示很感兴趣,特别是流动点阵显示。
论坛里有不少例子,效果都不是很满意。
于是,自己动手。
先试作了8X8点阵。
8X8的点太少,只适合数字显示,从0 ~9流动,效果还不错。
有了8X8的经验,对流动显示的原理已经了解,又试了16X16的,觉得也不难。
但16X16的点仍嫌少了,又做了个24X24的,汉字漂亮。
动画可能效果差些,软件运行显示效果好多了。
8X8初学点阵仿真,常点不亮LED 。
首先,可能是点阵的极性没有正确的接线。
下面的简单方法可判断点阵的逻辑引脚。
运行proteus,在编辑区里放上一个8X8LED,如MA TRIX-8x8-GREEN。
在某些引脚上接上电源和地,试试能不能点亮。
8X8默认是上下引脚,按习惯接法,上面接电源,下面接地,不亮(图左)。
用左下角垂直翻转工具,垂直翻转,再接上电源和地,就可以点亮了(下图)。
如果是做左移显示,可再左旋90°。
如图:这里可看到,左边引脚是行控制,右边引脚是列控制。
然后就可以画线路图了,点阵就保持上面那个方向。
由于点阵引线较多,特别是以后做24X24点阵,所以布线方式不用连线,而用终端加上网络标号,这样可以使画面简洁明了。
连续标号的快捷画法,我以前有帖子介绍过。
这里还是再啰嗦一下。
proteus有一个很好用的PA T(Property Assignment Tool),即属性分配工具。
可以用来做快捷标注,当然还可以用作其它操作。
再连上其它接线,一个线路图很快就可以作好。
下面,就可以写程序的源文件了。
点击菜单\Source,下拉菜单第一条Add/Remove Source Files,按键New,在跳出的对话框里写上新文件名,如8X8.asm,打开。
提示这个文件不存在,要创建吗?是。
然后点Code Gereration tool小箭头,选ASM51 ,点OK。
然后,菜单\Source,看到多了个8X8.asm,点击,出现proteus自带的汇编编辑器,就可以在里面写代码了。
8×8LED点阵显示数字与字符
5. C 语言程序:
#include "AT89X52.H" unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code digittab[][8]={ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",0*/ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},/*"_",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF},/*"_",0*/ {0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF},/*"_",0*/ {0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"_",0*/ {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},/*"|",0*/ {0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02},/*"|",0*/ {0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},/*"|",0*/ {0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},/*"|",0*/ {0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},/*"|",0*/ {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20},/*"|",0*/ {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},/*"|",0*/ {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},/*"|",0*/ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*" ",0*/ //图形 1 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x3C,0x24,0x24,0x3C,0x00,0x00},/*"未命名文件",0*/ {0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00},/*"未命名文件",0*/ {0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF},/*"未命名文件",0*/ //图形 2 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x24,0x18,0x18,0x24,0x00,0x00},/*"未命名文件",0*/ {0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00},/*"未命名文件",0*/ {0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81},/*"未命名文件",0*/ //图形 3 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x24,0x18,0x18,0x24,0x00,0x00},/*"未命名文件",0*/ {0x00,0x10,0x24,0x1A,0x58,0x24,0x08,0x00},/*"未命名文件",0*/ {0x08,0x10,0x24,0x9A,0x59,0x24,0x08,0x10},/*"未命名文件",0*/ {0x0C,0x10,0xA4,0x9A,0x59,0x25,0x08,0x30},/*"未命名文件",0*/ {0x0E,0x90,0xA4,0x9A,0x59,0x25,0x09,0x70},/*"未命名文件",0*/ {0x8F,0x90,0xA4,0x9A,0x59,0x25,0x09,0xF1},/*"未命名文件",0*/
8×8 LED点阵显示课设
目录摘要引言第1章设计内容及设计方案1.1本设计任务1.2 总体设计方案和论证1.3 任务分配第2章系统硬件设计2.1 A T89C51单片机的结构2.1.1 51系列单片机的概述2.1.2 单片机的组成2.2 8×8 LED点阵显示模块的硬件设计及工作原理2.2.1 LED简介2.2.2 LED点阵2.2.3显示原理第3章系统的软件设计3.1 软件流程3.2数字字库的提取3.2.1数字的表示及编码原理3.2.2提取数字的数字库3.3 程序代码的设计第4章系统调试与测试结果分析4.1元器件清单4.2 系统调试4.2.1硬件调试4.2.2软件调试4.2.3硬件软件联调4.3 测试结果心得体会致谢参考文献LED是发光二极管Light Emitting Diode的英文缩写, 是一种能够将电能转化为可见光的半导体。
LED点阵是由发光二极管排列组成的显示器件, 在我们日常生活的电器中随处可见,极为普通也广为人知。
特别是它的发光类型属于冷光源,效率及发热量是普通发光器件难以比拟的,它采用低电压扫描驱动,具有:耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远、规格品、可靠耐用、应用灵活、安全、响应时间短、绿色环保、控制灵活种等特点。
目前LED显示屏作为新一代的信息传播媒体,已经成为城市信息现代化建设的标志。
随着社会经济的不断进步,以及LED显示技术的不断完善,人们对LED显示屏的认识将越来越深入,其应用领域将会越来越广。
自20世纪80年代后期开始,随着LED制造技术的不断完善,在国外得到了广泛的应用。
在我国改革开放之后,提别是进入90年代国民经济的高速增长,对公众场合发布信息的需求日益强烈。
而LED显示屏作为信息传播的一种重要手段,已经成为城市信息现代化建设的标志,LED显示屏随着社会经济的不断进步,以及LED 制造技术的完善,人们对LED显示屏的认识将会越来越深入,其应用领域将会越来越广;LED显示屏经多年的开发、研制、生产,其技术目前已经成熟。
8x8点阵循环显示数字0-9
8x8点阵循环显示数字0-9#include#define uchar unsigned char#define uint unsigned intuchar i,xs,js1=0;uchar js2=0;uchar js3=0;uchar js4=0; //js1为左按计数,js2为右按计数,js3为上按计数,js4为按下调节按键的次数sbit DQ=P1^3;//sbit smg1=P2^0;//sbit smg2=P2^1;//sbit smg3=P2^2;sbit key1=P3^0; //设定温度是现实sbit add=P3^1;sbit sub=P3^2;sbit sa=P3^3; //上移按键sbit za=P3^4; //左移按键sbit ya=P3^6; //右移按键sbit lcden=P2^6;sbit lcdrs=P2^4;sbit lcdrw=P2^5;uchar temp;uchar smg_du[]={'0','1','2','3','4','5','6','7','8','9'};uchar shengming[]=" Tem" ;uchar xianshi_1[]={ 'S','X','T','e','m',':','3','1','.','5','C'};uchar xianshi_2[]={ 'X','X','T','e','m',':','2','1','.','5','C'};void init_ds18b20(void); //DS18B20初始化函数void write_byte(uchar dat); //DS18B20写一字节函数uchar read_byte(void); //DS18B20读一字节函数uchar readtemperature(void); //温度读取函数void keyscan(); //判断显示温度还是进行温度上下限设置void display_shezhi(); //设置温度上下限void display_xianshi1(); //显示温度void display_xianshi2(); //进行温度设置void write_com(uchar com); //1602写指令函数void write_data(uchar date); //1602写数据函数void init_1602(); //1602初始化函数void delay(uint t) //1us延时{while(t--);}void delay_1ms(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void init_ds18b20(void) //初始化{uchar n;DQ=1;delay(4);DQ=0;delay(80);DQ=1;delay(10);n=DQ;delay(10);}void main() //主函数{lcdrw=0;init_1602();init_ds18b20();while(1){temp=readtemperature();display_xianshi2();//keyscan();}}void write_byte(uchar dat) //写一个字节{ uchar i;for(i=0;i<8;i++){DQ=0;DQ=dat&0x01;delay(4);DQ=1;dat>>=1;}delay(4);}uchar read_byte(void) //读一个字节{uchar i,value;for(i=0;i<8;i++){DQ=0;value>>=1;DQ=1;if(DQ)value|=0x80;delay(4);}return value;}uchar readtemperature(void) //获取温度{uchar a,b,c,d;init_ds18b20();write_byte(0xcc);write_byte(0x44);init_ds18b20();write_byte(0xcc);write_byte(0xbe);a=read_byte();//温度低位b=read_byte();//温度高位d=a&0x0f; //获得小数的值c=((b*256+a)>>4); //b左移8位后,与a或得到16位之后左移4位得到整数的7位xs=d*0.0625*10+0.5; //得到两位小数的值,加上0.5表示四舍五入return c;void display_xianshi1(){uchar i,A1,A2,A3;/*液晶第一行显示T em */write_com(0x80);for(i=0;i<5;i++){write_data(shengming[i]);delay(5);}/* 温度十位*/A1=smg_du[temp/10];write_com(0xc6);write_data(A1);/* 温度个位*/A2=smg_du[temp%10];//|0x80;write_com(0xc7);write_data(A2);/* 小数点位*/write_com(0xc8);write_data(0x2e);/* 小数位*/A3=smg_du[xs%10];write_com(0xc9);write_data(A3);/* 显示字母C 当做温度符号位*/write_com(0xca);write_data(0x43);}/********************************************1602写.读及初始化********************************************/ void write_com(uchar com) //1602写函数lcdrs=0;P0=com;delay_1ms(5);lcden=1;delay_1ms(5);lcden=0;}void write_data(uchar date) //1602读函数{lcdrs=1;P0=date;delay_1ms(5);lcden=1;delay_1ms(5);lcden=0;}void init_1602() //1602初始化函数{write_com(0x38); //设置16X2显示,5X7点阵,8位数据端口write_com(0x06); //写一个字符后,地址加一write_com(0x0c); //设置开显示,不显示光标write_com(0x01); //显示清零,数据指针清零}/**************************************按键函数***************************************/void keyscan() //通过按键按下次数判别是设置上下限还是显示温度{if(key1==0){delay_1ms(10);if(key1==0) //按键按下一次,为设置温度上下限{display_xianshi2();display_shezhi();delay(5);}js4++;}if(js4==2||js4==0) //按键没按下时或者按键拿了两侧,则LCD 为显示温度{display_xianshi1();delay(5);js4=0; //标志位清零,以便下次判断}}void display_shezhi(){uchar num,num1;write_com(0x8b); //第一行的个位write_com(0x0b); //显示光标,光标闪烁if(add==0) //是否按加一按键{delay_1ms(10);if(add==0){write_data(xianshi_1[11]+0x31); //0X31为数字1的地址delay(5);xianshi_1[11]=xianshi_1[11]+0x31;if(xianshi_1[11]==0x39){xianshi_1[11]=0x30;write_data(xianshi_1[11]);}}}if(sub==0) //是否按减一按键{delay_1ms(10);if(sub==0){write_data(xianshi_1[11]-0x31);delay(5);xianshi_1[11]=xianshi_1[11]-0x31;if(xianshi_1[11]==0x30){xianshi_1[11]=0x39;write_data(xianshi_1[11]);}}}num=0x8b;if(sa==0) //按下左移按键{delay_1ms(10);if(sa==0){js1++; //左右移动只在该行用于判断向左移动的次数num=num-1;write_com(num);delay(5);if(js1==3){write_com(0x8b); delay(5);}}}if(ya==0) //按下右移按键{delay_1ms(10);if(ya==0){js2++;num1=0x8b+0x01; write_com(num1); delay(5);if(js2==1){write_com(0x88); delay(5);}}}if(sa==0){delay_1ms(10);if(sa==0){js3++;write_com(0xc0); delay(5);if(js3==2){write_com(0x80); delay(5);}}}}/* 初始设置温度上下限*/ void display_xianshi2() {write_com(0x80);for(i=0;i<12;i++){write_data(i);delay(5);}write_com(0xc0);for(i=0;i<12;i++){write_data(i);delay(5);}}。
8×8LED点阵屏显示数字(韩余)
目录1 设计目的 (1)1.1设计目的 (1)1.2设计内容和要求 (1)1.3设计思路 (1)2 设计原理分析 (2)2.1定时器控制8×8LED点阵屏显示数字系统设计 (2)2.2定时器控制8×8LED点阵屏显示数字系统的功能要求 (2)2.2.1计时显示 (2)2.2.2中断设置 (2)2.38×8LED点阵屏显示数字系统的基本构成及原理 (2)3 系统硬件电路的设计 (3)3.1系统硬件总电路构成及原理 (3)3.2主控制部分――AT89C51单片机简介 (3)3.2.1 AT89C51的内部结构功能 (4)3.2.2 51单片机的串行接口工作方式 (5)3.3其它器件 (6)3.4定时器控制8×8LED点阵屏显示数字系统原理图 (7)3.5设计的连线图: (8)3.5.1单片机实物图: (8)3.6硬件资源及其分配 (8)3.7运行步骤 (8)3.8检测与调试 (9)3.8.1硬件调试: (9)3.8.2软件调试: (10)4 系统软件程序的简单设计 (11)4.1程序框图 (11)4.2程序流程图及程序 (12)4.2.1程序流程图: (12)4.2.2程序清单: (12)4.2.3仿真结果图: (14)结论 (15)参考文献 (16)1 设计目的1.1设计目的1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2、通过8×8LED点阵屏显示数字系统的设计,掌握数码管的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。
1.2设计内容和要求内容:设计一个8×8LED点阵屏显示数字。
要求:利用单片机的中断系统,令8×8LED点阵屏循环显示数字0—9。
1.3 设计思路1.先熟悉实验原理,了解8×8LED点阵屏显示数字的工作过程,以及所需要的组件。
2.通过单片机的各个引脚的输出控制8×8LED点阵屏显示数字。
LED点阵设计方案8乘8
LED点阵设计方案设计作品名称: LED电子点阵参与人员: 电气系电子信息1332班同学作品设想:以AT89S51单片机控制发光二极管,能够依次在点阵上显示“0-9”个字符。
所需元器件:8×8LED点阵(共阳)一块AT89S51晶振频率(f=12M Hz)单片机(附有底座)一个74HC573芯片两个瓷片电容30pf 两个电阻1000欧姆470欧姆各八个10,000欧姆2个电源插座一个显示原理概括:8×8LED点阵以发光二极管为像素,分为行控制跟列控制,通过单片机的两个管口的引脚输出高电平与低电平来控制二极管的发光来显示文字,注意控制延时来获得较好的视觉效果。
AT89S51单片机介绍:-- 新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低!-- ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。
是一个强大易用的功能。
-- 最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。
-- 具有双工UART串行通道。
-- 内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。
-- 双数据指示器。
-- 电源关闭标识。
-- 全新的加密算法,这使得对于89S51的**变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。
-- 兼容性方面:向下完全兼容51全部字系列产品。
74HC573芯片介绍:74HC573 八进制 3 态非反转透明锁存器74HC573 高性能硅门CMOS 器件SL74HC573 跟LS/AL573 的管脚一样。
器件的锁存器。
输入是和标准CMOS 输出兼容的;加上拉电阻,他们能和LS/ALSTTL 输出兼容。
当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
8×8LED点阵显示数字0到9
单片机技术课程设计说明书设计课题:8×8点阵专业(系) 电气学院 班 级 学生姓名 指导老师 完成日期目录1.课程设计目的 (3)2.课程设计题目和要求 (3)3.设计内容 (3)3.1系统功能的描述 (3)3.2系统硬件设计 (3)3.1.1 AT89S51芯片的介绍 (4)3.2.2 时钟电路的设计 (5)3.2.3 复位电路的设计 (6)3.2.4驱动电路的设计 (6)3.2.5 8×8LED点阵 (7)3.3系统软件设计 (8)3.3.1 计数器初值计算 (8)3.3.2 数字0到9点阵显示代码的形成 (8)3.3.3 程序流程图 (9)3.2.4 源程序 (9)4.设计总结 (11)附录.............................................................................................. 错误!未定义书签。
1.课程设计目的(1)巩固和提高学过的基础知识和专业知识。
(2)提高运用所学的知识进行独立思考和综合分析、解决实际问题的能力。
(3)培养掌握正确的思维方法和利用软件和硬件解决实际问题的基本技能。
(4)增加对单片机的认识,加深对单片机理论方面的理解。
(5)掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。
(6)熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2.课程设计题目和要求(1)课程设计题目:单片机控制的跑马灯设计(2)要求:利用8×8LED点阵显示数字0到93.设计内容3.1系统功能的描述用单片机控制8×8LED点阵滚动显示数字0到9,利用硬件与软件相结合的方法,通过单片机将数字的代码分别送到相应的列线上面,经过软件编程使二极管从0到9依次显示数字,如此循环。
3.2 系统硬件设计图1系统框图显示的硬件方式采用以AT89S51单片机为核心的电路来实现,主要由AT89S51芯片、时钟电路、复位电路、驱动电路、8×8LED点阵5部分组成,系统框图如图1所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机技术课程设计说明书设计课题:8×8 点阵专业(系)电气学院班级学生姓名指导老师完成日期目录1.课程设计目的 (3)2.课程设计题目和要求 (3)3.设计内容 (3)3.1系统功能的描述 (3)3.2系统硬件设计 (3)3.1.1 AT89S51芯片的介绍 (4)3.2.2 时钟电路的设计 (5)3.2.3 复位电路的设计 (5)3.2.4驱动电路的设计 (6)3.2.5 8×8LED点阵 (7)3.3系统软件设计 (7)3.3.1 计数器初值计算 (7)3.3.2 数字0到9点阵显示代码的形成 (8)3.3.3 程序流程图 (8)3.2.4 源程序 (9)4.设计总结 (11)附录................................................................................................ 错误!未定义书签。
1.课程设计目的(1)巩固和提高学过的基础知识和专业知识。
(2)提高运用所学的知识进行独立思考和综合分析、解决实际问题的能力。
(3)培养掌握正确的思维方法和利用软件和硬件解决实际问题的基本技能。
(4)增加对单片机的认识,加深对单片机理论方面的理解。
(5)掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。
(6)熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2.课程设计题目和要求(1)课程设计题目:单片机控制的跑马灯设计(2)要求:利用8×8LED点阵显示数字0到93.设计内容3.1系统功能的描述用单片机控制8×8LED点阵滚动显示数字0到9,利用硬件与软件相结合的方法,通过单片机将数字的代码分别送到相应的列线上面,经过软件编程使二极管从0到9依次显示数字,如此循环。
3.2 系统硬件设计图1系统框图显示的硬件方式采用以AT89S51单片机为核心的电路来实现,主要由AT89S51芯片、时钟电路、复位电路、驱动电路、8×8LED 点阵5部分组成,系统框图如图1所示。
3.1.1 AT89S51芯片的介绍(1)I/O 端口线输入输出引脚P0.0—P0.7(39—32):P0口食一个漏极开路型准双向I/O 口。
在访问外部存储器时,它是分时多路转换地址(低8位)和数据总线,在访问期间激活了内部内部的上拉电阻,在E —PROM 编程时,它接受指令字节,而在验证程序时,则输出指令字节。
P1.0—P1.7(1—8):P1口是带内部上拉电阻的8位双向I/O 口。
P2.0—P2.7(21—28):P2口是一个内部带上拉电阻的8位双向I/O 口。
在访问外部存储器时,它送出高8位地址。
P3.0—P3.7(10—17):P3口是一个内部带上拉电阻的8位双向I/O 口。
在MCS —51中,这8个引脚还兼有专用功能,P3的8条口线都定义有第二功能,其具体功能如表1所示。
表1 P3口的第二功能(2)控制线控制引脚(ALE/PROG 、PSEN 、RST 、VPD 、EA/ VPP ) ALE (30):地址锁存控制信号。
在系统扩展时,用于控制P0口输出的低8位地址锁存起来,以实现地位地址和数据的隔离。
此外,由于ALE 是以晶振61的固定频率输出正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
PSEN(29):外部程序存储控制信号。
在外部ROM时,有效(低电平),以实现外部ROM单元的读操作。
EA(31):访问程序存储控制信号。
当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作时从内部程序存储器开始,并可延至外部程序存储器。
RST(9):复位信号。
但输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。
(3)外接晶体线XTAL 1(19)和XTAL 2(18)外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
(4)主电源引脚VCC(40):+5V电源。
VSS(20):地线(GND)。
3.2.2 时钟电路的设计时钟电路有AT89S51的18、19脚的时钟端(XTAL 1及XTAL 2)以及12MHz 晶振Y1、电容C1、C2组成,采用片内振荡方式,如图2所示。
图2 时钟电路3.2.3 复位电路的设计复位电路采用简易的上电复位电路,主要由电阻R1、R2,电容C3,开关K 组成,分别接至AT89S51的RST复位输入端,如图3所示。
图3 复位电路3.2.4驱动电路的设计LED驱动模块是LED显示屏设计的关键部分,驱动电路设计的好坏直接关系到LED显示屏的亮度、稳定度等重要指标。
本次设计中LED的驱动是采用三极管和74LS154实现的。
此系统中驱动电路是由74LS154和三极管组成的,原理图如图4所示。
图4 驱动电路3.2.5 8×8LED 点阵(1)工作原理8×8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上。
当对应的某一行置1,某一列置0,则相应的二极管就亮。
如图5所示,如要将第一个点亮,则9脚接高电平,13脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第9脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点亮;如果将第一列点亮,则第13脚接低电平,而(9、14、8、12、1、7 、2、5)接高电平,那么第一列就会点亮。
图5 8×8 LED 点阵(2)接线方法LED 的行扫描端接到单片机的P0口,列扫描端接置三极管的发射极。
列扫描端用于LED 的数据扫描,通过74LS154的译码和三极管的驱动,使LED 发光;行扫描通过P0口为LED 的显示给出相应的数据。
3.3系统软件设计 3.3.1 计数器初值计算计算公式: 计数T T M TC /-=式中,TC 为定时初值;T 计数是单片机时钟周期T CLK 的12倍;M 为计数器摸值该值和计数器工作方式有关,在方式0时M 为213;在方式1时M 的值为216;在方式2和3为28。
=Hs4216-msTCμ1/-==6153665536=F06040003.3.2 数字0到9点阵显示代码的形成假设显示数字“0”,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。
送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时4ms,送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时4ms,如此下去,直到送完最后一列代码,又从头开始送。
图为数字0到9代码建立如图6所示。
图6 数字0到9的代码建立图数字0到9点阵显示代码:0:00H,00H,3EH,41H,41H,41H,3EH,00H1:00H,00H,00H,00H,21H,7FH,01H,00H2:00H,00H,27H,45H,45H,45H,39H,00H3:00H,00H,22H,49H,49H,49H,36H,00H4:00H,00H,0CH,14H,24H,7FH,04H,00H5:00H,00H,72H,51H,51H,51H,4EH,00H6:00H,00H,3EH,49H,49H,49H,26H,00H7:00H,00H,40H,40H,40H,4FH,70H,00H8:00H,00H,36H,49H,49H,49H,36H,00H9:00H,00H,32H,49H,49H,49H,3EH,00H3.3.3 程序流程图主程序流程图如图7所示图7 主程序流程图3.2.4 源程序TIME EQU 30HCNTA EQU 31HCNTB EQU 32HORG 0000HLJMP STARTORG 000BHLJMP T0XORG 30HSTART:MOV TIME,#00HMOV CNTA,#00HMOV CNTB,#00HMOV TMOD,#01HMOV TH0,#0F0HMOV TL0,#60HSETB TR0SETB ET0SETB EASJMP $T0X:MOV TH0,#0F0HMOV TL0,#60HMOV DPTR,#TABMOV A,CNTAMOVC A,@A+DPTRMOV P3,AMOV DPTR,#DIGITMOV A,CNTBMOV B,#8MUL ABADD A,CNTAMOVC A,@A+DPTRMOV P1,AINC CNTAMOV A,CNTACJNE A,#8,NEXTMOV CNTA,#00HNEXT:INC TIMEMOV A,TIMECJNE A,#250,NEXMOV TIME,#00HINC CNTBMOV A,CNTBCJNE A,#10,NEXMOV CNTB,#00HNEX: RETITAB: DB 0FEH,FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH DIGIT: DB 00H,00H,3EH,41H,41H,41H,3EH,00HDB 00H,00H,00H,00H,21H,7FH,01H,00HDB 00H,00H,27H,45H,45H,45H,39H,00HDB 00H,00H,22H,49H,49H,49H,36H,00HDB 00H,00H,0CH,14H,24H,7FH,04H,00HDB 00H,00H,72H,51H,51H,51H,4EH,00HDB 00H,00H,3EH,49H,49H,49H,26H,00HDB 00H,00H,40H,40H,40H,4FH,70H,00HDB 00H,00H,36H,49H,49H,49H,36H,00HDB 00H,00H,32H,49H,49H,49H,3EH,00HEND4.设计总结通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。
通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际。