基于Cortex-M3(1752)的串行LCD12864程序.doc_第1页
基于Cortex-M3(1752)的串行LCD12864程序.doc_第2页
基于Cortex-M3(1752)的串行LCD12864程序.doc_第3页
全文预览已结束

下载本文档

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

文档简介

#include .config.h#define uchar unsigned char#define uint unsigned int#define CS (1 22) /P0.8 RS#define SID (1 29) /P0.9RW #defineSCLK (1 30) /P0.11 E#define Set_CS() FIO0SET = CS /P0.8置1 #define Set_SID() FIO0SET = SID /P0.9置1 #define Set_SCLK() FIO0SET = SCLK /P0.11置1#define Clr_CS() FIO0CLR = CS /P0.8置0 #define Clr_SID() FIO0CLR = SID /P0.9置0 #define Clr_SCLK() FIO0CLR = SCLK /P0.11置0extern void Lcd_WriteDat(char RW, char RS,uchar W_data);extern void Lcd_WriteCmd(uint W_bits);extern void Lcd_SetPos(uchar y,uchar x);extern _inline void Delay(uint a);extern void Lcd_WriteDat(char RW, char RS,uchar W_data);void myDelay(INT32U ulTime) INT32U i; i = 0; while (ulTime-) for (i = 0; i 50000; i+); _inline void Delay(uint a) uint i;while( -a != 0) for(i = 0; i5200; i+); void nop(void) uint i; for(i=1;i12;i+); /*函数Lcd_SetPos作用:设置12864字符显示位置 y:为第几行x:为从第几个字符开始*/void Lcd_SetPos(uchar y,uchar x) if(y = 0) Lcd_WriteDat(0,0,(0x80+x); if(y = 1) Lcd_WriteDat(0,0,(0x90+x); if(y = 2) Lcd_WriteDat(0,0,(0x88+x); if(y = 3) Lcd_WriteDat(0,0,(0x98+x); void Lcd_DispLine(uchar y,uchar x ,char *p) /函数作用:写入字符串 Lcd_SetPos(y,x);while(*p != 0) Lcd_WriteDat(0,1,*p+);Delay(1); /*12864初始化函数*/void LCD_Init(void) uchar cmd;FIO0DIR |= CS;FIO0DIR |= SID;FIO0DIR |= SCLK;Delay(2); cmd=0x30;/功能设置 8位数据,基本指令Lcd_WriteDat(0,0,cmd);Delay(2);cmd=0x06;Lcd_WriteDat(0,0,cmd);/写指令Delay(2);cmd=0x0C;/显示状态 ON,游标OFF,反白OFFLcd_WriteDat(0,0,cmd);/写指令Delay(2);cmd=0x01;/清除显示Lcd_WriteDat(0,0,cmd);/写指令Delay(2);cmd=0x02;/地址归位Lcd_WriteDat(0,0,cmd);/写指令Delay(2);cmd=0x80;/设置DDRAM地址Lcd_WriteDat(0,0,cmd);/写指令Delay(2);/延时/*函数Lcd_WriteDat作用:写一个字节的数据到12864液晶,包括指令和数据*/void Lcd_WriteDat(char RW, char RS,uchar W_data)uint H_data,L_data,S_ID = 0xf8; /11111RWRS0if(RW = 0) S_ID &= 0x04; else S_ID |= 0X04; /if(RW=1)if(RS = 0) S_ID &= 0x02; else S_ID |= 0X02; /if(RS=1)H_data = W_data;H_data &= 0xf0;/屏蔽低4位的数据L_data = W_data; /xxxx0000格式L_data &= 0x0f;/屏蔽高4位的数据L_data = 4;/xxxx0000格式Set_CS();Lcd_WriteCmd(S_ID); /发送S_IDLcd_WriteCmd(H_data);/发送H_dataLcd_WriteCmd(L_data);/发送L_dataClr_CS();/*函数Lcd_WriteCmd作用:负责串行输出8个bit位*/void Lcd_WriteCmd(uint W_bits)uint i,Temp_data;for(i=0; i8; i+)Temp_data = W_bits;Temp_

温馨提示

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

最新文档

评论

0/150

提交评论