结合PROTEUS仿真的12864液晶显示程序文档.doc_第1页
结合PROTEUS仿真的12864液晶显示程序文档.doc_第2页
结合PROTEUS仿真的12864液晶显示程序文档.doc_第3页
结合PROTEUS仿真的12864液晶显示程序文档.doc_第4页
结合PROTEUS仿真的12864液晶显示程序文档.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

在proteus上用51单片机控制12864液晶显示2008-12-20 16:23 经过半天的努力,终于在PROTEUS上让液晶屏显出汉字了以下是源代码/*main.h*/#ifndef _MAIN_H#define _MAIN_H#include #define LcdDataPort P2 /数据端口#ifndef UCHAR_DEF#define UCHAR_DEFtypedef unsigned char uchar;#endifsbit Reset = P30; /复位sbit RS = P31; /指令数据选择sbit E = P32; /指令数据控制sbit CS1 = P34; /左屏幕选择,低电平有效sbit CS2 = P35; /右屏幕选择sbit RW = P33; /读写控制sbit busy = P27; /忙标志void SetOnOff(uchar onoff);/开关显示void SelectScreen(uchar screen);/选择屏幕void ClearScreen(uchar screen);/清屏void Show1616(uchar lin,uchar colum,uchar *address);/显示一个汉字void CheckState(); /判断状态void LcdDelay(unsigned int time); /延时void WriteData(uchar dat); /写数据void SendCommand(uchar command); /写指令void SetLine(uchar line); /置行地址void SetColum(uchar colum);/置列地址void SetStartLine(uchar startline);/置显示起始行void InitLcd(); /初始化void ResetLcd(); /复位#endif/*/*lcd.c*/#include main.hvoid CheckState()E = 1;RS = 0;RW = 1;LcdDataPort = 0xff;while(!busy);void LcdDelay(unsigned int time)while(time -);void WriteData(uchar dat)CheckState();E = 1;RS = 1;RW = 0;LcdDataPort = dat;E = 0;void SendCommand(uchar command)CheckState();E = 1;RW = 0;RS = 0;LcdDataPort = command;E = 0;void SelectScreen(uchar screen)/0-全屏,1左屏,2-右屏switch(screen)case 0 :CS1 = 0;LcdDelay(2);CS2 = 1;LcdDelay(2);break;case 1 :CS1 = 1;LcdDelay(2);CS2 = 0;LcdDelay(2);break;case 2 :CS1 = 0;LcdDelay(2);CS2 = 0;LcdDelay(2);break;void ClearScreen(uchar screen) / screen 0-全屏,1左屏,2-右屏uchar i,j;SelectScreen(screen);for(i = 0;i 8;i +)SetLine(i);SetColum(0);for(j = 0;j 0 : 7line = line & 0x07;line = line | 0xb8;/1011 1xxxSendCommand(line);void SetColum(uchar colum)/colum - 0 :63colum = colum & 0x3f;colum = colum | 0x40; /01xx xxxxSendCommand(colum);void SetStartLine(uchar startline) /startline - 0 : 63startline = startline & 0x3f;startline = startline | 0xc0;/11xxxxxxSendCommand(startline);void SetOnOff(uchar onoff) /1-开显示 0-关if(onoff = 1)SendCommand(0x3f); /0011 111xelseSendCommand(0x3e);void ResetLcd()Reset = 0;LcdDelay(2);Reset = 1;LcdDelay(2);RS0 = 0;LcdDelay(2);RS1 = 0;LcdDelay(2);SetOnOff(1);void InitLcd()ResetLcd();SetOnOff(0);ClearScreen(2);SetLine(0);SetColum(0);SetStartLine(0);SetOnOff(1);void Show1616(uchar lin,uchar colum,uchar *address)uchar i;SetLine(lin);SetColum(colum);for(i = 0;i 16;i +)WriteData(*(address +);SetLine(lin + 1);SetColum(colum);for(i = 0;i 16;i +)WriteData(*(address +);/*/*main.c*/#include #include main.hconst uchar code HZ_tab = 0x10,0x21,0x62,0x06,0x82,0xE2,0x22,0x22, 0x22,0xF2,0x22,0x02,0xFE,0x03,0x02,0x00, /河 0x04,0x04,0xFE,0x01,0x00,0x0F,0x04,0x04, 0x04,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00, 0x04,0xE4,0x24,0x24,0x64,0xA4,0x24,0x3F, 0x24,0xA4,0x64,0x24,0x24,0xF6,0x24,0x00, /南 0x00,0xFF,0x00,0x09,0x09,0x09,0x09,0x7F, 0x09,0x09,0x09,0x49,0x80,0x7F,0x00,0x00, 0x24,0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00, 0x24,0x48,0x00,0xFF,0x00,0x80,0x00,0x00, /科 0x10,0x08,0x06,0x01,0xFF,0x00,0x01,0x02, 0x02,0x02,0x02,0xFF,0x01,0x01,0x01,0x00, 0x10,0x10,0x10,0xFF,0x10,0x10,0x88,0x88, 0x88,0xFF,0x88,0x88,0x8C,0x08,0x00,0x00, /技 0x04,0x44,0x82,0x7F,0x01,0x80,0x81,0x46, 0x28,0x10,0x28,0x26,0x41,0xC0,0x40,0x00, 0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F, 0xA0,0x20,0x20,0x20,0x20,0x30,0x20,0x00, /大 0x00,0x40,0x40,0x20,0x10,0x0C,0x03,0x00, 0x01,0x06,0x08,0x10,0x20,0x60,0x20,0x00, 0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96, 0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00, /学 0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E, 0x06,0x05,0x04,0x04,0x04,0x06,0x04,0x00, 0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48, 0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00, /电 0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42, 0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00, 0x80,0x80,0x82,0x82,0x82,0x82,0x82,0xE2, 0xA2,0x92,0x8A,0x86,0x80,0xC0,0x80,0x00, /子 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x80,0x40,0x20,0xF8,0x07,0x24,0x24,0x24, 0x25,0x26,0x24,0x24,0xB4,0x26,0x04,0x00, /信 0x00,0x00,0x00,0xFF,0x00,0x01,0xFD,0x45, 0x45,0x45,0x45,0x45,0xFD,0x01,0x00,0x00, 0x00,0x00,0x00,0xFC,0xA4,0xA6,0xA5,0xA4, 0xA4,0xA4,0xA4,0xFE,0x04,0x00,0x00,0x00, /息 0x40,0x30,0x00,0x77,0x84,0x84,0x8C,0x94, 0xB4,0x84,0x84,0xE7,0x00,0x10,0x60,0x00, 0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC, 0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00, /工 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F, 0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00, 0x24,0x24,0xA4,0xFE,0xA3,0x22,0x20,0x7E, 0x42,0x42,0x42,0x42,0x42,0x7F,0x02,0x00, /程 0x08,0x06,0x01,0xFF,0x00,0x43,0x41,0x49, 0x49,0x49,0x7F,0x49,0x4D,0x69,0x41,0x00, 0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96, 0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00, /学 0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E, 0x06,0x05,0x04,0x04,0x04,0x06,0x04,0x00, 0x00,0xFE,0x22,0x5A,0x96,0x0C,0x24,0x24, 0x25,0x26,0x24,0x34,0xA4,0x14,0x0C,0x00, / 院 0x00,0xFF,0x04,0x08,0x87,0x81,0x41,0x31, 0x0F,0x01,0x3F,0x41,0x41,0x41,0x70,0x00;void main()uchar i,line,colum ;uchar *address ;InitLcd();while(1)colum = 16;line = 1;address =

温馨提示

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

评论

0/150

提交评论