液晶广告牌.doc_第1页
液晶广告牌.doc_第2页
液晶广告牌.doc_第3页
液晶广告牌.doc_第4页
液晶广告牌.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河 池 学 院 软 件 课 程(设计) 论文(设计)题目: 液晶广告牌 系级:物理与电子工程系专业:电子信息工程年级:2011级学生姓名:莫国武指导教师:刘迪时间:2013年6月15日摘 要2一、设计任务与要求31.1任务31.2要求3二、方案的设计与论证32.1方案一:基于单片机的LCD显示广告牌32.2方案二:基于单片机的LED显示广告牌32.3 方案比较3三、单元模块电路的设计33.1单片机的引脚图及简要介绍33.2 最小系统电路图63.3 LCD显示屏介绍73.4 QC12864B显示屏及控制器ST792083.4 按键模块介绍12四、软件设计与流程图134.1软件编程的介绍134.2软件的设计总体流程图13五、设计的总体概况及工作原理145.1设计的总原理图145.2 PCB板图155.3设计的工作原理16六、安装与调试186.1电路的制作与安装186.2电路软件测试19七、设计总结和心得20八、参考文献20九、程序清单21摘 要 电子技术的日新月异,使我们的生活更加方便、快捷。任何一个领域,技术总是在不停地向前发展。而随着技术的发展,新的产品应用也会跟着出现,然后成熟和普及。正如在显示器领域,由球面CRT到纯平CRT,由纯平CRT到如今主流的LCD液晶显示,而LCD汉字滚动显示更是应用广泛。本文设计了一种以AT89S52单片机为核心的低成本、高精度、微型化LCD汉字滚动显示系统。系统由单片机、外围电路、单片机最小系统以及显示电路构成。本文论述了由单片机控制的LCD汉字滚动显示系统的基本原理,并阐述了运用Protel软件实现系统的设计以及该系统所应用的领域。关键词 单片机AT89S52,LCD汉字滚动显示,Protel一、设计任务与要求1.1任务利用液晶显示器显示100字以内的10条固定汉字广告信息,每条广告信息可以依次轮流显示,也可以选择显示,显示采用前后滚动显示,滚动速度可调,采用的液晶显示器是12864LCD(ST7920控制器)有字库的。1.2要求利用LCD进行显示,LCD的有无字库不作要求。二、方案的设计与论证2.1方案一:基于单片机的LCD显示广告牌随着集成电路在微小型化、低功耗和高可靠性方面的发展,使得它们具有占用的面积小、价格低廉、易于购买、零辐射、低耗能、散热小、轻薄纤巧、精确还原图像、显示字符锐利、屏幕调节方便等诸多的优点。2.2方案二:基于单片机的LED显示广告牌LED显示屏是由发光二极管排列组成的。它采用低电压扫描驱动,具有耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可是距离远等特点。可以显示各种文字、数字、图像及动画等信息。2.3 方案比较在设计的过程中,方案的选择必须与实际相联系,要从各方面考虑设计的可行性,不仅要考虑其先进性也要考虑其现实性和实用性,要从多方面综合寻求最佳方案。在方案二中利用LED点阵显示的方式能够实现广告牌显示的目的,但电路相比方案一相对复杂,而且控制起来还需要掌握其他一些附加的芯片。 在方案一中,所用技术相对先进,而且硬件电路相对简单可靠不需附加其他的芯片,故利用方案一更为合理,故暂不采用方案二。三、单元模块电路的设计3.1单片机的引脚图及简要介绍单片机如图3.1所示。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 图 3.1 单片机AT89S52单片机的引脚介绍 VCC : 电源。GND: 地。P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节 P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。 引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT0(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器写选通) RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。 EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.2 最小系统电路图最小系统电路如图3.2所示。 图3.2 单片机最小系统单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。复位电路由按键复位和上电复位两部分组成。(1)上电复位:STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。(2)按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片机的一切指令的执行都是建立在单片机晶振提供的时钟频率。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。AT89S52使用12MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。3.3 LCD显示屏介绍1LCD的定义及作用 LCD 液晶显示器是 Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。比CRT要好的多,但是价钱较其稍贵。 LCD主要应用于电脑的显示屏,随着电子技术的发展越来越多的手写手机也大量使用LCD做显示屏,还有一些广告牌、标语栏等也都用LCD来显示。2LCD显示器的工作原理 从液晶显示器的结构来看,无论是笔记本电脑还是桌面系统,采用的LCD显示屏都是由不同部分组成的分层结构。LCD由两块玻璃板构成,厚约1mm,其间由包含有液晶材料的5m均匀间隔隔开。因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管,而在液晶显示屏背面有一块背光板(或称匀光板)和反光膜,背光板是由荧光物质组成的可以发射光线,其作用主要是提供均匀的背景光源。 背光板发出的光线在穿过第一层偏振过滤层之后进入包含成千上万液晶液滴的液晶层。液晶层中的液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。在玻璃板与液晶材料之间是透明的电极,电极分为行和列,在行与列的交叉点上,通过改变电压而改变液晶的旋光状态,液晶材料的作用类似于一个个小的光阀。在液晶材料周边是控制电路部分和驱动电路部分。当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。 液晶显示技术也存在弱点和技术瓶颈,与CRT显示器相比亮度、画面均匀度、可视角度和反应时间上都存在明显的差距。其中反应时间和可视角度均取决于液晶面板的质量,画面均匀度和辅助光学模块有很大关系。 对于液晶显示器来说,亮度往往和他的背板光源有关。背板光源越亮,整个液晶显示器的亮度也会随之提高。而在早期的液晶显示器中,因为只使用2个冷光源灯管,往往会造成亮度不均匀等现象,同时明亮度也不尽人意。一直到后来使用4个冷光源灯管产品的推出,才有很大的改善。 信号反应时间也就是液晶显示器的液晶单元响应延迟。实际上就是指的液晶单元从一种分子排列状态转变成另外一种分子排列状态所需要的时间,响应时间愈小愈好,它反应了液晶显示器各像素点对输入信号反应的速度,即屏幕由暗转亮或由亮转暗的速度。响应时间越小则使用者在看运动画面时不会出现尾影拖拽的感觉。有些厂商会通过将液晶体内的导电离子浓度降低来实现信号的快速响应,但其色彩饱和度、亮度、对比度就会产生相应的降低,甚至产生偏色的现象。这样信号反应时间上去了,但却牺牲了液晶显示器的显示效果。有些厂商采用的是在显示电路中加入了一片IC图像输出控制芯片,专门对显示信号进行处理的方法来实现的。IC芯片可以根据VGA输出显卡信号频率,调整信号响应时间。由于没有改变液晶体的物理性质,因此对其亮度、对比度、 色彩饱和度都没有影响,这也是为什么华硕、三星、LG等技术型厂商的液晶产品画面效果更好的原因,但是这种方法的制造成本也相对较高。 由上便可看出,液晶面板的质量并不能完全代表液晶显示器的品质,没有出色的显示电路配合,再好的面板也不能做出性能优异的液晶显示器。随着LCD产品产量的增加、成本的下降,液晶显示器会大量普及。3.4 QC12864B显示屏及控制器ST7920 ST7920控制器,5V电压驱动,带背光,内置8192个1616点阵、128个字符(816点阵)及64256点阵显示RAM(GDRAM),与外部CPU接口采用并行或串行两种控制方式。本文将对以ST920为内核的LCD12864的并行控制方式方式及C51编程方法予以介绍。1.QC12864B与单片机连线及介绍 其电路如图3.4所示 图3.42. QC12864B引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位 低电平有效18VOUT这脚没用,可以悬空19LED_A(LED+5V),背光这脚可能与板上标的不符,以线路板标的为准20LED_K(LED-OV)背光这脚可能与板上标的不符,以线路板标的为准3主要技术参数和显示特性:电源:VDD 3.3V+5V(内置升压电路,无需负压);显示内容:128列 64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等逻辑工作电压(VDD):4.55.5V电源地(GND):0V工作温度(Ta):060(常温) / -2075(宽温)4.控制器接口信号说明:1、RS,R/W的配合选择决定控制界面的4种模式:RSR/W功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数据暂存器(DR)中读出数据2、E信号E状态执行动作结果高低I/O缓冲DR配合/W进行写数据或指令高DRI/O缓冲配合R进行读数据或指令低/低高无动作 5. 忙标志:BF BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.利用STATUS RD 指令,可以将BF读到DB7总线,从而检验模块之工作状态6.指令说明指 指 令 码功 能令RSR/WD7D6D5D4D3D2D1D0清除显示0000000001将DDRAM填满20H,并且设定DDRAM的地址计数器(AC)到00H地址归位000000001X设定DDRAM的地址计数器(AC)到00H,并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容显示状态开/关0000001DCBD=1: 整体显示 ONC=1: 游标ON B=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容 功能 设定00001DLXREXXDL=0/1:4/8位数据RE=1: 扩充指令操作RE=0: 基本指令操作 设定CGRAM 地址0001AC5AC4AC3AC2AC1AC0设定CGRAM 地址 设定DDRAM 地址0010AC5AC4AC3AC2AC1AC0设定DDRAM 地址(显示位址)第一行:80H87H第二行:90H97H读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据到RAM10数据将数据D7D0写入到内部的RAM (DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7D0(DDRAM/CGRAM/IRAM/GRAM)7.时序图 MPU写资料到ST7920(8位数据线模式)8.汉子坐标显示字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH3.4 按键模块介绍其电路图如图3.4所示 图3.4按键功能说明:KEY1的功能是广告前后滚动显示和广告依次轮流显示的跳转,它的第二功能是:当进入广告选择显示时,它执行的是选择下一条的操作;KEY2的功能是广告选择显示的跳转,它的第二功能是:当进入广告选择显示时,它执行的是选择上一条的操作;KEY3的功能是广告前后滚动显示的加速键,其按键连接的是52单片机的P3.2引脚,是外是外部中断0的输入接口;KEY4的功能是广告前后滚动显示的减速键,其按键连接的是52单片机的P3.3引脚,是外是外部中断1的输入接口;KEY5的功能是当进入广告选择显示时,它执行的是广告前后滚动显示的操作。四、软件设计与流程图4.1软件编程的介绍软件系统在作品设计中占有重要的地位,软件的设计是在硬件系统和需要的功能基础之上进行程序设计的,并不断的调试完善的。在本项目中不需要太复杂的编程语言,使用简单的C语言编程,本设计采用模块化编程,分别对液晶显示模块和AD转换模块采用独立编程。使用C语言很容易实现程序的模块化设计。4.2软件的设计总体流程图 五、设计的总体概况及工作原理5.1设计的总原理图 其电路图如图5.1所示 图5.15.2 PCB板图其电路图如图5.2所示 图5.25.3设计的工作原理本设计 要实现的功能通过液晶显示器显示100字以内的10条固定汉字广告信息,每条广告信息可以依次轮流显示,也可以选择显示,显示采用前后滚动显示,滚动速度可调。在设计中广告信息可以依次轮流显示是通过定时给12864液晶屏送数据及清零实现的,对每条广告信息可以选择显示是通过switch(num)函数实现的,对广告信息采用前后滚动显示是通过12864液晶指令write_com(0x18)显示向左移位指令实现的, 滚动速度可调是通过AT89S52单片机里面的外部中断0和外部中断1实现的。5.4各个函数的写法整个程序是由忙检测子函数、写指令子函数、写数据子函数、汉字显示子函数、按键检测函数、主函数和中断函数构成。(1) 忙检测函数 void chk_busy()/检查忙位(底层) RS=0; RW=1; E=1; P2=0xff; while(P2&0x80)=0x80); E=0;确保P2数据口的最高位是否为0,如果为1的话,表示模块在进行内部操作,此时模块不接受外部指令和数据,只有P2数据口最高位为0时,模块才可以接受外部指令和数据。(2) 写指令子函数和写数据子函数void write_com(uchar com)/写命令到LCD(底层)chk_busy();RS=0;RW=0;E=1;P2=com;E=0;void write_dat(uchar dat) /写数据到LCD(底层)chk_busy();RS=1;RW=0;E=1;P2=dat;E=0;由并行写操作时序可知,发送指令和数据只需要送一个高脉冲即可。(3)汉字显示子函数uchar table=广告信息;void delay(void) uchar i; write_com(0x82); /写入 “广告信息” for(i=0;i8;i+) write_dat(tablei); (4)按键检测函数if(KEY = 0) delay_ms(10); /延时消抖 if(KEY= 0) while(!KEY); /等待按键释放 执行相应程序; (5)主函数main() KEY_1 = 1;KEY_2 = 1;KEY_3 = 1;KEY_4 = 1;KEY_5 = 1;/初始键盘lcd_init(); /初始化液晶显示器 EA=1; /全局中断开 EX0=1; /外部中断0开 IT0=1; /IT1=0表示边沿触发 EX1=1; /外部中断1开 IT1=1; /IT1=1表示边沿触发 while(1) 执行相应程序; (6)中断函数void ISR_Key(void) interrupt 0 if(KEY=0) delay_ms(10); /在此处可以添加去抖动程序,防止按键抖动造成错误 if(KEY=0) while(!KEY);/等待按键释放 while(1) 执行相应程序; 六、安装与调试6.1电路的制作与安装单片机最小系统电路和12864液晶显示电路用protel99se画原理图,画PCB板,用热转印法制作电路板。电路板做好后焊接好相应的元器件,元器件焊完后检查好电路看是否连接正确,以免通电烧坏电路。焊接好的电路如图6.1所示 图6.1 电路实物图6.2电路软件测试硬件测试完后,接着进行软件的测试,编写一个液晶显示程序,观察液晶是否显示正常。液晶能够正常显示,说明下载器正常工作,电路运行正常。电路调试成功后如图6.2所示 图6.2 调试成功后的实物图七、设计总结和心得我觉得做单片机课程设计是十分有意义的,而且是十分必要的。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。在做本次课程设计的过程中,我感触最深的当属查阅很多设计资料了,无论是课本上的还是网上的都浏览了不少相关的程序,从中也借鉴了别人的思想,开阔了自己的思路。做单片机课程设计,对设计者对软硬件的理解和掌握的要求都比较高。在设计程序之前,设计者必学对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断我觉得做单片机课程设计是十分有意义的,而且是十分必要的。经过两周的单片机课程设计,成功的完成了对液晶显示广告牌的设计。在设计的过程中遇到了诸多的问题,但在同学的帮助下问题都得以解决。首先,在此非常感谢同学在设计中对我的帮助和督促,指导了我怎样利用已有的知识分析电路和设计电路,怎样用protel99se软件来画原理图,最重要的是让我学到了做人应该具有严谨和认真的态度。再设计的过程中由于自己性格浮躁和没有耐心的原因,使得课程设计迟迟没能完成。要体验成功的快感就得付出百般的努力,曾经做事毛手毛脚和半途而废我也终于在同学的帮助下体验了一回成功的乐趣。在这次课程设计的过程中,我不仅巩固了很多的理论知识而且还让我积累了很多将理论运用于实践的经验。同时也激发了我对理论知识学习的兴趣,更培养了我独立思考和解决问题的能力。八、参考文献1郭天祥.51单片机C语言教程M.电子工业出版社,20092童诗白,华成英.模拟电子技术基础M.清华大学出版社,20063李凤霞.C语言程序设计教程M.北京理工大学出版社,2011九、程序清单/*/头文件#include #include #define uint unsigned int#define uchar unsigned char/*/声明函数 void delay26(); void delay27(); void delay28(); void delay29(); /*/定义变量 int num; num=1;/*/键盘引脚定义sbit KEY_1 = P30; sbit KEY_2 = P31; sbit KEY_3 = P32; sbit KEY_4 = P33; sbit KEY_5 = P34; /*/液晶显示内容uchar table1=河池学院;uchar table2=广西大学;uchar table3=广西科技大学;uchar table4=广西师范大学;uchar table5=广西财经学院;uchar table6=广西医科大学;uchar table7=玉林师院;uchar table8=钦州学院;uchar table9=广西民族学院;uchar table10=广西艺术学院;/*/LCD接口定义sbit RS = P35;/模式位,为0输入指令,为1输入数据sbit RW = P36;/读写位,为0读,为1写sbit E = P37;/使能位sbit psb = P07;/并行或串行选择/#define P P2;/*/void delay_ms(uint x)/延时函数 1MS/次uint i,j;for(i=0;ix;i+) for(j=0;j110;j+); /j 从0加到110,CPU大概就耗时1毫秒/*/LCD驱动(12864液晶显示屏并口驱动程序)void chk_busy()/检查忙位(底层) RS=0; RW=1; E=1; P2=0xff; while(P2&0x80)=0x80); E=0;/*/void write_com(uchar com)/写命令到LCD(底层)chk_busy();RS=0;RW=0;E=1;P2=com;E=0;/*/void write_dat(uchar dat) /写数据到LCD(底层)chk_busy();RS=1;RW=0;E=1;P2=dat;E=0;/*/void lcd_init()/初始化LCD屏(被调用层) psb = 1; write_com(0x30); /选择8bit数据流 write_com(0x0c); /开显示(无游标、不反白) write_com(0x01); /清除显示,并且设定地址指针为00H/*/广告内容显示程序void delay1(void) uchar i,j; write_com(0x82); /写入 “河池学院” for(i=0;i8;i+) write_dat(table1i); write_com(0x8a); /写入 “广西大学” for(j=0;j8;j+) write_dat(table2j); /*/void delay2(void) uchar i,j; write_com(0x82); /写入 “广西大学” for(i=0;i8;i+) write_dat(table2i); write_com(0x89); /写入 “广西科技大学” for(j=0;j12;j+) write_dat(table3j); /*/void delay3(void) uchar i,j; write_com(0x81); /写入 “广西科技大学” for(i=0;i12;i+) write_dat(table3i); write_com(0x89); /写入 “广西师范大学” for(j=0;j12;j+) write_dat(table4j); /*/void delay4(void) uchar i,j; write_com(0x81); /写入 “广西师范大学” for(i=0;i12;i+) write_dat(table4i); write_com(0x89); /写入 “广西财经学院” for(j=0;j12;j+) write_dat(table5j); /*/void delay5(void) uchar i,j; write_com(0x81); /写入 “广西财经学院” for(i=0;i12;i+) write_dat(table5i); write_com(0x89); /写入 “广西医科大学” for(j=0;j12;j+) write_dat(table6j); /*/void delay6(void) uchar i,j; write_com(0x81); /写入 “广西医科大学” for(i=0;i12;i+) write_dat(table6i); write_com(0x8a); /写入 “玉林师院” for(j=0;j8;j+) write_dat(table7j); /*/ void delay7(void) uchar i,j; write_com(0x82);/写入 “玉林师院” for(i=0;i8;i+) write_dat(table7i); write_com

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论