




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安欧亚学院本科毕业论文(设计)目录 1 绪论11.1 嵌入式系统开发的背景及意义11.1.1本课题的研究方法和理论依据11.1.2 嵌入式系统当前国内外发展情况21.1.3 嵌入式系统的发展前景及相关问题。31.2选题意义41.3本课题的设计思路42 系统组成原理52.1 LPC2103的引脚功能52.2 SPI总线52.3 SD模块的构成62.4 SPI中断应用82.5看门狗的组成原理82.5.1看门狗的工作原理82.5.2看门特的特性82.6 12864液晶103 程序设计123.1 SPI总线及其中断123.2 基于SPI总线的SD卡程序设计方案143.2.1 SD初始化143.2.2 SD卡读一个扇区函数143.2.3 SD卡写一个扇区函数153.2.2 基于SPI总线的SD卡设计的流程图153.2.2 SD卡程序流程图163.2.4 基于SPI总线的SD卡程序设计的扩展193.3.1 看门狗的程序流程图203.3.2 看门狗的程序清单213.4.2 12864液晶的程序流程图223.4.3 12864液晶的程序设计清单223.4.4 12864液晶的程序设计扩展24(1)12864的GUI建立244 程序调试和功能分析264.1 使用仪器264.2 调试前准备工作264.3 系统调试265 问题处理27致谢28参考文献29 1 绪论1.1 嵌入式系统开发的背景及意义嵌入式计算机系统的出现,是现代计算机发展史上的里程碑。嵌入式系统诞生于微型计算机时代,于通用计算机的发展道路完全不同,形成了独立的单芯片的技术发展道路。由于嵌入式系统的诞生,现代计算机领域出现了通用计算机与嵌入式计算机两大分支。不可兼顾的技术发展道路,形成了两大分支的独立发展;通用计算机按照高速、海量的技术发展;嵌入式计算机系统则为满足对象系统按照嵌入式智能化控制要求发展。由于独立的分工发展,20实际末,现代计算机的两大分支都得到了迅猛的发展。经过几十年的发展,嵌入式系统已经在很大程度上改变了人们的生活、工作和娱乐方式,而且这些改变还在加速。嵌入式系统具有无数的种类,每种都具有自己独特的个性。例如,MP3,数码相机与打印机就有很大的不同。汽车中更是具有多个嵌入式系统,是汽车更轻快、更干净、更容易驾驶。即使不可见,嵌入式系统也无处不在。嵌入式系统在很多产业中得到了广泛的应用并逐步改变着这些产业,包括工业自动化、国防、运输和航天领域。例如神州飞船和长征火箭中有很多嵌入式系统,导弹的制导系统也是嵌入式系统,高档汽车中也有多达几十个嵌入式系统。在日常生活中,人们使用各种嵌入式系统,但未必知道他们,事实上,几乎所有的带有智能的家电都有嵌入式系统。嵌入式系统广泛的适应能力和多样性,使得视听,工作场所甚至健身设备中到处都有嵌入式系统。1.1.1本课题的研究方法和理论依据本课题采用C语言进行程序的开发和编写,C语言具有如下特点:(1)语言简洁.紧凑.使用方便.灵活。(2)运算符丰富。(3)数据结构丰富,具有现代化语言的各种数据结构。(4)具有现代化的控制语句(如if.else语句while语句.do.while语句switch语句.for语句)。(5)语法限制不太严格,程序设计自由度大。(6)C语言能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。(7)生成目标代码质量高,程序执行效率高。(8)程序可移植性好开发平台为IAR EWARM;IAR Embedded Workbench for ARM 是IAR Systerms公司为ARM微处理器开发的一个集成开发环境,比较其他的ARM开发环境,IAR EWARM具有入门容易、使用方便和代码紧凑等特点。为了能够在真实的目标板上进行代码运行和调试,专门购买了IAR公司的JTAG仿真器J-Link。J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWARM,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9内核芯片的仿真,通过RDI接口和各集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。J-Link ARM的主要特点IAR EWARM集成开发环境无缝连接的JTAG仿真器支持所有ARM7/ARM9内核的芯片,以及cortex M3,包括Thumb模式支持ADS,IAR,KEIL,WINARM,REALVIEW 等几乎所有的开发环境下载速度高达ARM7:600KB/s,ARM9:550kB/s,通过DCC最高可达800kB/s最高JTAG速度12MHz目标板电压范围1.2V-3.3V自动速度识别功能检测所有的JTAG信号和目标板电压完全即插即用使用USB电源带USB连接线和20芯扁平电缆支持多JTAG器件串行连接标准20芯JTAG仿真插头选配14芯JTAG仿真插头选配用于5V目标板的适配器带J-Link TCP/IP server,允许通过TCP/IP 网路使用 J-Link1.1.2 嵌入式系统当前国内外发展情况ARM公司自1990年正式成立以来,在32位RISCCPU开发领域不断取得突破,其结构已经从V3发展到V6。由于ARM公司自成立以来,直以IP提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功,目前已经占有75%以上32位RISC嵌入式产品市场。在低功耗、低成本的嵌入式应用领域确立了市场领导地位。现在设计、生产ARM芯片的国际大公司已经超过50多家,国中兴通讯和华为通讯等公司已经购买ARM公司芯核用于通讯专用芯片的设计。目前非常流行的ARM芯核有ARM7TDMI,StrongARM,ARM720T,ARM9TDMI,ARM922T,ARM940T,RM946T,ARM966T,ARM10TDMI等。自V5以且,ARM公司提供Piccolo DSP的芯核给芯片设计得,用于设计ARMDSP的SOC结构芯片。此外,ARM芯片还获得了许多实时操作系统供应商的支持,比较知名的有:Windows CE、Linux、pSOS、VxWorks、Nucleus、EPOC、uCOS、BeOS等。目前可以提供ARM芯片的著名欧美半导体公司有:英特尔、德洲仪器、三星半导体、摩托罗拉、飞利浦半导体、意法半导体、亿恒半导体、科胜讯、ADI公司、安捷伦、高通公司,我国台湾地区可以提供ARM芯片的公司台积电、台联电、华帮电子等。其它已购买ARM芯核,正在设计自主版板权专用芯片的大陆公司会为通讯中兴通讯等。嵌入式系统的发展非常的迅速,国内的研发水平却处于起步阶段,但是嵌入式系统的应用是无处不在的,所以今后还有相当长的路要走。1.1.3 嵌入式系统的发展前景及相关问题。由于网络与通信技术的发展,嵌入式系统在经历了近20年的法杖历程后,有进入了一个新的历史发展阶段,即从普遍的低端应用进入到一个高端、低端并行发展,并且不断提升低端应用技术水平的时代,其标志是近年来32位MCU的发展。32位MCU的应用不会走8位机百花齐放、百余种型号系列齐上阵的道路,这是因为在8位机的低端应用中,嵌入对象与对象专业领域十分广泛而复杂;而当前32位MCU的少数型号系列上。在嵌入式系统高端应用的发展中,曾经有众多的厂家参与,很早就有许多8位嵌入式MCU厂家实施了8位,16位和32位机的发展计划。后来,8位和32位机的技术扩展侵占了16位机的发展空间。传统电子系统智能化对8位机的需求是这些厂家将主要精力放在8位机的发展上,形成了32位机发展迟迟不签的局面。当网络、通信和多媒体信息家电业兴起后,ARM公司适时地推出了32位ARM系列嵌入式微处理器,以至于使不少传统嵌入式系统厂家放弃了自己的32位发展计划,转而使用ARM内核来发展自己的32位MCU。甚至在嵌入式系统发展上做出卓越贡献的Intel公司以及将单片机微型计算机发展到微控制器的PHILIPS公司,在发展32位嵌入式系统时都不另起炉灶,而是转而使用ARM共识的嵌入式系统内核来发展自己的32位MCU。网路、通信、多媒体和信息家电时代的到来,无疑为32位嵌入式系统高端应用提供了空前巨大的发展空间;同时。也为力不从心的8位机向高端发展起到了竭力作用。一般来说,嵌入式系统的高低端应用模糊的定界位:高端用于具有海量数据处理的网络、通信和多媒体领域,低端则用于对象系统的控制领域。然而,控制系统的网络化、智能化的发展趋势要求在这些8位机的应用中提升海量数据处理能力。当8位机无法满足这些提升要求时,便会转而求助32位机的解决办法。因此,32位机的市场需求发展由两方面所致:一方面是高端新兴领域的拓展;另一方面是低端控制领域应用在数据处理能力的提升要求。后PC时代的到来以及32位嵌入式系统的高端应用吸引了大量计算机人士,加之嵌入式系统的软/硬件技术的发展,导致了嵌入式系统应用模式的巨大变化,即使嵌入式系统工业进入到一个基于软/硬件平台,集成开发环境的应用系统开发时代,并带动了SoC技术的发展。1.2选题意义嵌入式系统无疑是当前最热门最有发展前途的应用领域之一,嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源非常有限,并且对成本很敏感,有时对实时响应要求很高等。嵌入式产品主要分布在移动通讯,消费电子,无限网络,医疗,安全,工业控制和军事国防等社会生活的哥哥领域。由于社会对掌握嵌入式技术人才的大量需求,是嵌入式软硬件工程师成为未来几年最为热门的职业之一。作为一名即将毕业走入社会的大学生,就业是我们首先要面临的问题。而近几年嵌入式软件行业迅猛发展,嵌入式产品渗入各个行业,像常见到的手机、PDA、机顶盒、高清电视(HDTV)、路由器、汽车电子、数码相机、医疗仪器、航天航空设备等等都是典型的嵌入式系统,嵌入式开发已经成为当前最热门最有发展前途的行业之一。业内人士认为,目前嵌入式行业至少存在30-50万的人才缺口,仅西安市场嵌入式软件开发人员的需求就已经超过了5万人,而且还在持续增加,这主要有两方面的原因:一是与目前我们高校的专业设置有关,我国高校的计算机教育普遍以应用软件为主,很少涉及嵌入式软件的课程,因此企业很难招聘到马上可以投入嵌入式软件开发的实战型人才;二是嵌入式领域门槛相对较高,知识要求比较全面,而且需要一定的实验环境(开发板和工具软件)和有经验的人进行指导.毕业设计是对我们所学知识的综合应用,考察我们专业知识的广度和深度,而系统化的设计是我们平时所欠缺的,毕业设计既是对我们所学知识的补充强化,也是对我们专业知识的考察和学习、动手能力的体现。所以学好嵌入式系统开发不仅是学习上的需要更是今后工作的主要方向。1.3本课题的设计思路本课题主要侧重于SPI接口的SD卡,SPI中断,看门狗应用,LCD显示这四个模块。要对这四个,模块进行驱动程序的编写,首先要熟练掌握ARM7系列的体系结构和ARM指令集。掌握ARM的电路结构,以便进行端口的初始化,锁相环的设定,和相关寄存器的初始化设定。其次是了解这些功能模块的接口电路,从而完成相关寄存器的设定,驱动设备正常的运行。然后是对已经模块化,系统化的C语言函数代码进行优化,提高运行的速度和效率。最后是进行一个综合上述模块的实例开发,以检验各个模块是否可以独立而又兼容无干扰的工作。2 系统组成原理2.1 LPC2103的引脚功能16/32位ARM7TDMI-S处理器,极小型LQFP48封装。10位A/D转换,8个模拟输入,最低2.44微妙。2个32位的定时器/外部事件计数器,具有7路捕获、比较通道。低功耗实时时钟等。如图2.1所示。 图2.1 LPC2103管脚图2.2 SPI总线SPI总线:SPI总线系统是一种同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信,数据交换。外围设备包括Flash、RAM、A/D换器、网络控制器、MCU等。SPI系统可直接与各个厂家生产的多种标准外围器件直接接口。一个SPI总线可以连接多个主机和多个从机,但是在同一时刻之允许有一个主机操作总线。在数据传输过程中,总线上只能有一个从机通信。在一次数据传输中,主机总是向从机发送一个字节的数据,而从机也总是向主机发送一个字节的数据。SPI总线时钟是有主机产生的。如图2.2所示。主机输入/从机输出数据线MISO主机输出/从机输入数据线MOSI时钟信号,有主器件产生SCLK从器件使能信号,有主器件产生/SS 图2.2 SPI总线配置2.3 SD模块的构成 图2.3-1 SD卡的实物图和引脚分布 表2.3-1 SD卡的引脚功能说明针脚名称类型描述1CD DAT3I/O/PP卡检测数据位32CMDPP命令/回复3VssS地4VccS供电电压5CLKI时钟6Css2S地7DAT0I/O/PP数据位08DAT1I/O/PP数据位19DAT2I/O/PP数据位2SD卡的接口规范(1)容量32MB-4GB(2)两个可选的通信协议:SD模式和SPI模式(3)可变时钟频率0-25MHz(4)通信电压和工作电压范围:2.0-3.6V(5)低电压消耗:自动断电及自动睡醒,智能电源管理(6)无需额外编程电压(7)卡片带电插拔保护(8)兼容MMC卡(9)高速串行接口带随机存取(10)数据寿命:10万次编程/擦除(11)PIP封装技术(12)尺寸:24mm x 32mm x 1.44mm 图2.3-2 SD卡的硬件连接原理 表2.3-2 SD卡的SPI模式针脚名称类型描述1CSI片选2DII数据输入3VssS地4VccS供电电压5CLKI时钟6Vss2S地7DOO数据输出8RSV-9RSV-2.4 SPI中断应用LPC2000系列ARM SPI接口具有中断功能,当传输完成或者发生模式错误时,SPI接口就会触发中断,SPI接口中断与向量中断控制器(VIC)的关系如图2.1.3所示。SPI接口处于VIC的通道10,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。当VICInEnable10=1时,通道10中断使能,即:SPI中断使能。中断选择寄存器VICintSelect用来分配VIC通道的中断。当某一位为1时,对应的通道中断分配为FIQ;当某一位为0时,对应的通道中断分配为IRQ。VICintSelect10用来控制通道10 图2.4 SPI中断示意图2.5看门狗的组成原理2.5.1看门狗的工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造车系统复位。所以在使用看门狗的时候要注意清看门狗。一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候们每隔一段时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,就可能是程序跑飞时,WDT定时超过,就会给出一个复位信号到MCU,是MCU复位。防止MCU死机,看门狗的作用就是防止程序发生死循环,或者说程序跑飞。2.5.2看门特的特性如果没有周期性重装,则产生片内复位,支持调试模式,有软件使能,但要求禁止硬件复位或看门后复位/中断,错误 /不完整的喂狗时序会导致复位/中断(如果使能),具有标志位以知识看门后复位,带内部预分频器的32位可编程定时器可选择时间周期:(t*256*4)(t*232*4),可选值为t(pclk)*4的倍数。 表2.5.2-1看门狗包含的4个寄存器名称描述访问复位值地址WDMOD看门狗模式寄存器R/W00XE000 0000WDTC看门狗定时器常数寄存器R/W0XFF0XE000 0004WDFEED看门狗喂狗寄存器WONA0XE000 0008WDTV看门狗定时器值寄存器RO0XFF0XE000 000C 表2.5.2-2 看门狗模式寄存器位位名称描述复位值0WDEN看门狗中断使能(置位)01WDRESET看门狗中断使能(置位)02WDTOF看门狗超时标志03WDINT看门狗中断标志07:4-保留,用户软件不要向其写入1,从保留为读出的值未定义NA 表2.5.2-3 看门狗的操作控制WDENWDRESET操作0X看门狗关闭时的调试操作10带看门狗中断的调试,但没有WDRESET11带看门狗中断和WDRESET的操作 图2.5.2看门狗结构方框图2.6 12864液晶液晶屏幕型号为HDG12864-1,该款液晶屏幕采用带中文字库液晶驱动控制芯片,数据传输方式为串行通信。其引脚排列和各引脚功能见表2.1.5所示。图2.6-1 HDG12864-1型液晶屏幕 图2.6-2 12864液晶接口电路设计 表2.6-1 液晶引脚功能说明1/CSL芯片选通端,低有效2/RESL复位输入端,低有效3A0H/L命令数据选择端,高电平;数据,低电平,命令高电平4SCLH/L串行模式时的时钟端5SIH/L串行模式时的数据端6VDD2.8-5.0V逻辑电源输入端7VSS0V逻辑电源地8LED+3.0-5.0V背光电源输入端 图2.6-3液晶屏幕操作时序图 表2.6-2 液晶行地址设置AOE(/RD)RW(WR)D7D6D5D4D3D2D1D0setting010101011110显示开显示关AOE(RD)RW(WR)D7D6D5D4D3D2D1D0行地址010010000000000001100001021111106211111163表2.6-3 液晶页地址设置AOE(RD)RW(WR)D7D6D5D4D3D2D1D0页地址01010110000000011001020111710008表2.6-4液晶屏幕的背光设置AOE(/RD)RW(/WR)D7D6D5D4D3D2D1D0Setting01010101111显示开01010101110显示关3 程序设计3.1 SPI总线及其中断3.1.1流程图 图3.1.2 SPI总线数据传送的流程图3.1.3程序main(void)unsigned char n=3,j;unsigned char *p;p=display;PINSEL0=0x00005500;/p0.4(9:8=01)-sck0 ,p0.5(11:10=01)-miso0 /p0.6(13:12=01)-mosi0, p0.7(15:14=01)-sel0 PINSEL1=0x000002a9;/p0.16(1:0=01)-eint0,p0.17(3:2=10)-sck1,/p0.18(5:4=10)-miso1,p0.19(7:6=10)-mosi1/p0.20(9:8=10)-ssel1,IO1SET=(led1|led2|led3|led4|led5|led6|led7|led8);IO1DIR=(led1|led2|led3|led4|led5|led6|led7|led8); ssp_initial();/ssp初始化spi_initial();/isp初始化IRQEnable();VICIntSelect=0x00000000; VICVectCntl0=0x20|14 ;/使能spi0,VICVectAddr0=(uint32)read_from_spi; /设置中断服务程序地址VICIntEnable=(10x0a);/允许spi0,eint0for(j=0;j16;j+)spi_send_data(p);delay(n);IO0SET=slave_cs;/片选信号拉高进入主机模式S0PCR=(15);/S0PCR 的 MSTR位置1,把SPI设置为主机if(recv_flag=0)ssp_send_data();delay(n);return (0);void spi_initial(void)/SPI初始化S0PCR=(0x034)| /spi的控制寄存器CPHA=1,CPOL=1(15)|/设置spi为主机(06)|/spi传送msb在先(17);/spi中断使能SPCCR=0x08;/spi的spccr必须大于等于8,因而spi速率最大 为fpclk的1/8S0PINT=0x00;/中断清零void _irq read_from_spi(void) recv_temp=SSPDR;/接收数据recv_libi=recv_temp;if(i16)i+;else i=0;recv_flag=1;SSPICR=0x03;/清除中断VICVectAddr=0x00;3.2 基于SPI总线的SD卡程序设计方案3.2.1 SD初始化1、 初始化读写SD卡的硬件条件2、 上电延时过程3、 复位CMD04、 激活卡,内部初始化并获取存储卡的类型CMD1,CMD55,ACMD415、 查询OCR,获取卡供电情况CMD586、 是否使用CRC CMD597、 设置读写块数据长度,512B,CMD168、 读取CSD,获取存储卡的其他参数信息。CMD99、 8clock后,禁止片选。3.2.2 SD卡读一个扇区函数1、 主机发送CMD172、 接收卡响应R13、 接收读数据起始令牌0XFE4、 接收数据5、 接收26、 clock后,禁止片选。3.2.3 SD卡写一个扇区函数1、 主机发送CMD242、 接收卡响应R13、 接收读数据起始令牌0XFE4、 接收数据5、 接收26、 clock后,禁止片选。3.2.2 基于SPI总线的SD卡设计的流程图3.2.2 SD卡程序流程图3.2.3 基于SPI总线的SD卡程序清单Sd.c#include”spi.h”#include”uart.h”#define uchar unsigned char#define uint unsigned int#define MMC_CS_PIN 118#define MMC_CSH IOSET |=118#define MMC_CSL IOCLR |=118uchar reading=0,a=0,pointer=0;void sd_port_init()Init_SPI();uchar BUFFER512;uint i=0;void delay_nus(uint n)unsigned int b,a;for (b=1;bn;b+)for(a=0;a24);Write_Byte_SPI(arg16); /向SD卡发送6个字节的数据Write_Byte_SPI(arg8);Write_Byte_SPI(arg&0xff);Write_Byte_SPI(0x95); /仅仅对RESET有效地CRC/读最后的八位数据dotmp = Read_Byte_SPI();retry+;while (tmp=0xff)&(retry100);当没有收到有效命令的时候if(reading=0) MMC_CSH;/取消片选else MMC_CSL; /打开片选return(tmp);/SD卡初始化(SPIMODE)uchar SD_Init(void)uchar retry,temp;uchar i;MMC_CSL; /SD卡使能delay_nus(250); /等待SD卡就绪for (i=0;i0x0f;i+) write_Byte_SPI(oxff); /发送至少74时钟/向SD卡发送 CMD0 命令retry=0;do/重复100次发送CMD0命令temp=SD_write_Command(0,0);retry+;if(retry=100)Return(oxff); while(temp!=1);/向SD卡发送CMD1命令retry=0;do/重复200次 发送CMD1命令delay_nus(3000);temp=SD_Write_Command(1,0);retry+;delay_nus(3000);if(retry=200)Return(0xff);while(temp!=0);retry=0;MMC_CSL; /片选SD_Write_Command(16,512); /设置一次读写BLOCK长度为512字节MMC_CSH; /取消片选return(0); /所有的命令被发送/从SD卡读一个扇区 如果没有错误就返回0uchar SD_Read_Block(unsigned long address) uchar temp =0;uint i=0;Reading=1;temp=SD_Write_Command(17,address); /读出RESPONSEwhile (Read_Byte_SPI()!=0xfe)(;)/直到读取到了数据的开始头0xfe 才继续for(i=0;i0;dly- -)for(i=0;i10000;i+) RstWdt();void main(void)U8 I;PINSEL0 = 0X00000000; / 设置管脚连接GPIOPINSEL1 = 0X00000000;IO0DIR = LED2CON; /设置管脚输出WDTC= 0X5F0000; /设置WDTC,喂狗重装值WDMOD = 0X03; /设置并启动WDTRstWdt(); /进行喂狗操作for(i=0;i10;i+)IO0CLR = LED2CON;DelayNS(2);IO0SET = LED2CON;DelayNS(2);while(1);实现功能:当完成发光二极管的闪烁后程序进入到死循环内,看门狗启动使之复位,使发光二极管继续闪烁。3.4.2 12864液晶的程序流程图图3.4.2 12864液晶屏幕操作的流程图3.4.3 12864液晶的程序设计清单/液晶屏初始化程序void Lcd_Init(void)Lcd_Reset(); /液晶复位Lcd_BackLed(1); /打开液晶背光WriteCommand(0xaf); /打开显示WriteCommand(0x40); /开始显示WriteCommand(0xa0); /ADC NORMALWriteCommand(0xa6); /WriteCommand(0xa4); /清除WriteCommand(0xa2); /1/ 98IASWriteCommand(0xc6); /COMMON OUTPUT DIRECTIONWriteCommand(0x2f); /POWER CONTROLWriteCommand(0x24); /RESISTER RATIOWriteCommand(0x81); /VOLUM MODE SETWriteCommand(0x24); /RESISTER RATIOLcd_ColRev(1); /左右翻转/液晶复位void Lcd_Reset(void)Res_L();Delay(1000);Res_H();/打开液晶背光 0:关闭 1:打开void Lcd_BackLed(U8 on)if(on=1)IO0SET=B_LED; /打开背光else if(on=0)IO0SET=B_LED; /关闭背光/左右翻转 0:正常 1:翻转void Lcd_ColRev(U8 i)WriteCommand(oxa0|(i&0x01);void main()U8 seg,tmp, page;PINSEL0 = (PINSEL0&0XFFFF00FF)|0X00001500;PINSEL1 = OX00000000;IO0DIR = LCD_A|LCD_CS|LCD_CLK|LCD_DATA|BEEP|B_LED|LCD_RES;IO0SET |= BEEP; /关闭蜂鸣器PLL_Init();MSPiInit();Lcd_Init();for(page=0xb0;page0xb8;page+) /写页地址共8页WriteCommand(0xa4); /清除WriteCommand(page);WriteCommand(0x10); /列地址,高低两次写入,从第0列开始WriteCommand(0x00);for(tmp=0;tmp4;tmp+)WriteData(0);for(seg=0;seg128;seg+) /写128列WriteData(oxfe);display_map(niu); /显示一副图案while(1)完成功能:完成绘制一幅图案3.4.4 12864液晶的程序设计扩展(1)12864的GUI建立GUI是Graphical Ucer Interface (图形用户界面)的简称,即图形用户界面,准确来说GUI就是屏幕产品的视觉体验和互动操作部分。GUI的上层是打点函数的组合。1、 划线函数是在一个起点和终点之间打点。2、 画圆函数是在一个点的等间距的一个圆上打点3、 画矩形是四个画线函数的组合。(2)12864打点函数的实现由于使用的SO-12864没有数据回读功能。只能在RAM中划分128*64/8=1024个字节的内存作为图像的缓存,在对图像操作之前,直接对显存操作,操作完成后用显存对液晶进行刷新。由于这部分内容不是本设计的主要内容,故只做简要的介绍; 图3.4.41 液晶显示一个圆 图3.4.42 液晶显示一幅图案 图3.4.43 液晶显示字符4 程序调试和功能分析4.1 使用仪器(1)多功能数字万用表FUKE TD9250(2)直流电源(3)J-link连接器。4.2 调试前准备工作(1)开发板的检验:查看开发板的各个开关是否打开,所学要使用到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 佳木斯水源井施工方案
- 行为规范小学生
- 天津生物工程职业技术学院《医患沟通关系学》2023-2024学年第二学期期末试卷
- 嘉兴学院《安全项目管理》2023-2024学年第二学期期末试卷
- 昆山登云科技职业学院《英语听说(三)》2023-2024学年第二学期期末试卷
- 西安文理学院《小组工作与社会调查》2023-2024学年第二学期期末试卷
- 拆除项目安全方案范本
- 中国音乐学院《土木工程结构试验技术》2023-2024学年第一学期期末试卷
- 四川文化产业职业学院《咖啡文化与鉴赏》2023-2024学年第一学期期末试卷
- 2025年的服装购销合同范本
- 人力资源许可证制度(服务流程、服务协议、收费标准、信息发布审查和投诉处理)
- JTG-T-F20-2015公路路面基层施工技术细则
- 江苏省苏州市2023-2024学年五年级下学期期中综合测试数学试卷(苏教版)
- 2024年4月贵州省高三年级适应性考试物理试卷(含答案)
- 急性阑尾炎护理查房ppt
- 苏教版五年级数学下册第四单元易错题梳理和重难提升(含答案)
- 西安市绿化养护管理标准
- 一只猫的生命哲学The Zen of Cat(中英文)
- 中外酒店财务管理比较研究2
- 《电子商务基础》试题全库
- BD-Ⅱ安装使用说明书_博睿10-08-17
评论
0/150
提交评论