16215;16点阵滚动显示汉字c51程序
基于mcs-51的16×16汉字点阵显示
引言单片微型计算机(Single-Chip Microcomputer)简称单片机。
它是在一块芯片上集成了中央处理器、随机存储器、只读存储器、定时/计时器及I/O接口电路等部件,构成一个完整的微型计算机。
8051是MCS-51系列单片机的典型产品,包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。
本文是利用MCS-51系列单片机及LED电子显示管组成的16*16汉字显示硬件电路及软件程序来显示所想要显示的汉字第一章概述1.1 MCS-51系列单片机简介1.1.1MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,其内部结构图如图1-1所示。
图1-1 8051内部结构图现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
数据存储器(RAM):8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
基于51单片机的16×16点阵的滚动显示
基于单片机的16*16点阵的滚动显示摘要本文的设计是基于单片机系统的基本模块的一部分。
LED 点阵电子显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。
它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。
同时也可广泛应用到军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业。
本次设计的点阵显示屏主要是通过单片机直接控制行扫描,然后用74LS138来控制列扫描。
这个设计的软硬件都成功通过了PROTEUS的仿真调试。
关键词:单片机;点阵;滚动显示Based on SCM 16*16 LED rolling display designInstitute of Physical and XXXXXXl InformationXXXXX Normal UniversityAbstract: The design of this article is based on a part of the basic module SCM (Single-Chip-Microcomputer)system. LED electronic display screen is a large system which combined with micro-electronic technology and computer technology and information processing technology. It has become the ideal choice of numerous display media and out-door jobs display because of its advantages, including bright-colored flavor, wide dynamic state range, high brilliance, long life-span and stable and reliable work and so on. At the same time, it would be widely used in military affairs, stations, hotels, sports, news, finances, bonds, ads and traffic transportations etc. This design is mainly directly controlled by SCM in order to achieve row-scanning and the column-scanning achieved by the 74LS138.This design of hardware and software modules pass the PROTEUS simulation debugging successfully.Key words: SCM; LED; rolling display1绪论 (1)1.1 MCS-51系列单片机简介 (1)1.2 单片机的应用模式和应用领域 (2)1.3 主要工作任务 (3)2硬件设计 (3)2.1 单片机系统的基本模块 (3)2.2 16*16点阵滚动显示的硬件设计 (4)3软件设计 (6)3.1 16*16点阵滚动显示的软件设计 (6)4软件仿真结果 (8)4.1 16*16点阵滚动显示仿真结果 (8)结论 (9)参考文献 (10)致谢 (11)附录相关源程序 (12)单片机(Single-Chip-Microcomputer)又称微控制器(Microcontroller),最基本的结构是将CPU和计算机外围功能单元,如存储器、I/O口、定时器/计数器、中断系统等集成在一个芯片上构成的。
16x16点阵LED滚动显示汉字
#include <iom8515v.h>#include <macros.h>/*RCS2--->PC0CCS1--->PC1CCS2--->PC2RCS1--->PC3'=1*/#define RCS1_1 PORTC |= BIT(PORTC3>#define RCS2_1 PORTC |= BIT(PORTC0>#define CCS1_1 PORTC |= BIT(PORTC1>#define CCS2_1 PORTC |= BIT(PORTC2>#define RCS1_0 PORTC &=~BIT(PORTC3>#define RCS2_0 PORTC &=~BIT(PORTC0>#define CCS1_0 PORTC &=~BIT(PORTC1>#define CCS2_0 PORTC &=~BIT(PORTC2>#define DOTLEDPORT PORTAunsigned int RollCount=0。
unsigned int SecondCount=0。
unsigned char SecondFlag=0。
const unsigned char DOTLEDBIT[]={0xfe ,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,}。
unsigned char ScanDOTLEDCount=0。
unsigned char DOTLEDBuffer[32]。
#pragma interrupt_handler timer1_ovf_isr:7void timer1_ovf_isr(void>{TCNT1H = 0xFE。
TCNT1L = 0x0C。
//点阵LED扫描过程if(ScanDOTLEDCount<8>{DOTLEDPORT=DOTLEDBIT[ScanDOTLEDCount%8]。
51单片机串口通信仿真实现1616点阵显示程序
51单片机串口通信仿真实现1616点阵显示程序首先要了解串口通信的基本工作原理,连接图如下:虚拟终端连接:单片机+虚拟终端(作为串口输入设备)+串口连接图如下:设置如下:单片机虚拟终端选项作用如下:如果输入的是ASCII码,那么就不要勾选 Hex Display Mode如果输入的是16进制,那么就不要勾选 Hex Display ModeClear Screen 是清屏Echo Typed Characters 是你在虚拟终端窗口输入字符时,输入的字符显示在虚拟终端窗口上。
具体C程序如下(如有疑问联系本人,新浪微博地址:/1858560312):#include#include#define uint unsigned int#define uchar unsigned charunsigned char a,flag;char code YD[]={0x01,0x00,0x01,0x00,0x7F,0xFC,0x03,0x80,0x05,0x40,0x09,0x30,0x31,0x0E,0xDF,0xE4,0x00,0x80,0x01,0x00,0x7F,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,0x20,0x40,0x30,0x40,0x24,0x4C,0x42,0x70,0xFF,0x44,0x42,0x46,0x00,0x7C,0x7E,0x00,0x42,0x40,0x7E,0x4C,0x42,0x70,0x7E,0x40,0x42,0x44,0x42,0x46,0x4A,0x3C,0x44,0x00,0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x00,0x00,0xFF,0xFE,0x01,0x00,0x09,0x00,0x09,0xF8,0x09,0x00,0x15,0x00,0x23,0x00,0x40,0xFE,0x00,0x00,0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x40, 0x04,0x20,0x09,0x18,0x11,0x0E,0x61,0x04, 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, 0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, 0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80, 0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20, 0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04,/0x08,0x20,0x08,0x20,0x08,0x20,0x4B,0xFE, 0x4A,0x22,0x4A,0x22,0x4A,0x22,0x4A,0x22, 0x4A,0x22,0x4A,0x22,0x4A,0x22,0x12,0x2E, 0x12,0x24,0x20,0x20,0x40,0x20,0x80,0x20,0x00,0x00,0x7F,0xFC,0x00,0x10,0x1F,0x90, 0x10,0x90,0x1F,0x90,0x10,0x90,0x00,0x04, 0xFF,0xFE,0x00,0x10,0x1F,0x90,0x10,0x90, 0x1F,0x90,0x10,0x90,0x00,0x50,0x00,0x20 };void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void main(){int i;TMOD=0x20;//设置定时器1为工作方式2 TH1=0xfd;TH2=0xfd;//设置波特率为9600TR1=1;//启动定时器1SM0=0;SM1=1;//选择串口工作方式1REN=1;//允许接收数据EA=1;//打开总中断ES=1;//打开串口中断while(1){if(flag==1){flag=0;while(1){if(a==0x31)//键盘码十六进制{for(i=0;i<16;i++){P1=i;P0=~YD[2*i];P2=~YD[2*i+1];delay(2);}}if(a==0x32){for(i=1;i<17;i++) {P1=i;P0=~YD[32+2*i];P2=~YD[32+2*i+1]; delay(2);}}if(a==0x33){for(i=1;i<17;i++) {P1=i;P0=~YD[64+2*i];P2=~YD[64+2*i+1]; delay(2);}}if(a==0x34){for(i=1;i<17;i++){P1=i;P0=~YD[96+2*i];P2=~YD[96+2*i+1]; delay(2);}}if(a==0x35){for(i=1;i<17;i++) {P1=i;P0=~YD[128+2*i];P2=~YD[128+2*i+1]; delay(2);}}if(a==0x36){for(i=1;i<17;i++) {P1=i;P0=~YD[160+2*i];P2=~YD[160+2*i+1]; delay(2);}}if(a==0x37){for(i=1;i<17;i++){P1=i;P0=~YD[192+2*i];P2=~YD[192+2*i+1];delay(2);}}}//第二个while结尾}//if结尾}//第一个while结尾}//主函数结尾void ser() interrupt 4{RI=0;//接受中断标志位,清0为取消中断申请a=SBUF;//接收数据flag=1;//中断标志位}。
单片机原理与接口技术-基于51单片机的LED1616点阵的汉字显示设计
课题LED 16*16点阵的汉字显示专业:班级:姓名:学号:一、设计任务显示静止的汉字或者是滚动显示的汉字。
二、设计原理原理:点阵内部结构及外形如下,8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;所用到的单片机为8255和273,对单片机的简单介绍:8255单片机有A,B,C三个端口,都是8位的输入/输出锁存器,默认状态下为输出状态,还有控制口其地址为8003H。
8255有读写使能端口WR 和RD接受由CPU发来的控制信号,来判断是读还是写。
还有复位信号RESET。
本次实验基本上用到这些引脚。
对于273单片机主要用到它的端口地址0A000H。
连线方式为:●8255CS 接Y0,273CS 接Y2,●WR 接XWR,RD 接XRD,●A0 接XA0,A1接XA1,●RESET接RST, D0...D7接XD0...XD7三、设计所用软件与硬件16*16点阵的设计用到的硬件是电脑一台,8255单片机一个,273单片机一个。
所用到的软件是字模提取软件和单片机。
字模提取软件主要的功能就是将所要显示的汉字代码提取出来。
四、设计程序和代码程序为:#include<reg51.h>#include<absacc.h>#define PA XBYTE[0X8000H]#define PB XBYTE[0X8001H]#define PC XBYTE[0X8002H] //对单片机8255和273的#define PD XBYTE[0X8003H] //定义#define PE XBYTE[0XA000H] unsigned char code taa[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0 xff,0xff,0xff};unsigned char code tab[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0x fb,0xfd,0xfe}; //定义0的时候亮1的时候灭tbb[]={0xF0,0x00,0x1F,0x10,0x88,0x30,0x92,0x09,0x54,0x04,0x24,0x2 2,0x10,0x60,0xFF,0x11,0x10,0x28,0x38,0x64,0x58,0x20,0x94,0x11,0x92,0x08,0x11,0x06,0x90, 0x01,0x10,0x00} //’好’字的代码int x,i,j,k;void delayms(x){for(i=x;i>0;i--)for(j=10;j>0;j--);// 表示延时系统}void main(){PD=0x80; //对端口的初始化while(1){for(k=0;k<16;k++){PA=tbb[2*k];PB=tab[k];PC=tbb[2*k+1];PE=taa[k];delayms(3); //主程序}}}五、设计的优缺点设计的优点:本次设计是制作的静态的汉字,所编写的程序与代码简单易懂,适合于初级学员的理解与学习,在提取汉字的代码时直接用到的字模提取软件,很方便的就能获得其代码。
基于单片机的点阵汉字显示(附C语言程序).doc
湖南科技大学测控技术与仪器专业单片机课程设计题目基于单片机的点阵汉字显示设计姓名学号指导教师成绩____________________湖南科技大学机电工程学院二〇一五年十二月制摘要LED显示屏在我们的周围随处可见,它的应用已经普及到社会中的方方面面。
作为一种新型的显示器件,在许多场合都可以见到它的身影,不仅是它的应用使呈现出来的东西更加美观,更重要的是它的应用方便,成本很低,除了能给人视觉上的冲击外,更能给人一种美的享受。
LED显示屏是由多个发光二极管按矩阵形式排列封装而成,通常用来显示时间、图文等各种信息。
本设计是基于STC89C51单片机的16*16点阵式显示屏,该LED显示屏能实现16*16个汉字,简单的显示图像, 然后一直循环着显示下去。
该设计包含了硬件、软件、调试等方案,只需简单的级联就能实现显示屏的拓展,但要注意不要超过负载能力。
本次设计的作品体积小、效用多、方便实用、花费小,电路具有结构简单、操作方便、精度高、应用广泛的特点。
关键词: LED,STC89C51单片机,显示屏目录摘要 (i)第一章系统效用要求 (1)1.1系统设计要求 (1)第二章方案论证 (1)2.1方案论证 (1)第三章系统硬件电路设计 (1)3.1 STC89C51芯片的介绍 (1)3.1.1 系统单片机选型 (1)3.1.2 STC89C51引脚效用介绍 (2)3.1.374LS595的总体特点和工作原理……………………………………3.2 LED点阵介绍 (2)3.2.1LED点阵 (2)3.3系统各硬件电路介绍 (3)3.3.1系统电源电路设计介绍 (3)3.3.2复位电路 (3)3.3.3晶振电路 (4)3.4系统的总的原理图 (4)第四章系统程序设计 (5)4.1基于PROTEUS的电路仿真 (5)4.2用PROTEUS绘制原理 (5)4.3PROTEUS对单片机内核的仿真 (6)第五章调试及性能分析 (6)5.1系统的调试 (6)参考文献 (7)附录 (7)第一章设计要求1.1 系统设计要求1.以STC89C51系列的单片机为核心器件;组成一个点阵式汉字显示屏。
51单片机驱动16×16LED点阵显示动画汉字汇编程序
51单片机驱动16×16LED点阵显示动画汉字汇编程序电路图就不贴出来了16×16LED点阵的典型接法。
这里提供一个完整的AT89S51单片机驱动驱动led点阵显示具有动画效果的汉字的汇编程序列子.ORG 0000HST: MOV A,#0FFH ;初始化MOV P1,AMOV P2,AMOV P3,AMOV P0,ACLR AMOV R0,#50H ;显示缓存清0MOV R1,#20H ;控制清0的次数ST0: MOV @R0,AINC R0DJNZ R1,ST0;正文显示CHINESE: MOV DPTR,#TAB1 ;查表指针指向TAB1LCALL HZ;结束动画SCREE:MOV DPTR,#TAB2;查表指针指向TAB2ACALL DDMOV DPTR,#TAB3;查表指针指向TAB3ACALL DDMOV DPTR,#TAB4;查表指针指向TAB4ACALL DDLJMP CHINESE;显示8幅画面子程序,SCREE专用,用字模软件字要倒置(表必须深256字节)DD: MOV B,#00HMOV R0,#08H ;显示8幅画面AJMP CCCC0: MOV A,BADD A,#20H ;指向下一幅画面MOV B,ACC: MOV R7,#08H ;画面停留时间MOV R3,BMOV 37H,R0LCALL ENTERDIS00: LCALL DISPLAYDJNZ R7,DIS00MOV R0,37HDJNZ R0,CC0RET;汉字上移子程序,可显示8个汉字,(表必须深256字节)HZ: MOV R3,#00H ;查表偏移量MOV R5,#81H ;查表128次MOVBACK: MOV R4,#10H ;使显示完一个汉字MOVBACK0: MOV R7,#02H ;一桢画面显示时间MOV R0,#6DH ;低8位R0指向显示缓存倒数第3个字节,以备与最后1个字节交换MOV R1,#6CH ;高8位R1指向显示缓存倒数第4个字节,以备与倒数第2个字节交换MOV R2,#10H ;内存后移的次数DJNZ R5,MOVBACK1RET ;显示完该表,返回MOVBACK1: MOV A,@R0 ;低8位被后移的内存单元数据暂存入AINC R0 ;后移两字节INC R0MOV @R0,A ;放入要移的低8位数据MOV A,R0 ;R0指向下一个要后移的内存单元SUBB A,#04HMOV R0,AMOV A,@R1 ;高8位被后移的内存单元数据暂存入A INC R1 ;后移两字节INC R1MOV @R1,A ;放入要移高8位的数据MOV A,R1 ;R1指向下一个要后移的内存单元SUBB A,#04HMOV R1,A ;R1指向下一个要后移的内存单元DJNZ R2,MOVBACK1 ;显示缓存数据依次后移MOV A,R3 ;从表TAB1读入要移进50H,51H的数据MOVC A,@A+DPTR;先给50H读数据MOV 50H,AMOV A,R3 ;指向下一字节INC AMOV R3,AMOVC A,@A+DPTR;再给51H读数据MOV 51H,AMOV A,R3 ;指向下一字节INC AMOV R3,AMOV 30H,R3 ;保护数据MOV 31H,R4MOV 32H,R5DISMOV: LCALL DISPLAY ;显示当前数据DJNZ R7,DISMOVMOV R3,30HMOV R4,31HMOV R5,32HDJNZ R4,MOVBACK0MOV 30H,R3 ;保护数据MOV 32H,R5MOV R7,#24H ;显示当前数据延时DISMOV0: LCALL DISPLAYDJNZ R7,DISMOV0MOV R3,30HMOV R5,32HLJMP MOVBACK;放进一幅显示数据到显示缓存子程序,要先设好指针DPTR和R 3,影响R1,R2,R3ENTER: MOV R1,#50H ;从50H单元起把表存入MOV R2,#20H ;查表次数MOV A,R3CLLOOP_: MOVC A,@A+DPTR ;查表MOV @R1,A ;将表放进5X,6X单元INC R1 ;R1指向下一个地址空间MOV A,R3 ;查表指针后移INC AMOV R3,A ;将指针修改结果存入R3DJNZ R2,CLLOOP_;没查完转CLLOOP_RET;15MS,显示子程序,一桢32个字节,影响A,R0,R1,R3,R4,R5,R6;;单片机网提供汉字取模工具,可显示任意汉字DISPLAY: MOV A,#0FFHMOV P0,AMOV P1,AMOV P2,AMOV P3,ASETB CMOV R6,#7FH ;赋扫描字初值,左移后初值为0FEH MOV R5,#00H ;列扫描低8位控制MOV R0,#50H ;行的高8(p1)位要显示的数据起始地址MOV R1,#10H ;扫描次数DISLOOP: MOV A,@R0 ;从内存读数据MOV P2,#0FFH ;装入数据时不显示任何东西MOV P3,#0FFHCPL A ;数据取反以适合显示MOV P1,A ;送入行的高8(p1)位要显示的数据INC R0 ;修改R0指向低8位要显示的数据MOV A,@R0 ;读低8位要显示的数据CPL A ;数据取反以适合显示MOV P0,A ;送入行的低8(p0)位要显示的数据INC R0 ;R0指向下一个高8(p0)位要显示的数据LCALL NEXT ;调用列扫描程序LCALL DELAY1MS ;显示延时DJNZ R1,DISLOOP;一桢显示完返回MOV P3,#0FFH ;全灭RET;列扫描子程序DISLOOP专用NEXT: JNC NEXT1 ;C=0转扫描高8(p3)位行MOV A,R6 ;修改扫描字RL AMOV R6,AINC R5CJNE R5,#09H,NEXT0 ;R6=#0FEH时C=0AJMP NEXT1BACK: RETNEXT0: MOV P2,R6 ;扫描低8(p2)位行AJMP BACKNEXT1: MOV P2,#0FFHMOV P3,R6 ;扫描高8(p3)位行MOV A,R6 ;修改扫描字RL AMOV R6,AAJMP BACK;延时1MS子程序DELAY1MS: MOV R3,#10D0: MOV R4,#50D1: DJNZ R4,D1DJNZ R3,D0RETTAB1:DB 01FH,0F8H,001H,000H,07FH,0FEH,041H,004H,01DH,070 H,001H,000H,01DH,070H,000H,000HDB 01FH,0F0H,011H,010H,01FH,0F0H,011H,010H,01FH,0F2 H,001H,002H,001H,002H,000H,0FEH;電DB 000H,000H,03FH,0F0H,000H,020H,000H,040H,000H,080 H,001H,000H,001H,000H,001H,004HDB 0FFH,0FEH,001H,000H,001H,000H,001H,000H,001H,000 H,001H,000H,005H,000H,002H,000H;子DB 008H,000H,008H,0FCH,07EH,084H,008H,084H,0FFH,094 H,041H,088H,022H,080H,014H,0FEHDB 07EH,0A4H,008H,0A4H,008H,098H,0FFH,098H,008H,0A4 H,008H,0A6H,008H,0C4H,008H,080H;報DB 000H,000H,000H,010H,03FH,0F8H,000H,000H,000H,000 H,000H,000H,000H,000H,000H,000HDB 000H,000H,000H,000H,000H,000H,000H,004H,07FH,0FE H,000H,000H,000H,000H,000H,000H;二DB 01FH,0F8H,001H,000H,07FH,0FEH,041H,004H,01DH,070 H,001H,000H,01DH,070H,002H,080HDB 004H,060H,01AH,01EH,0E1H,008H,01FH,0E0H,000H,040 H,002H,080H,001H,000H,001H,000H;零DB 01FH,0F8H,001H,000H,07FH,0FEH,041H,004H,01DH,070 H,001H,000H,01DH,070H,002H,080HDB 004H,060H,01AH,01EH,0E1H,008H,01FH,0E0H,000H,040 H,002H,080H,001H,000H,001H,000H;零DB 004H,000H,003H,000H,001H,080H,001H,000H,0FFH,0FE H,000H,000H,000H,000H,004H,080HDB 006H,040H,004H,020H,008H,010H,008H,018H,010H,00C H,020H,00CH,040H,008H,000H,000H;六DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000 H,000H,000H,000H,000H,000H,000HDB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000 H,000H,000H,000H,000H,000H,000H;(空);结束动画;-- 水纹 -- ** 宋体, 12 **; 当前所选字体下一个汉字对应的点阵为: 宽度x高度=128x16, 调整后为: 128x16TAB2:DB 000H,000H,000H,000H,000H,000H,000H,000H,000 H,000H,000H,000H,000H,000H,001H,080HDB 001H,080H,000H,000H,000H,000H,000H,000H,000H,000 H,000H,000H,000H,000H,000H,000HDB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000 H,000H,000H,001H,080H,003H,0C0HDB 003H,0C0H,001H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000HDB 000H,000H,000H,000H,000H,000H,000H,000H,001H,080 H,002H,040H,004H,020H,008H,010HDB 008H,010H,004H,020H,002H,040H,001H,080H,000H,000 H,000H,000H,000H,000H,000H,000HDB 000H,000H,001H,0C0H,006H,030H,008H,008H,008H,008 H,010H,004H,020H,002H,020H,002HDB 020H,002H,010H,004H,008H,008H,008H,008H,006H,030 H,001H,0C0H,000H,000H,000H,000HDB 003H,0C0H,00CH,030H,010H,008H,010H,008H,060H,006 H,040H,002H,080H,001H,080H,001HDB 080H,001H,080H,001H,040H,002H,060H,006H,010H,008 H,010H,008H,00CH,030H,003H,0C0HDB 000H,000H,038H,01CH,046H,062H,081H,081H,080H,001 H,040H,002H,040H,002H,020H,004HDB 020H,004H,040H,002H,040H,002H,080H,001H,081H,081 H,046H,062H,038H,01CH,000H,000HDB 0C0H,003H,0A0H,005H,058H,01EH,024H,024H,024H,024 H,01EH,078H,005H,0A0H,002H,040HDB 002H,040H,005H,0A0H,01AH,078H,024H,024H,024H,024 H,058H,01AH,0A0H,005H,0C0H,003HDB 000H,000H,0C0H,003H,0B0H,00DH,088H,011H,044H,022 H,025H,0A4H,012H,048H,00DH,0B0HDB 00DH,0B0H,012H,048H,025H,0A4H,044H,022H,088H,011 H,0B0H,00DH,0C0H,003H,000H,000H;--福-- ** 宋体, 12 **; 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16TAB3:DB 0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0A AH,055H,055H,0AAH,0AAH,055H,055H,0AAHDB 055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0 AAH,0AAH,055H,055H,0AAH,0AAH,055HDB 0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,0 55H,054H,02AH,0A8H,015H,050H,00AHDB 050H,00AH,0A8H,015H,054H,02AH,0AAH,055H,055H,0A AH,0AAH,055H,055H,0AAH,0AAH,055HDB 0AAH,055H,054H,02AH,0A8H,015H,050H,00AH,0A0H,00 5H,040H,002H,080H,001H,000H,000HDB 000H,000H,080H,001H,040H,002H,0A0H,005H,050H,00A H,0A8H,015H,054H,02AH,0AAH,055HDB 0A0H,005H,040H,002H,091H,0F9H,000H,000H,074H,0F0 H,019H,008H,031H,008H,058H,0F0HDB 014H,000H,011H,0F8H,012H,044H,013H,0FCH,012H,044 H,091H,0F9H,040H,002H,0A0H,005HDB 020H,000H,013H,0FEH,010H,000H,0FDH,0FCH,005H,004 H,009H,004H,011H,0FCH,030H,000HDB 05BH,0FEH,096H,022H,012H,022H,013H,0FEH,012H,022 H,012H,022H,013H,0FEH,012H,002HDB 000H,004H,07FH,0C8H,000H,008H,03FH,0BFH,020H,0A0 H,020H,090H,03FH,088H,000H,00CHDB 07FH,0DAH,044H,069H,044H,048H,07FH,0C8H,044H,048 H,044H,048H,07FH,0C8H,040H,048HDB 010H,040H,010H,080H,091H,000H,073H,0FFH,014H,080 H,018H,040H,040H,0FFH,05EH,092HDB 052H,092H,052H,092H,052H,0FEH,052H,092H,052H,092 H,05EH,092H,040H,0FFH,000H,000HDB 012H,002H,013H,0FEH,012H,022H,012H,022H,013H,0FE H,012H,022H,096H,022H,05BH,0FEHDB 030H,000H,011H,0FCH,009H,004H,005H,004H,0FDH,0FC H,010H,000H,013H,0FEH,020H,000HTAB4:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0F8H,0FFH,0F8H,0FFH,0C0H,0FFH,0C0HDB 0FEH,000H,0FEH,000H,0F0H,000H,0F0H,007H,0B0H,002 H,0C8H,002H,048H,006H,030H,002H;STEP1DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H, 0FFH,0F8H,0FFH,0C0H,0FFH,0C0HDB 0FEH,000H,0FEH,000H,0F6H,000H,0F9H,007H,089H,002 H,086H,001H,000H,005H,000H,002H;STEP2DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H, 0FFH,0F8H,0FFH,0C0H,0FFH,0C0HDB 0FEH,0C0H,0FFH,020H,0F1H,020H,0F0H,0C7H,080H,001 H,080H,007H,000H,001H,000H,007H;STEP3DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H, 0FFH,0F8H,0FFH,0D8H,0FFH,0E4HDB 0FEH,024H,0FEH,018H,0F0H,000H,0F0H,001H,080H,001 H,080H,007H,000H,005H,000H,005H;STEP4DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FBH, 0FFH,0FCH,0FFH,0C4H,0FFH,0C3HDB 0FEH,000H,0FEH,000H,0F0H,000H,0F0H,007H,080H,001 H,080H,007H,000H,004H,000H,007H;STEP5DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 000H,000H,000H,000H,000H,000HDB 000H,000H,000H,000H,000H,000H,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 000H,000H,0F4H,058H,084H,0D4H,085H,052H,0F5H,052 H,085H,052H,086H,054H,0F4H,058HDB 000H,000H,022H,05EH,022H,050H,022H,050H,023H,0DE H,022H,050H,022H,050H,0FAH,05EHEND。
C51多汉字显示(16x16点阵)
1 采用自编的软件 2 专用的C程序 3 专用的字模软件
系统可以逐个显示多个汉字 系统可以左移显示多个汉字 系统可以上移显示多个汉字
列触发方式采用低电平(0)触发,行触发方式采用高电平(1) 触发 当某点所处的行为1,列为0的时候,该点被点亮
行 列 16 15 14 13 12 11 10 9 8 7 6 5 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 4 3 2 1
void clrscr() { //行驱动低无效 RowLow=(unsigned char)0x00; RowHigh=(unsigned char)0x00; //列驱动高无效 ColLow=(unsigned char)0xff; ColHigh=(unsigned char)0xff; } void lockdisplay() { //行驱动低无效 RowLow=(unsigned char)0x00; RowHigh=(unsigned char)0x00; }
列(一次2个字节)的输入是字模数据,左边字节取 反放入高位字节,右边字节取反放入低位字节 行(一次2个字节)的输入是行选通数据,它与汉字 字模的对应关系是从上到下为
0x8000,0x4000,0x2000,0x1000,0x0800,0x0400,0x0200,0x0100,0x0080,0x0 040,0x0020,0x0010,0x0008,0x0004,0x0002,0x0001
E1 E2 E3
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
A0 A1
74LS138
A B C Y3 Y2 Y1 Y0 Y4 Y5 Y6 Y7
基于51单片机的16×16点阵屏流动显示单片机课程设计
输入要输出的字
0x10,0x01,0x10,0x01,0x10,0x01,0x88,0x7F,0x88,0x40,0x4C,0x20,0x2C,0x04,0x0A,0x 04,
0x89,0x14,0x88,0x24,0x48,0x24,0x48,0x44,0x28,0x44,0x08,0x04,0x08,0x05,0x08,0x 02,
HzNum=0; //完全显示完后循环调用
}
}
Delay(2);//控制扫描频率
for( j=0;j<2;j++) //取每个汉字的前2个字节,
{
//汉字个数+1
buff[ j+j]=hztest[HzNum+j][count+count]; //每次移动完一个汉字后,选择下一个
汉字
精品课件
主程序
精品课件
点阵实物图组成
精品课件
3,点阵的原理图简介
1.74HC138芯片简介; 2.74HC595芯片简介; 3.点阵原理图讲解;
精品课件
1. 74HC138芯片
74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2), 并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特 有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。 除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。 利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可 轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任 选一个低有效使能输入端作为数据输入,而把其余的使能输入端作 为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的 使能输入端必须保持绑定在各自合适的高有效或低有效状态。
基于51单片机的16乘16点阵汉字显示设计
SendLeft(chinese[i+k]);
SendRight(chinese[num*16+i+k+15]);
ChooseColumn(i+1);
//
ChooseColumn(16-i);
DelayMs_12M(1); } } } }
//不需修改代码 只需前后加空格代码 //流动显示 需补充代码 //speed200 大概是 4 秒 一般取 4 //num<2000 void FlowDisplayBetter(uchar chinese[],uchar num,uchar speed) {
sbit upa=P2^1; sbit upb=P2^2; sbit upc=P2^3; sbit upg=P2^0;
sbit downa=P0^6; sbit downb=P0^7; sbit downc=P2^7; sbit downg=P1^0;
uchar code chinese1[]; uchar code chinese2[]; uchar code chinese3[]; uchar code title[]; uchar code collectiveShow1[]; uchar code testCode[];
main() {
Init(); while(1) {
//
SendLed(0x00);
DisplayChinese(chinese2,3,60);
FlowDisplay(title,14,3);
FlowDisplayBetter(testCode,3,3);
DelayMs_12M(10);
//
SendLed(0xff);
51单片机串口通信实现16 16点阵显示
51单片机开发的点阵实验附录2中讲到Proteus调试单片机串口的方法附录1中讲到8*8点阵的显示原理以下程序有本人编写,请参考:用串口调试助手发送个16进制01是个笑脸;02是个哭脸。
可以用上图,基于proteus做仿真。
C51程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit le1=P1^0;sbit le2=P1^1;sbit le3=P1^2;sbit le4=P1^3;uchar code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchar code tac[8][8]={{0x00,0x00,0xf8,0x04,0x32,0x4a,0x02,0x02},{0x02,0x12,0x22,0xc2,0x04,0xf8,0x00,0x00},{0x00,0x00,0x1f,0x20,0x4c,0x52,0x40,0x40},{0x40,0x48,0x44,0x43,0x20,0x1f,0x00,0x00},//笑脸{0x00,0x00,0xf8,0x04,0x02,0x4a,0x32,0x02},{0x02,0x02,0xc2,0x22,0x04,0xf8,0x00,0x00},{0x00,0x00,0x1f,0x20,0x40,0x52,0x4c,0x40},{0x40,0x40,0x43,0x44,0x20,0x1f,0x00,0x00},//哭脸uchar a=0;int b=0,c=0,flag=0,i; void init()//初始化{TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;SM0=0;SM1=1;REN=1;EA=1;ES=1;}void delay(uint n) {uint i,j;for(i=n;i>0;i--)for(j=80;j>0;j--); }void display()//显示if(b==1)c=0;if(b==2)c=4;P1=0xff;P0=0x00;P2=0xff;le2=0;le4=0;for(i=0;i<8;i++) {P2=tab[i];P0=tac[0+c][i];delay(1);}P1=0xff;P0=0x00;P2=0xff;le1=0;le4=0;for(i=0;i<8;i++) {P2=tab[i];delay(1);}P1=0xff;P0=0x00;P2=0xff;le1=0;le3=0;for(i=0;i<8;i++) {P2=tab[i];P0=tac[2+c][i];delay(1);}P1=0xff;P0=0x00;P2=0xff;le2=0;le3=0;for(i=0;i<8;i++) {P2=tab[i];delay(1);}}void main(){init();while(1){if(flag==1){if(b==1||b==2)display();}}}void ser()interrupt 4//串口中断{RI=0;a=SBUF;if(a==0x01)b=1;if(a==0x02)b=2;flag=1;}附1:目前我会的有3种1.单片机+虚拟终端(作为串口输入设备)+串口2.单片机+虚拟终端(作为串口输入设备)+MAX232+串口3.单片机+串口+虚拟串口程序(virtual serial port)+串口调试助手4.单片机+MAX232+串口+虚拟串口程序(virtual serial port)+串口调试助手(这个不会,主要是不知道该怎么在Proteus中连线,理论上方法4和3的连线方法是没有太大差别的,我也不知道哪里设置不对,一直没弄成功,问题出在加入了MAX232后)方法1和2的区别不大,只是在串口和单片机中间多接个MAX232,因为是仿真软件,所以串口有和没有MAX232的仿真结果是一样的,就是细节上的设置不同方法1连线如下:方法2连线图如下:方法1和方法2的区别在PCT(虚拟终端输入串口的PCT计算机发送端)的一个设置参数不同,(当波特率改变的时候虚拟终端里面的波特率设置也要改变)方法1设置如下方法2设置如下不同的地方在PCT,串口这边的虚拟终端的RX/TX Polarity的设置不同,当在单片机和串口间没接入MAX232,该项设置为normal,当在其间接入了MAX232该项设置为inverted。
51单片机驱动16×16列点阵显示动画汉字汇编器.doc
51单片机驱动16×16列点阵显示动画汉字汇编器。
51单片机驱动16×16点阵显示动画汉字汇编器这是一个完整的汇编器列AT89S51单片机驱动led点阵显示动画汉字。
组织机构0000HST: MOV A,# 0FFH初始化movp1、amovp2、amovp3、amovp0、aclramovr0、# 50h。
显示缓存已清除0MOV R1,# 20H控制清零次数0 st0:mov @ r0,aincr0 djnzr1,st0。
文字显示中文: MOV DPTR,# TAB1查找表指针指向TAB1LCALL HZ。
结束动画屏幕: movdptr,# tab2查找表指针指向TAB 2呼叫DDMOV DPTR,# TAB3查找表指针指向TAB4呼叫DDMOV DPTR,# TAB4查找表指针指向TAB4ACALL DDLJMP中文;显示8个图片子程序,CREE专用,文字用字体软件反转(表格必须为256字节深)DD: MOV B,#00HMOV R0,# 08H显示8张BADD MOV A、20H指向下一张图片MOV乙,MOV R7,08H 屏幕停留时间movr3、bmov37h、r0lcallenter dis 003360lcall调用显示djnzr7、dis00movr0、37h djnzr0、cc0ret。
汉字向上子程序可以显示8个汉字(表必须是256字节深)HZ: MOV R3,# 00H查找表偏移MOV R5,# 81H查找表128次,MOV R4,邮编:# 10H在显示了汉字“MOVBACK0:”后,# 02H一帧显示时间MOV R0,# 6DH较低的8位R0指向显示缓冲器底部的第三个字节,用于用最后一个字节交换MOV R1,# 6CH高8位R1指向显示缓冲器底部的第4个字节,用于交换MOV·R2,#10H和底部的第2个字节;DJNZ R5、MOVBACK1RET的内存回移次数;显示表格后,返回movback1:mova。
16215;16点阵led显示屏整个过程及c语言程序 (1)
16×16点阵LED显示屏整个过程及C语言程序7.1功能要求设计一个室内用16×16点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
7.2方案论证从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;……第十六行之后又重新燃亮第一行,这样反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
51单片机的16X16LED点阵式汉字电子显示屏的设计.
课程设计题目4个8x8点阵LED电子显示屏的设计学院物流学院专业物流工程班级物流ZY1001姓名宋金龙指导教师朱宏辉2013 年 6 月25 日摘要本设计是基于MCS-51的16x16点阵LED电子显示屏的设计,16x16的点阵共有256个发光二极管,我们采用动态扫描的显示方法,更节省锁存器也就节省了成本。
扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。
具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(即我们采用共阳极的接法)。
采用扫描方式进行显示时,每一行和每一列都有一个行驱动器和列驱动器,各行的同名列和各列的同名行共用一个驱动器。
我们采用四个74LS273锁存器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
编写点阵显示程序,利用proteus画出电路原理图并装入程序仿真调试,仿真成功后完成电路焊接并装入程序完成实物设计。
整个设计过程让我们学到许多实践知识!LED显示屏作为一种新型的显示器件,是由多个发光二极管按矩阵形式排列封装而成,通常用来显示时间、图文等信息,由点阵LED组成的汉字显示屏在工工程所应用非常广泛。
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
在实际应用中的显示屏由于成本和可靠性的因素常采用一种称为动态扫描的显示方法。
本文设计的是一个室内用16x16的点阵LED图文显示屏,图形或文字显示有静止、移入移出等显示方式。
本设计是基于MCS-51单片机的16x16显示屏,其中包含了硬件、软件、调试等方案的设计。
此外、该设计只需简单的级联就能实现显示屏的扩展,但级联时要注意不要超过驱动负载范围。
关键字:LED,点阵式,显示屏,AT89C51武汉理工大学《单片机课程设计》报告目录摘要 (2)第一章:绪论 (1)1.1掌握单片机应用系统的一般过程和方法 (1)1.2:设计要求 (1)第二章:硬件电路的设计 (1)2.1设计思路 (1)2.2实验器材 (1)2.2.1 锁存器74LS273介绍 (2)2.3硬件电路设计框图 (2)2.4 16*16点阵LED显示器汉字显示的工作原理 (3)2.5 如何将4片8x8的LED拼接成一片16x16的LED显示屏(显示屏的扩展) (5)2.6 点阵LED显示器与单片机的接口 (6)第三章:系统软件设计 (8)第四章:系统程序设计 (9)ORG 0000H (10)总结: (24)参考文献: (26)附:元件清单及仿真图 (27)武汉理工大学《单片机课程设计》实验报告第一章:绪论1.1掌握单片机应用系统的一般过程和方法综合运用单片机原理与接口技术课程和其它有关先修课程的理论及方法,分析和解决单片机应用系统的设计、分析和实验开发等相关问题,进一步巩固和加深对所学知识的理解。
16×16点阵滚动显示汉字c51程序
16×16点阵滚动显示汉字c51程序给大家共享一个51单片机驱动的16×16点阵滚动显示汉字的程序,是公车上用的。
下载源代码#include#define int8 unsigned char#define int16 unsigned int#define int32 unsigned longint8 flag;int8 n;int8 code table[][32]={欢迎您乘坐广州三汽公司公共汽车大学城2线开往大学城请您坐好扶稳具体的字码省略,请点此处下载本列16×16点阵汉字滚动显示源代码};void delay(void);int16 offset;void main(void){int8 i;int8 *p;flag=0x10;n=0;TMOD=0x01;TH0=0xb1;TL0=0xe0;ET0=1;EA=1;TR0=1;p=&table[0][0];while (1){for (i=0;i<8;i++) //显示左半边屏幕{P0=*(p+offset+2*i);P2=i|0x08; //P2.4=0,P2.3=1 选中U2, 输出扫描码给U6 delay();P0=*(p+offset+2*i+1);P2=i|0x10; //P2.4=1,P2.3=0 选中U3, 输出扫描码给U7 delay();}for (i=8;i<16;i++) //显示右半边屏幕{P0=*(p+offset+2*i);P2=(i-8)|0x20; //P2.5=1 P2.4=0, P2.3=0 选中U4,输出扫描码U8 delay();P0=*(p+offset+2*i+1);P2=(i-8)|0x40; //P2.6=1 P2.5=0, P2.4=0 选中U5,输出扫描码U9 delay();}}}void delay(void){int16 i;for (i=0;i<50;i++);}void timer0() interrupt 1 using 3{TF0=0;TH0=0xb1;TL0=0xe0;if (n1100)offset=0; n=0;}}。
基于单片机的点阵汉字显示(附C语言程序)资料
湖南科技大学测控技术与仪器专业单片机课程设计题目基于单片机的点阵汉字显示设计姓名学号指导教师成绩____________________湖南科技大学机电工程学院二〇一五年十二月制摘要LED显示屏在我们的周围随处可见,它的应用已经普及到社会中的方方面面。
作为一种新型的显示器件,在许多场合都可以见到它的身影,不仅是它的应用使呈现出来的东西更加美观,更重要的是它的应用方便,成本很低,除了能给人视觉上的冲击外,更能给人一种美的享受。
LED显示屏是由多个发光二极管按矩阵形式排列封装而成,通常用来显示时间、图文等各种信息。
本设计是基于STC89C51单片机的16*16点阵式显示屏,该LED显示屏能实现16*16个汉字,简单的显示图像, 然后一直循环着显示下去。
该设计包含了硬件、软件、调试等方案,只需简单的级联就能实现显示屏的拓展,但要注意不要超过负载能力。
本次设计的作品体积小、功能多、方便实用、花费小,电路具有结构简单、操作方便、精度高、应用广泛的特点。
关键词: LED,STC89C51单片机,显示屏目录摘要 (i)第一章系统功能要求 (1)1.1系统设计要求 (1)第二章方案论证 (1)2.1方案论证 (1)第三章系统硬件电路设计 (1)3.1 STC89C51芯片的介绍 (1)3.1.1 系统单片机选型 (1)3.1.2 STC89C51引脚功能介绍 (2)3.1.374LS595的总体特点和工作原理..........................................3.2 LED点阵介绍 (2)3.2.1LED点阵 (2)3.3系统各硬件电路介绍 (3)3.3.1系统电源电路设计介绍 (3)3.3.2复位电路 (3)3.3.3晶振电路 (4)3.4系统的总的原理图 (4)第四章系统程序设计 (5)4.1基于PROTEUS的电路仿真 (5)4.2用PROTEUS绘制原理 (5)4.3PROTEUS对单片机内核的仿真 (6)第五章调试及性能分析 (6)5.1系统的调试 (6)参考文献 (7)附录 (7)第一章设计要求1.1 系统设计要求1.以STC89C51系列的单片机为核心器件;组成一个点阵式汉字显示屏。
单片机课程设计-16×16点阵式汉字显示Word版
目录摘要 (1)Abstract (2)1设计原理 (3)1.1 MCS-51单片机的结构及编程方法 (3)1.2 16*16点阵LED原理 (5)1.3 3-8译码器原理 (6)2.设计方案介绍 (7)2.1 设计总体思路 (7)2.2 与题目相关的具体设计 (7)2.3程序设计流程图 (8)3.源程序,原理图和仿真图 (9)3.1程序清单(见附录) (9)3.2电路图 (9)3.2.1电路原理图 (9)3.2.2电路图分析 (9)3.3仿真图 (10)4性能分析 (11)5.总结和心得 (12)6.参考文献 (13)附录:程序代码 (14)摘要LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。
文章给出了一种基于MCS-51单片机的16×16 点阵LED显示屏的设计方案。
包括系统具体的硬件设计方案,软件流程图和部分汇编语言程序等方面。
在负载范围内, 只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的图文显示方案。
关键词:MCS-51;LED;单片机AbstractAs a popular display device component, LED dot-matrix display board consists of several independent LED (Light Emitting Diode). The LED dot-matrix display board can display the number or sign, and it is usually used to show time, speed, the state of system etc. This paper introduces a kind of simple 16x16 LED display screen design process based on MCS-51 single chip minicomputer . The detail hardware scheme, software flow and assemble language programmer design and so on is followed. The display part can be cascaded to meet the need. The practice proves the design is low-cost and effective.Key words: MCS-51;LED;MCU1设计原理1.1 MCS-51单片机的结构及编程方法MCS-51单片机的组成: CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16×16点阵滚动显示汉字c51程序给大家共享一个51驱动的16×16点阵滚动显示汉字的程序,是公车上用的。
下载源代码
#include
#define int8 unsigned char
#define int16 unsigned int
#define int32 unsigned long
int8 flag;
int8 n;
int8 code table[][32]={
欢迎您乘坐广州三汽公司公共汽车大学城2线开往大学城请您坐好扶稳
具体的字码省略,请点此处下载本列16×16点阵汉字滚动显示源代码
};
void delay(void);
int16 offset;
void main(void)
{
int8 i;
int8 *p;
flag=0x10;
n=0;
TMOD=0x01;
TH0=0xb1;
TL0=0xe0;
ET0=1;
EA=1;
TR0=1;
p=&table[0][0];
while (1)
{
for (i=0;i<8;i++) //显示左半边屏幕
{
P0=*(p+offset+2*i);
P2=i|0x08; //P2.4=0,P2.3=1 选中U2, 输出扫描码给U6 delay();
P0=*(p+offset+2*i+1);
P2=i|0x10; //P2.4=1,P2.3=0 选中U3, 输出扫描码给U7 delay();
}
for (i=8;i<16;i++) //显示右半边屏幕
{
P0=*(p+offset+2*i);
P2=(i-8)|0x20; //P2.5=1 P2.4=0, P2.3=0 选中U4,输出扫描码U8 delay();
P0=*(p+offset+2*i+1);
P2=(i-8)|0x40; //P2.6=1 P2.5=0, P2.4=0 选中U5,输出扫描码U9 delay();
}
}
}
void delay(void)
{
int16 i;
for (i=0;i<50;i++)
;
}
void timer0() interrupt 1 using 3
{
TF0=0;
TH0=0xb1;
TL0=0xe0;
if (n1100)
offset=0; n=0;
}
}。