基于51单片机16x64点阵设计报告(附程序及效果图)
- 格式:doc
- 大小:10.49 MB
- 文档页数:16
51单片机对16×16点阵显示屏的控制设计1.功能16×16点阵显示屏学习板如下图所示,LED显示屏各点亮度均匀、充足,可显示图形和文字,通过文字图像取模软件获得数据码,可以显示各类图形或文字。
稳定、清晰、无串扰,图形或文字显示有静止、移入移出等显示方式。
2.基本原理16×16点阵是用4个8×8点阵屏拼合而成,8X8点阵LED工作原理说明:8×8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置O电平,则相应的二极管就亮;因此要实现一根柱形的亮法。
对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:一根竖柱:对应的列置1,而行则采用扫描的方法来实现;一根横柱:对应的行置O,而列则采用扫描的方法来实现。
对于点阵移动显示的方法有很多,最简单的方法就是你先对你的点阵的每个点标上序号然后画出变化后的点阵图找到对应的点然后总结规律这样你可以写出任意的屏幕变换。
举个例子:16×16点阵左移,取字模自左到右自上到下,那么移动就是将后一列移到前一列。
行驱动采用7411C154(4—16线译码器)及PNP三极管。
列驱动采用74HCC595移位寄存器将控制位级连接入单片机,每个74H1C595数据输入端单独接单片机。
16×16点阵模块由4块小的8×8点阵模块通过级连而拼成,共16行,16列。
板上资源有STC89C51单片机芯片。
支持串口ISP在线下载,4个8×8点阵显示模块(组成一个16×16点阵)、全板总共可扩展成16个8×8点阵显示模块(组成四个16×16点阵,最多同时显示4个汉字),4位按键输入、一个手动复位按键、蜂鸣器。
毕业设计(论文)此毕业设计论文几乎所有内容都是作者原创,已经查重通过,重复率不到5%。
程序部分如有疑问,可以qq联系。
1366715589、电子与信息工程学院二零一四年六月天津工业大学毕业设计(论文)基于单片机的LED显示屏系统设计学生姓名 qq1366715589 院部名称电子与信息工程学院专业电子信息工程指导教师职称天津工业大学毕业设计(论文)任务书院长教研室主任指导教师毕业设计(论文)开题报告表天津工业大学毕业论文进度检查记录本文主要阐述了用51单片机控制单色16*64的LED点阵屏显示的方法,对LED点阵屏如何进行行列信号控制及信号传输中的驱动问题进行了研究,并讨论了单片机控制系统中关键的数据处理以及发送问题。
结果表明采用并行数据输入、串行数据及同步时钟传输的专用电路可大大减少CPU的辅助时间,提高了数据的发送速度。
并给出了通过软件控制点阵屏显示的几种方式,如静态显示,分屏显示以及左移显示,对其软件的算法给出了具体分析。
基于各种算法我们就可以灵活的运用软件实现各种显示,并将其用于商业用途。
关键词:LED点阵屏;单片机;驱动;扫描This article mainly elaborates the method of using MCU-51 to control single color 16*64 LED lattice screen display, and researching how to carry on the ranks signal control and the question of signal actuation with the LED lattice screen, and discusses the essential data processing and the transmission question in the monolithic integrated circuit control system. The result indicates that CPU non-cutting time can be reduced greatly by using the allocated-use circuit with parallel data input, serial data and synchronism clock transmission, which has raised the data transmitting speed. This system has given several ways to control lattice screen display via software such as the static state display, divided screen display and left shift display, which has given the concrete analysis of software's algorithm. We can realize all kinds of display nimbly by using software based on each algorithm, and use it in the commercial trade .Key words:LED lattice screen;One-chip computer;Drive;Scan天津工业大学本科毕业论文目录第一章绪论 (1)1.1课题的背景和意义 (1)1.2 相关技术发展现状 (2)1.2.1 LED显示屏发展的简要回顾 (2)1.2.2 我国LED显示屏的发展现状 (3)1.2.3 LED显示屏的发展趋势 (4)第二章系统总体设计 (6)2.1需求分析 (6)2.2系统组成及功能描述 (6)2.3系统的功能描述 (7)2.4系统的工作过程 (7)第三章基于51单片机的LED显示屏系统设计 (8)3.1硬件系统总体设计 (8)3.1.1 STC90C51的硬件结构 (8)3.1.2 STC90C51主要性能参数 (9)3.1.4 STC90C51单片机适用领域 (10)3.2 单片机STC90C51电路及外围电路 (10)3.4 LED显示屏扫描电路设计 (13)3.4.1 LED点阵屏内部结构及显示原理 (13)3.4.2 列扫描电路设计 (15)3.4.3 行驱动扫描电路设计 (16)第四章软件设计 (17)4.1系统软件设计思路 (17)4.2显示驱动程序 (17)4.3上移程序设计 (18)第五章系统调试与实验 (21)5.1实验平台 (21)5.2软件平台 (23)5.2.1 字模提取 (24)5.3实验方案 (25)5.3.1主控部分测试 (25)5.3.2 led显示部分测试 (25)结论 (27)参考文献 (28)附录 (29)谢辞 (55)第一章绪论1.1课题的背景和意义随着我国社会经济文化等的不断发展,民众的消费标准也在发生着不断的变化,户外灯箱广告更是扮演着越来越重要的宣传角色,在车站、商场、学校单位等场合都会见到霓虹灯之类的广告。
基于51单片机的LED点阵显示屏系统的设计与实现一、引言随着科技的发展,LED点阵显示屏已经成为了广告、公告栏、车载显示屏等各个领域的重要组成部分。
本文将基于51单片机,设计并实现一个LED点阵显示屏系统。
二、系统设计1.系统硬件设计系统硬件由以下组成部分构成:-51单片机:作为系统的控制中心,负责控制点阵的亮灭以及显示内容的刷新。
-LED点阵:采用常用的8×8点阵显示屏,共64个LED灯,用于显示文字、图形等内容。
-驱动电路:由8个NPN型晶体管构成的列激活电路和8个PNP型晶体管构成的行激活电路,用于控制点阵灯的亮灭。
-电源:为系统提供工作电压,需要稳定的直流电源。
2.系统软件设计系统软件主要包括以下功能:-初始化:对系统硬件进行初始化,包括设置I/O引脚的方向、初始化计时器等。
-显示内容控制:通过控制51单片机的I/O口,向LED点阵发送要显示的内容,包括文字、图形等。
-刷新显示:通过定时器中断,控制点阵的显示周期,使得点阵灯在适当的时间内亮灭,实现流畅的显示效果。
三、系统实现1.硬件实现根据系统硬件设计,搭建相应的电路板,包括51单片机、LED点阵、驱动电路等。
根据电路原理图进行布线,并进行必要的焊接工作。
2.软件编程使用汇编语言或C语言编写单片机程序,实现系统软件设计中的各个功能。
具体步骤包括:-配置51单片机的I/O口,设置为输出端口,并连接到LED点阵和驱动电路。
-初始化计时器,设置定时器中断的周期,用于刷新点阵显示。
-编写显示内容的控制函数,通过对I/O口的控制,向LED点阵发送相应的数据。
-编写中断服务函数,在每次中断发生时,刷新点阵显示。
-编译、烧录程序到51单片机,并将其与其它硬件模块连接。
3.系统测试与优化通过实际测试,检验系统硬件和软件是否正常工作。
根据系统的实际表现进行调整和优化,确保点阵显示的效果稳定而流畅。
四、结论本文基于51单片机,设计并实现了LED点阵显示屏系统。
/*16*16点阵屏的显示*/#include <reg51.h>#include <intrins.h>#define DA TAOUT P2 //指定P2口做为输出sbit DA TA=DA TAOUT^0; //列数据输出位sbit SCL=DA TAOUT^1;//列扫描时钟位sbit SCLT=DA TAOUT^2; //列数据锁存位sbit AB=DA TAOUT^4; //行数据输出位sbit SCK=DA TAOUT^5; //行扫描时钟位unsigned char lhj[32];//32字节RAM做为16*16点阵屏显示缓存void display();//做为点阵扫描函数,将显示缓存的数据输出到点阵屏void displayS(unsigned int timer);//指定时间扫描显示code unsigned char hua[32]={//华0x04,0x40,0x04,0x48,0x08,0x58,0x08,0x60,0x18,0x0C0,0x29,0x40,0x4A,0x44,0x08,0x44,0x09,0x3C,0x01,0x00,0x0FF,0x0FE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00};code unsigned char bei[32]={//北0x04,0x80,0x04,0x80,0x04,0x88,0x04,0x98,0x04,0x0A0,0x7C,0x0C0,0x04,0x80,0x04,0x80,0x04,0x80,0x04,0x80,0x04,0x80,0x04,0x80,0x1C,0x82,0x0E4,0x82,0x44,0x7E,0x00,0x00,};code unsigned char shui[32]={//水0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x08,0x01,0x18,0x7D,0x20,0x05,0x0C0,0x05,0x80,0x09,0x40,0x09,0x20,0x11,0x10,0x21,0x0E,0x41,0x04,0x81,0x00,0x05,0x00,0x02,0x00,};code unsigned char li[32]={//利0x01,0x04,0x07,0x84,0x7C,0x04,0x04,0x24,0x04,0x24,0x05,0x24,0x0FF,0x0A4,0x0C,0x24,0x0E,0x24,0x15,0x0A4,0x14,0x0A4,0x24,0x24,0x44,0x04,0x04,0x04,0x04,0x14,0x04,0x08,};code unsigned char dian[32]={//电0x42,0x10,0x42,0x10,0x7F,0x0F0,0x42,0x10,0x42,0x10,0x7F,0x0F0,0x42,0x10,0x02,0x00,0x02,0x04,0x02,0x04,0x01,0x0FC,0x00,0x00,};code unsigned char xue[32]={//学0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0x0FE,0x40,0x02,0x80,0x04,0x1F,0x0E0,0x00,0x40,0x01,0x84,0x0FF,0x0FE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,};code unsigned char yuan[32]={//院0x00,0x80,0x78,0x40,0x4F,0x0FE,0x54,0x02,0x58,0x14,0x63,0x0F8,0x50,0x00,0x48,0x08,0x4F,0x0FC,0x48,0x0A0,0x68,0x0A0,0x50,0x0A0, 0x41,0x22,0x41,0x22,0x42,0x1E,0x4C,0x00,};code unsigned char er[32]={//二0x00,0x00,0x00,0x00,0x00,0x10,0x3F,0x0F8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0FF,0x0FE,0x00,0x00,0x00,0x00,0x00,0x00,};code unsigned char ling[32]={//零0x1F,0x0F0,0x01,0x00,0x7F,0x0FE,0x41,0x02,0x9D,0x74,0x01,0x00,0x1D,0x70,0x02,0x80,0x0C,0x60,0x32,0x18,0x0C1,0x06,0x0F,0x0E0,0x00,0x40,0x02,0x80,0x01,0x00,0x00,0x80,};code unsigned char ba[32]={//八0x00,0x00,0x00,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x10,0x10,0x08,0x20,0x0E,0x40,0x04,0x00,0x00,};code unsigned char ji[32]={//级0x10,0x08,0x17,0x0FC,0x21,0x08,0x21,0x08,0x49,0x10,0x0F9,0x10,0x11,0x3C,0x21,0x84,0x41,0x88,0x0F9,0x48,0x02,0x50,0x02,0x20,0x1A,0x50,0x0E4,0x88,0x49,0x0E,0x02,0x04,};code unsigned char yi[32]={//一0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};code unsigned char ban[32]={//班0x01,0x00,0x09,0x04,0x0FD,0x7E,0x21,0x10,0x25,0x10,0x25,0x10,0x25,0x10,0x0F5,0x7C,0x25,0x10,0x29,0x10,0x21,0x10,0x22,0x10,0x3A,0x10,0x0E2,0x14,0x44,0x0FE,0x08,0x00,};code unsigned char hou[32]={//侯0x08,0x10,0x0B,0x0F8,0x08,0x10,0x10,0x10,0x17,0x0FC,0x32,0x00,0x52,0x08,0x93,0x0FC, 0x14,0x40,0x10,0x44,0x1F,0x0FE,0x10,0x40,0x10,0x0A0,0x10,0x90,0x11,0x0E,0x16,0x04,};code unsigned char yu[32]={//玉0x00,0x08,0x7F,0x0FC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x10,0x3F,0x0F8,0x01,0x00,0x01,0x00,0x01,0x40,0x01,0x30,0x01,0x10,0x01,0x04,0x0FF,0x0FE,0x00,0x00,};code unsigned char lon[32]={//龙0x02,0x00,0x02,0x40,0x02,0x20,0x02,0x04,0x0FF,0x0FE,0x02,0x80,0x02,0x88,0x04,0x88, 0x04,0x90,0x04,0x0A0,0x08,0x0C0,0x08,0x82, 0x11,0x82,0x16,0x82,0x20,0x7E,0x40,0x00,};code unsigned char LY[32]={//图案数据0x00,0x00,0x30,0x00,0x30,0x20,0x30,0x30,0x30,0x18,0x30,0x0C,0x30,0x06,0x3F,0x7F,0x3F,0x7F,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x20,0x00,0x00,0x00,0x00};code unsigned char kong[32]={//清零0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};void main(void) //主入口函数{unsigned char i=0,j=0;while(1){for(i=0;i<32;i++)lhj[i]=LY[i];//将图案数据复制到显示缓存displayS(2); //显示图案约2秒for(i=0;i<32;i++)lhj[i]=hua[i];//将"华"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=bei[i];//将"北"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=shui[i];//将"水"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=li[i];//将"利"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=shui[i];//将"水"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=dian[i];//将"电"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=xue[i];//将"学"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=yuan[i];//将"院"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=er[i];//将"二"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=ling[i];//将"零"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=kong[i];//将清零数据复制到显示缓存displayS(1); //显示约1秒for(i=0;i<32;i++)lhj[i]=ling[i];//将"零"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=ba[i];//将"八"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=ji[i];//将"级"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=yi[i];//将"一"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=kong[i];//将清零数据复制到显示缓存displayS(1); //显示约1秒for(i=0;i<32;i++)lhj[i]=yi[i];//将"一"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=kong[i];//将清零数据复制到显示缓存displayS(1); //显示约1秒for(i=0;i<32;i++)lhj[i]=yi[i];//将"一"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=ban[i];//将"班"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=hou[i];//将"侯"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=yu[i];//将"玉"字数据复制到显示缓存displayS(2); //显示约2秒for(i=0;i<32;i++)lhj[i]=lon[i];//将"龙"字数据复制到显示缓存displayS(2); //显示约2秒}}void displayS(unsigned int timer) //指定时间扫描显示{unsigned char i;while(timer--){ //当timer=1时,大约1秒时间i=130;while(i--)display();}}void display()//显示{unsigned char i,ia,j,tmp; //定义变量DA TAOUT=0XFF; //置位高电平做准备AB=0; //将行数据位清0,准备移位for(i=0;i<16;i++){ //循环输出16行数据SCK=0; //为行移位做准备SCLT=0; //为列锁存做准备for(ia=2;ia>0;){ //每行16个点,循环位移两个字节ia--; //循环两次tmp=~lhj[i*2+ia]; //读取点阵数据做输出,这里用到ia目的是先读取点阵数据的第二位字节,因一行16个点由两个字节组成,//电路中的移位寄存器最后一位对应最后一列,所以要先输出一行中的第二个字节数据for(j=0;j<8;j++){ //循环两次,每次移一个字节,SCL=0; //为列移位做准备DA TA=tmp&0x01; //将数据低位做输出,由电路图可知,移位寄存器的最后一位对应最后一列,因此先移最后一位tmp>>=1; //将数据缓冲右移一位,为下次输出做准备SCL=1; //将DA TA上的数据移入寄存器} //移入单字节结束} //移入两个字节结束DA TAOUT|=0X24; //此句可以用以下两句来理解,如果不将两句合为一句,将出现拖影现像//SCK=1; //SCK拉高,行数据移位,相应行拉低,三极管导通输出电量到相应行点阵管阳极(共阳)//SCLT=1; //SCLT拉高,将数据锁存输出到相应列的点阵发光管显示,显示一行后将保持到下一行显示开始AB=1; //行数据位只在第一行时为0,其它时候都为1,当将这个0移入寄存器后,从第一位开始一直移位最后一位,//移位的过程,AB就必需是1,这是因为不能同时有两个及两个以上0的出现,否则显示出乱}j=64;while(j--); //每一行的显示,保持两个字节的移位时间,因此,最后一行的显示,也要加入保持时间,补尝显示的亮度SCK=0; //SCK=1; //将最后一行数据移出}。
吉林工程技术师范学院信息工程学院《单片机应用设计》课程设计报告题目: 16*64 LED广告屏设计专业:电子信息时间:2013年6月10日——6月28日摘要单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。
单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。
所以研究LED显示有实用的意义。
LED显示屏分为图文显示屏和视频显示屏,均由LED矩阵块组成。
LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。
LED 之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。
这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。
LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
现代LED的发展很快,很多研究领域非常已经深刻,所以想利用自己学的单片机知识简单的研究一下用单片机驱动的LED显示汉字,以达到学以致用和实践相结合的目的,同时巩固加深自己的单片机知识。
用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。
因而采用点阵式图文显示屏显示经常需要变化的信息,是非常有效的。
点阵大小可以有16×16、24×24、32×32、48×48等不同规格,也有单色、双色、和多色几种,最常用的是单色图文屏。
单色屏多使用红色或橘红色或橙色LED点阵单元。
双色图文屏和多色图文屏,在LED点阵的每一个“点”上布置有两个或多个不同颜色的LED发光器件。
基于单片机16*16的点阵显示院系:机电工程学院专业(班级):电子信息工程2班姓名:林帅帅学号:015指导教师:叶圣职称:讲师完成日期:2013年12月18日目录1 引言 (1)2 设计的任务与要求 (3)3硬件电路设计 (4)整体设计方案 (4)元器件描述 (5)STC89c52单片机 (5)74hc595寄放器的概述 (7)16*16点阵显示屏幕 (8)点阵显示模块 (9)89c52应用系统部份电路 (10)晶体振电路原理和概述 (10)上电复位电路 (11)I/O口和扩展锁存器操纵点阵显示 (12)4系统软件设计 (12)软件设计描述 (13)16*16点阵显示程序 (13)5调试和性能分析 (14)总结 (14)参考文献 (14)附录A 总电路图 (15)附录B 实物图 (16)基于单片机的16*16点阵显示1 引言现代信息产业的高速进展,在咱们周围LED显示屏作为现代信息化社会的一个闪亮标志。
其普遍的应用在室内外需要进行效劳的地址,世人皆知在咱们生活的领域如电信,邮政大厅,营业部,车站,机场,口岸,运动场所等信息的发布,政府政策的发布,各类市场行情信息的发布和宣传等。
信息广告在蓬勃进展的市场经济中起着愈来愈重要的作用。
随着技术的不断进步,新产品层出不穷,市场竞争越来猛烈,广告的重要性也就加倍引发企业的关注。
一个成功的企业隔离不开成功的广告,而成功的广告离不开成功的广告技术和发布手腕。
因此,广告的新颖性,广告的创意引发高层人士的高度重视。
在以前电子技术还不发达的时候,咱们通常见到的是通过写大字报基挂横幅等来打广告,但那样很不方便,比如要改换内容那么要整个都要换掉,而且到了晚上就看不清,超级麻烦。
因此在现代信息技术发达的社会,仅仅如此确信是没有竞争力的,而汉字显示屏的显现,不仅能够随时更改内容,而且到了晚上也专门的夺目,操作也超级的简便,本钱低,从而很全有有效性,给人们带来了许多的用途与方便,基于PC 机操纵的LED点阵式显示屏的进展技术也超级的快,不仅点阵数高,同时能够显示铁汉字或图形,而且清楚度超级高。
基于proteus的51单片机16×64LED的设计
王波
【期刊名称】《西安航空技术高等专科学校学报》
【年(卷),期】2011(029)001
【摘要】介绍基于51单片机的16×64LED点阵显示屏的设计,在这里给出其原理图以及程序流程图.在Proteus7.5软件当中进行原理图的绘制,利用汉字转换软件将汉字转换为将要发送给单片机的点阵数据,在keil软件当中采用C语言编程,与proteus进行联调,并通过仿真软件Proteus7.5,最终实现自己设想的效果,总体上系统的设计简单、显示清晰、成本较低.
【总页数】4页(P67-70)
【作者】王波
【作者单位】阿坝师范高等专科学校,电子信息工程系,四川,成都,611741
【正文语种】中文
【中图分类】TP202
【相关文献】
1.基于51单片机与Proteus的三色点阵设计 [J], 高静;宋佳儒;赵静荣
2.基于51单片机电子密码锁的Proteus仿真设计 [J], 张崇铭
3.基于 Proteus 的51单片机系统电路设计与仿真 [J], 滕辉;公茂法;李玉午;
4.基于AT89C51单片机的简易五路抢答器的Proteus仿真设计与实现 [J], 马亦男
5.基于AT89C51单片机波形发生器的Proteus设计 [J], 陈辉;陈梅;杜静;王东梅;金晶;何东辉
因版权原因,仅展示原文概要,查看原文内容请购买。
物理与电子信息工程学院电子设计竞赛设计方案制作项目:基于单片机的Led点阵设计团队成员:电子科学技术协会技术部第一章:实物图展示第二章:芯片简介2.1点阵简介:8x8点阵是由64个发光二极管排列成8行8列的矩阵,一个发光二极管控制着点阵的一个点。
这种显示比较逼真,能显示的字符比较多。
实际应用比较广泛,如点阵广告牌,交通灯报站台。
16*64点阵屏构成首先,我们来分析一下16*16点阵行控线,列控线。
级联方法:如图四个点阵。
● 把00,01相同的行线相连接。
● 把10,11相同的行线相连接。
● 把00,10相同的列线相连接。
● 把01,11相同的列线相连接。
● 最后,00,01的列就作为16x16点阵的列控线。
00,10的行就作为16x16点阵的行控线。
同理:16*64的点阵也是一样的,将同一行的所有行连在一起,同一列的所有列连在一起!(我们这次点阵用的是共阳型点阵,即行接阳极)00 8*8点阵 01 8*8点阵 10 8*8点阵11 8*8点阵这里的16*64设计我们使用的是proteus画图的,里面使用的是网络标号!2.2 AT89S52简介:AT89S52有P0,P1,P2,P3。
四个口,18,19号引脚提供外部时钟信号。
2.3 74HC595简介:74HC595是8位串行输入,8位串行或并行输出。
●Q A~Q H为并行输出。
可以将信号输送到LED,类似流水灯。
●Q’H为串行输出。
●10号角:移位寄存器清零端,低电平有效。
●11号引脚:移位寄存器时钟脉冲,高电平有效。
●12号引脚:存储寄存器时钟脉冲,高电平有效。
●13号引脚:控制输出的使能端,低电平有效。
●14号角传送串行信号,信号源可以来单片机。
●16,8号引脚分别接VCC,GND。
2.4 74HC 154简介:74HC154是一个类似于74LS138一样的译码器,它为4-16线译码,它为单片机的引脚扩展发挥了很大的作用。
●23,22,21,20号引脚:传送地位到高位的地址码。
●18,19号引脚:154的使能端,低电平有效。
●12,24引脚:分别接GND,VCC。
●Y0~Y15:译码的结果,一出来的是低电平。
第三章 各部分详细电路3.1单片机最小系统与说明及连接电路XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U4AT89S52X112MHzC130pFC230pFC310uR110k● AT89S52的最小系统其中,C1 ,C2都是30 pF 的片状电容,C3 为10μF 的电解电容。
R1为10K 的电阻。
● X1为12MHz 的晶振,连接到单片机的18,19引脚,为单片机提供内部时钟信号,内部反相放大器自激振荡产生时钟信号。
时钟发生器对振荡脉冲2分频,即石英频率f=12MHz ,则单片机时钟信号为6MHz 。
● 9号角接上电复位电路。
当给单片机加电,高电平脉冲通过10μF 的电解电容,到达9号引脚(RST ),实现主复位。
如果正常工作中产生意想不到的情况发生,可以用按键开关控制发送一个高电平实现主复位。
Protues 省略了电源端,20,40号引脚分别接GND,VCC 。
1. A、B、C、D作为地址数据输入线,接P1.0,P1.1,P1.2,P1.3。
2. 19号角:接GND。
3. 74hc154的16行经8550放大后加载到点阵的行。
八片74HC595级联控制列数据:●八片的11号引脚:相连接单片机的P3.1口,作为移位时钟脉冲。
●第一片的14号角接单片机的P3.0口,提供串行数据。
●八片的12号引脚:相连接单片机的P1.6为存储寄存器的时钟脉冲。
●10号角:接单片机P1.5●13:都同时接地。
●第一片的9号引脚级联到第二片的14号引脚,第二片的9号引脚级联到第三片的14号引脚,依次类推,最后一片9号脚空着。
●100~807接到16x64的点阵的列引脚。
3.4我们使用的字模软件字模提取软件设置如下:3.5硬件设计注意事项:●整个系统需要加载5V左右的电压。
●行信号经过154后要加载几百欧姆的电阻限流,而后接到8550,经其放大后接到点阵。
第四章:Keil实现C代码与程序下载:#include<reg52.h>#define BLKN 8//列锁存数(为LED显示字数*2)#define TOTAL 8//待显示字个数,本例共八个#define TOTAL1 30//待显示字个数,本例共30个#define CONIO P1//显示控制口sbit G=CONIO^7;//为154译码器显示允许控制信号,0时输出,1时输出全为高请求高阻态sbit CLK=CONIO^6;//为595输出锁存器时钟信号端,1时输出数据,从1到0时锁存输出数据sbit SCLR=CONIO^5;//为595移位寄存器清0口,平时为1,为0时,输出全为0unsigned char idata dispram[(BLKN/2)*32]={0};//显示区缓存,4字共4*32//*****************字模表*********************//unsigned char code Bmp[][32]={ //我们使用的是阳码、逐行式、顺向{0xFD,0xFF,0xFD,0xF7,0xC0,0x2F,0xFD,0xDF,0xFD,0xBF,0x00,0x01,0xFE,0xFF,0xFD,0xFF,0xC0,0x1F,0xEF,0xBF,0xDF,0x7F,0xA0,0x03,0x7F,0x7F,0xFF,0x7F,0xFD,0x7F,0xFE,0xFF},/*"孝",0*/{0xFF,0xD7,0xFF,0xDB,0xC0,0x01,0xDF,0xDF,0xD0,0x5B,0xDF,0xDB,0xD0,0x57,0xD7,0x67,0xD7,0x6D,0xB0,0x55,0xBF,0xB9,0x7F,0x7D,0xFE,0xFF,0xB7,0x7B,0xB7,0xED,0x78,0x0D},/*"感",1*/{0xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F,0xFF,0xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"学",2*/{0xFF,0xBF,0x87,0xDF,0xB4,0x01,0xAD,0xFD,0xAB,0xFB,0x9E,0x07,0xAF,0xFF,0xB7,0xFF,0xB4,0x01,0xB7,0x6F,0x97,0x6F,0xAF,0x6F,0xBE,0xED,0xBE,0xED,0xBD,0xF1,0xBB,0xFF},/*"院",3*/};//*****************字模表*********************//unsigned char code Bmp1[][32]={{0xEF,0x7F,0xEF,0x7F,0xAF,0x7F,0xAF,0x03,0x82,0xAB,0xAD,0xAB,0x6F,0xAB,0xEF,0x6B,0xE3,0x6B,0x0E,0xDB,0xAD,0xDB,0xEF,0xBB,0xEF,0xBB,0xEF,0x7B,0xEE,0xD7,0xEF,0xEF},/*"物",0*/{0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF5,0xFE,0xFD,0xFE,0xFD,0xFF,0x01},/*"电",1*/{0xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F,0xFF,0xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"学",2*/{0xFF,0xBF,0x87,0xDF,0xB4,0x01,0xAD,0xFD,0xAB,0xFB,0x9E,0x07,0xAF,0xFF,0xB7,0xFF,0xB4,0x01,0xB7,0x6F,0x97,0x6F,0xAF,0x6F,0xBE,0xED,0xBE,0xED,0xBD,0xF1,0xBB,0xFF},/*"院",3*/};unsigned char code Bmp2[][32]={{0xFE,0xFF,0xFE,0xFF,0xFD,0x7F,0xFD,0x7F,0xFD,0x7F,0xFB,0xBF,0x03,0x81,0xBF,0xFB,0xCF,0xE7,0xF7,0xDF,0xF7,0xDF,0xEE,0x6F,0xE9,0xAF,0xE7,0xCF,0xDF,0xF7,0xFF,0xFF},/*"☆",0*/{0xFF,0xFF,0x06,0x01,0xF7,0xDF,0xAF,0xBF,0xDE,0x03,0xEE,0xFB,0x02,0xDB,0xDA,0xDB,0xD6,0xDB,0xDE,0xDB,0xDE,0xDB,0xDE,0xBB,0xDF,0xAF,0xDF,0x77,0x5E,0xFB,0xBD,0xFD},/*"预",0*/{0xDF,0xFF,0xEC,0x03,0xED,0xFB,0x05,0xFB,0xF5,0xFB,0xED,0xFB,0xEC,0x03,0xC7,0x6F,0xAB,0x6F,0x6B,0x6F,0xEF,0x6F,0xEE,0xED,0xEE,0xED,0xED,0xED,0xEB,0xF1,0xE7,0xFF},/*"祝",1*/{0xFD,0xFF,0xFD,0xF7,0xC0,0x2F,0xFD,0xDF,0xFD,0xBF,0x00,0x01,0xFE,0xFF,0xFD,0xFF,0xC0,0x1F,0xEF,0xBF,0xDF,0x7F,0xA0,0x03,0x7F,0x7F,0xFF,0x7F,0xFD,0x7F,0xFE,0xFF},/*"孝",2*/ {0xFF,0xD7,0xFF,0xDB,0xC0,0x01,0xDF,0xDF,0xD0,0x5B,0xDF,0xDB,0xD0,0x57,0xD7,0x67,0xD7 ,0x6D,0xB0,0x55,0xBF,0xB9,0x7F,0x7D,0xFE,0xFF,0xB7,0x7B,0xB7,0xED,0x78,0x0D},/*"感",3*/ {0xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F,0xFF,0 xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"学",4*/{0xFF,0xBF,0x87,0xDF,0xB4,0x01,0xAD,0xFD,0xAB,0xFB,0x9E,0x07,0xAF,0xFF,0xB7,0xFF,0xB4, 0x01,0xB7,0x6F,0x97,0x6F,0xAF,0x6F,0xBE,0xED,0xBE,0xED,0xBD,0xF1,0xBB,0xFF},/*"院",5*/ {0xEF,0x7F,0xEF,0x7F,0xAF,0x7F,0xAF,0x03,0x82,0xAB,0xAD,0xAB,0x6F,0xAB,0xEF,0x6B,0xE3, 0x6B,0x0E,0xDB,0xAD,0xDB,0xEF,0xBB,0xEF,0xBB,0xEF,0x7B,0xEE,0xD7,0xEF,0xEF},/*"物",6*/{0xFF,0xFF,0xFE,0x03,0x02,0xDB,0xEE,0xDB,0xEE,0x03,0xEE,0xDB,0xEE,0xDB,0x82,0x03,0xEF ,0xDF,0xEF,0xDF,0xEE,0x03,0xEF,0xDF,0xE3,0xDF,0x1F,0xDF,0xBC,0x01,0xFF,0xFF},/*"理",7*/ {0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xE0,0x03,0xEF,0xFF,0xDF,0xFF,0xDF,0xFF,0xC0,0x07,0xFF,0x F7,0xFF,0xF7,0xFF,0xF7,0x00,0x37,0xFF,0xF7,0xFF,0xF7,0xFF,0xAF,0xFF,0xDF},/*"与",8*/{0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE, 0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF5,0xFE,0xFD,0xFE,0xFD,0xFF,0x01},/*"电",9*/ {0xFF,0xFF,0x80,0x07,0xFF,0xEF,0xFF,0xDF,0xFF,0xBF,0xFE,0x7F,0xFE,0xFF,0x00,0x01,0xFE,0xF F,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"子",10*/{0xF7,0xBF,0xF7,0xDF,0xF4,0x01,0xEF,0xFF,0xEF,0xFF,0xCE,0x03,0xCF,0xFF,0xAF,0xFF,0x6E,0x 03,0xEF,0xFF,0xEF,0xFF,0xEE,0x03,0xEE,0xFB,0xEE,0xFB,0xEE,0x03,0xEE,0xFB},/*"信",11*/ {0xFE,0xFF,0xFD,0xFF,0xE0,0x0F,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xE0,0x 0F,0xEF,0xEF,0xFE,0xFF,0xF7,0x7B,0xB7,0x6D,0xB7,0xED,0x78,0x0F,0xFF,0xFF},/*"息",12*/ {0xFF,0xFF,0xFF,0xFF,0x80,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0x FF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xFF},/*"工",13*/{0xF7,0xFF,0xE2,0x03,0x0E,0xFB,0xEE,0xFB,0xEE,0xFB,0x02,0x03,0xEF,0xFF,0xCF,0xFF,0xC6,0 x01,0xAB,0xDF,0xAB,0xDF,0x6E,0x03,0xEF,0xDF,0xEF,0xDF,0xEC,0x01,0xEF,0xFF},/*"程",14*/ {0xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F,0xFF,0 xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"学",15*/ {0xFF,0xBF,0x87,0xDF,0xB4,0x01,0xAD,0xFD,0xAB,0xFB,0x9E,0x07,0xAF,0xFF,0xB7,0xFF,0xB4, 0x01,0xB7,0x6F,0x97,0x6F,0xAF,0x6F,0xBE,0xED,0xBE,0xED,0xBD,0xF1,0xBB,0xFF},/*"院",16*/ {0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE, 0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF5,0xFE,0xFD,0xFE,0xFD,0xFF,0x01},/*"电",17*/ {0xFF,0xFF,0x80,0x07,0xFF,0xEF,0xFF,0xDF,0xFF,0xBF,0xFE,0x7F,0xFE,0xFF,0x00,0x01,0xFE,0xF F,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF},/*"子",18*/{0xFF,0xFF,0xDE,0x0F,0xEE,0xEF,0xEE,0xEF,0xFE,0xEF,0xFD,0xF1,0x0B,0xFF,0xEC,0x07,0xEE, 0xF7,0xEE,0xEF,0xEF,0x6F,0xEB,0x5F,0xE7,0xBF,0xEF,0x5F,0xFC,0xE7,0xF3,0xF9},/*"设",19*/ {0xFF,0xBF,0xDF,0xBF,0xEF,0xBF,0xEF,0xBF,0xFF,0xBF,0xFF,0xBF,0x08,0x01,0xEF,0xBF,0xEF,0x BF,0xEF,0xBF,0xEF,0xBF,0xEF,0xBF,0xEB,0xBF,0xE7,0xBF,0xEF,0xBF,0xFF,0xBF},/*"计",20*/ {0xFD,0xFF,0xFE,0xFF,0xC0,0x07,0xF7,0xDF,0xFB,0xBF,0x00,0x01,0xFF,0xFF,0xE0,0x0F,0xEF,0x EF,0xEF,0xEF,0xE0,0x0F,0xFB,0xBF,0xFB,0xBF,0xF7,0xBD,0xCF,0xBD,0x3F,0xC1},/*"竞",21*/ {0xFE,0xFF,0x80,0x01,0xBB,0xBD,0x60,0x0B,0xFB,0xBF,0xC0,0x07,0xFB,0xBF,0x00,0x01,0xF7,0 xDF,0xE0,0x0F,0xD6,0xD7,0x36,0xD9,0xF6,0xDF,0xF5,0x5F,0xFB,0xBF,0xE7,0xDF},/*"赛",22*/ {0xFF,0xFF,0x00,0x7F,0xDD,0x03,0xDD,0xBB,0xC1,0xBB,0xDD,0xBB,0xDD,0xBB,0xC1,0xBB,0x DD,0xD7,0xDD,0xD7,0xD8,0x57,0x05,0xEF,0xBD,0xEF,0xFD,0xD7,0xFD,0xBB,0xFD,0x7D},/*"取",23*/{0xF7,0xFF,0xF4,0x07,0xED,0xF7,0xDC,0x07,0xB5,0xF7,0xF4,0x07,0xEF,0xFF,0xCC,0x03,0xAF,0 xEF,0x68,0x01,0xEF,0xEF,0xED,0xEF,0xEE,0xEF,0xEF,0xEF,0xEF,0xAF,0xEF,0xDF},/*"得",24*/ {0xFF,0xFF,0x80,0x03,0xBF,0xFB,0xB0,0x1B,0xB7,0xDB,0xB0,0x1B,0xBF,0xFB,0xA0,0x0B,0xAF, 0xEB,0xAE,0xEB,0xAE,0xEB,0xAD,0x6B,0xBB,0xBB,0xB7,0xDB,0x80,0x03,0xBF,0xFB},/*"圆",25*/{0xFE,0xF7,0xDE,0xF7,0xE8,0x01,0xEE,0xF7,0x7F,0xFF,0xB8,0x01,0xBF,0x6F,0xEF,0x6F,0xE8,0x 01,0xDB,0x6D,0x1B,0x6D,0xDA,0x95,0xD9,0xB9,0xDB,0xFD,0xDB,0xF5,0xFB,0xFB},/*"满",26*/ {0xFF,0xAF,0xFF,0xB7,0xFF,0xBF,0xC0,0x01,0xDF,0xBF,0xDF,0xBF,0xDF,0xBB,0xC1,0xBB,0xDD ,0xBB,0xDD,0xD7,0xDD,0xD7,0xDD,0xED,0xD5,0xCD,0xBB,0xB5,0xBF,0x79,0x7E,0xFD},/*"成",27*/{0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0x01,0xBF,0xEE,0x03,0xEF,0xBB,0xEF,0xBB,0xEF,0xBB,0xEF,0 xBB,0xEF,0x7B,0xEF,0x7B,0xE1,0x7B,0x0E,0xFB,0xBE,0xFB,0xFD,0xD7,0xFB,0xEF},/*"功",28*/};unsigned char code Bmp3[][32]={{0xF7,0xFF,0xF6,0x03,0xF7,0xBB,0x81,0xBB,0xF7,0xBB,0xF7,0x6B,0x00,0xF7,0xF7,0x03,0xD7,0 x7B,0xD7,0x7B,0xD1,0x7B,0xD7,0x03,0xD7,0xFF,0xA7,0xFF,0xB0,0x01,0x7F,0xFF},/*"超",0*/ {0xEF,0xD7,0xEF,0xDB,0xEF,0xDF,0x82,0x03,0xEE,0xDF,0xEE,0xDB,0x02,0xDB,0xEE,0xD7,0xE E,0xD7,0xAE,0xEF,0xA2,0x6B,0xAE,0xD3,0x8F,0xBB,0xAF,0xFF,0xB0,0x01,0x7F,0xFF},/*"越",1*/{0xF7,0xDF,0xF7,0xDF,0x81,0x03,0xF7,0xDF,0xE3,0x8F,0xD5,0x57,0x37,0xD9,0xFB,0xFF,0xF8,0x 0F,0xF7,0xEF,0xEB,0xDF,0xDD,0xBF,0xFE,0x7F,0xFD,0xFF,0xF3,0xFF,0x8F,0xFF},/*"梦",2*/{0xF7,0xFF,0xF7,0x07,0xF7,0x77,0x81,0x77,0xF7,0x07,0xE7,0x77,0xE3,0x07,0xD5,0x77,0xB7,0x7 7,0xF7,0x07,0xFE,0xFF,0xF7,0x7B,0xB7,0x6D,0xB7,0xED,0x78,0x0F,0xFF,0xFF},/*"想",3*/{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"一",4*/{0xF7,0xFF,0xF7,0xFF,0xF7,0x07,0x81,0xF7,0xF7,0xF7,0xF7,0xF7,0x01,0x07,0xF7,0x77,0xD7,0x7 F,0xD7,0x7F,0xD1,0x7B,0xD7,0x7B,0xD7,0x83,0xA7,0xFF,0xB0,0x01,0x7F,0xFF},/*"起",5*/{0xFF,0xFF,0x00,0x3F,0xFF,0xBF,0xFF,0xBB,0xFF,0xB7,0xFF,0xAF,0xFF,0x9F,0xFF,0xAF,0xFF,0x B7,0xFF,0xBB,0xFF,0xDF,0xFF,0xDF,0xFF,0xED,0xFF,0xF5,0xFF,0xF9,0xFF,0xFD},/*"飞",6*/ };unsigned char code Bmp4[][32]={{0xF7,0xFF,0xF7,0x03,0xF7,0x7B,0xF7,0x7B,0x01,0x7B,0xF7,0x03,0xE7,0x7B,0xE3,0x7B,0xD5,0x 7B,0xD5,0x03,0xB7,0x7B,0x77,0x7B,0xF7,0x7B,0xF7,0x7B,0xF7,0x03,0xF7,0x7B},/*"相",0*/{0xF7,0xBF,0xF7,0xDF,0xF4,0x01,0xEF,0xFF,0xEF,0xFF,0xCE,0x03,0xCF,0xFF,0xAF,0xFF,0x6E,0x 03,0xEF,0xFF,0xEF,0xFF,0xEE,0x03,0xEE,0xFB,0xEE,0xFB,0xEE,0x03,0xEE,0xFB},/*"信",1*/ {0xFE,0xFF,0xFD,0xFF,0xFB,0xFF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0x EF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF},/*"自",2*/{0xFF,0xFF,0xC0,0x0F,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xC0,0x0F,0xDF,0xF F,0xDF,0xFF,0xDF,0xFF,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xE0,0x03,0xFF,0xFF},/*"己",3*/{0xF7,0xFF,0xF7,0x03,0xF7,0x7B,0xF7,0x7B,0x01,0x7B,0xF7,0x03,0xE7,0x7B,0xE3,0x7B,0xD5,0x 7B,0xD5,0x03,0xB7,0x7B,0x77,0x7B,0xF7,0x7B,0xF7,0x7B,0xF7,0x03,0xF7,0x7B},/*"相",4*/{0xF7,0xBF,0xF7,0xDF,0xF4,0x01,0xEF,0xFF,0xEF,0xFF,0xCE,0x03,0xCF,0xFF,0xAF,0xFF,0x6E,0x 03,0xEF,0xFF,0xEF,0xFF,0xEE,0x03,0xEE,0xFB,0xEE,0xFB,0xEE,0x03,0xEE,0xFB},/*"信",5*/ {0xFF,0xFF,0xFF,0x03,0x83,0x7B,0xBB,0x7B,0xBB,0x7B,0xBB,0x03,0x83,0x7B,0xBB,0x7B,0xBB, 0x7B,0xBB,0x03,0x83,0x7B,0xBB,0x7B,0xFE,0xFB,0xFE,0xFB,0xFD,0xEB,0xFB,0xF7},/*"明",6*/ {0xFF,0xFF,0xC0,0x07,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFD,0x 7F,0xFD,0x7F,0xFB,0xBF,0xFB,0xBF,0xF7,0xDF,0xEF,0xEF,0xDF,0xF7,0x3F,0xF9},/*"天",7*/}; unsigned char code Bmp5[][32]={{0xFB,0xBF,0xF1,0xAF,0x87,0xB7,0xF7,0xB7,0xF7,0xBF,0x00,0x01,0xF7,0xBF,0xF7,0xBB,0xF5,0 xBB,0xF3,0xB7,0xE7,0xCF,0x97,0xDD,0xF7,0xAD,0xF7,0x75,0xD4,0xF9,0xEF,0xFD},/*"我",0*/ {0xEF,0xBF,0xDB,0xBB,0xBD,0xB7,0x00,0x8F,0xFE,0xBF,0xFF,0xBD,0x81,0xBD,0xBD,0xC1,0xB D,0xFF,0x81,0xBB,0xBD,0xB7,0xBD,0x8F,0x81,0xBF,0xBD,0xBD,0xB5,0xBD,0xBB,0xC1},/*"能",1*/{0xF7,0xFF,0xF6,0x03,0xEF,0xFF,0xDF,0xFF,0xB7,0xFF,0xF7,0xFF,0xEC,0x01,0xCF,0xDF,0xAF,0x DF,0x6F,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0x5F,0xEF,0xBF},/*"行",2*/ };/*************延时函数(约1ms)**************/void delay(unsigned int dt){register unsigned char bt;for (;dt;dt--)for(bt=0;bt<250;bt++);}/***********主函数**********/void main(void){register unsigned char i,j,k,l,q,w;//初始化SCON=0X00;//串口工作模式0:移位寄存器方式TMOD=0X01;//定时器T0工作方式1:16位方式TR0=1;//启动定时器T0CONIO=0x3f;//初始化控制口IE=0x82;//允许定时器T0中断for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=0xFF;}if(i%2)delay(1);}while(1){//第一种显示效果:向上滚屏,每次BLKN/2个字for(i=0;i<TOTAL*2/BLKN;i++){for (j=0;j<16;j++){for(k=0;k<15;k++){for(q=0;q<BLKN/2;q++){dispram[k*2+q*32]=dispram[(k+1)*2+q*32];dispram[k*2+1+q*32]=dispram[(k+1)*2+1+q*32];}}for(q=0;q<BLKN/2;q++){dispram[30+q*32]=Bmp[q+i*BLKN/2][j*2];dispram[31+q*32]=Bmp[q+i*BLKN/2][j *2+1];}delay(100);}delay(1500);//滚动暂住}//卷帘出黑屏for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=0x00;}if(i%2)delay(120);}delay(1000);//第二种显示效果:向下滚屏for (w=0;w<TOTAL*2/BLKN;w++){for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=Bmp4[q+w*BLKN/2][i];}if(i%2)delay(120);}delay(1000);}//切换:卷帘出黑屏for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=0x00;}if(i%2)delay(60);}delay(500);//第三种显示效果我能行for(i=0;i<32;i++){for(q=0,w=2;q<1,w<3;q++,w++){dispram[i+q*32]=Bmp5[0][i];dispram[i+w*32]=Bmp 5[0][i];}if(i%2)delay(40);}for(i=0;i<32;i++){for(q=1,w=3;q<2,w<4;q++,w++){dispram[i+q*32]=Bmp5[1][i];dispram[i+w*32]=Bmp 5[1][i];}if(i%2)delay(60);}for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=Bmp5[2][i];}if(i%2)delay(60);}delay(1000);//切换:卷帘出白屏for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=0xff;}if(i%2)delay(60);}delay(500);//第四种显示效果:一起闪for(j=0;j<7;j++)for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=Bmp3[j][i];}if(i%2)delay(35);}delay(1000);//切换:卷帘出黑屏for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=0x00;}if(i%2)delay(120);}delay(1000);//第五种显示效果:左移出显示for(i=0;i<TOTAL1;i++){for (j=0;j<2;j++)for(k=0;k<8;k++){for(l=0;l<16;l++){for(q=0;q<BLKN/2;q++){dispram[l*2+q*32]=dispram[l*2+q*32]<<1|dispram[l*2+1+q*32]>>7; if(q==BLKN/2-1)dispram[l*2+1+q*32]=dispram[l*2+1+q*32]<<1|Bmp2[i][l*2+j]>>(7 -k);elsedispram[l*2+1+q*32]=dispram[l*2+1+q*32]<<1|dispram[l*2+(q+1)*32]>>7;}}delay(80);}}delay(2000);//切换:卷帘出黑屏for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=0x00;}if(i%2)delay(120);}delay(1000);}}//主函数结束/**********显示屏扫描(定时器T0中断)函数******************/ void leddisplay(void)interrupt 1 using 1{register unsigned char m,n=BLKN;TH0=0xfc;TL0=0x18;m=CONIO;m=++m&0x0f;do{n--;SBUF=dispram[m*2+(n/2)*30+n];while(!TI);TI=0;}while(n);G=1;CONIO&=0xf0;CLK=1;CONIO|=m;CLK=0;G=0;}。