液晶160128AC语言

上传人:hs****ma 文档编号:493420320 上传时间:2023-02-22 格式:DOC 页数:18 大小:81KB
返回 下载 相关 举报
液晶160128AC语言_第1页
第1页 / 共18页
液晶160128AC语言_第2页
第2页 / 共18页
液晶160128AC语言_第3页
第3页 / 共18页
液晶160128AC语言_第4页
第4页 / 共18页
液晶160128AC语言_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《液晶160128AC语言》由会员分享,可在线阅读,更多相关《液晶160128AC语言(18页珍藏版)》请在金锄头文库上搜索。

1、/*/连线表: CPU=W78E54B CPUClock=12Mhz */ LCM - CPU */ WR - WR */ RD - RD */ CS - P2.7 */ A0(RS)- P2.0 */ DB07 - P0.07 */ RESET - P1.0 */ 注:本程序BUS总线模式程序和IO模式程序的硬件连线方式一致 */ 但IO模式的时候需要在P0口接10K上拉电阻 */*#include #include #include /自己些的一个头文件,主要是Uchar和二进制#define Graphic 1#define TXT 0#define LcmXPixel 240/横向宽度

2、#define LcmYPixel 128/纵向高度#define Uchar unsigned char#define Uint unsigned int/#defineBUS_MODE/总线模式驱动液晶#define IO_MODE/IO口模式驱动液晶#ifdef BUS_MODEchar xdata LcmCmdPort _at_ 0x0100;/CS低有效 RS高-命令char xdata LcmDatPort _at_ 0x0000;/CS低有效 RS低-数据#endif#ifdef IO_MODEsbit CSP = P27;sbit RSP = P20;sbit WRP = P3

3、6;sbit RDP = P37;#define LcmDataBus P0#endifsbit RES = P10;/sbit Key = P32;/sbit p0_dr=P34; /坚鸿测试架增加指令,控制P0口输入输出sbit FS = P35;/字体选择,一般在硬件接口直接接电源或地sbit P33=P33;Uchar code str0;Uchar code bmp1;void int_zhongduan();void delay(unsigned int t);/*/液晶驱动底层程序开始/*/指令&数据读写状态void CheckRWCD(void)#ifdef BUS_MODEw

4、hile(LcmCmdPort & 0x03) != 0x03);/低电平忙#endif#ifdef IO_MODE p0_dr=1;/坚鸿测试架增加指令,控制P0口输入输出CSP = 0;WRP = 1;RSP = 1;LcmDataBus = 0xff;RDP = 0;while(LcmDataBus & 0x03) != 0x03);RDP = 1;CSP = 1; p0_dr=0;/坚鸿测试架增加指令,控制P0口输入输出#endif/数据自动写状态void CheckAutoWrite(void)#ifdef BUS_MODEwhile(LcmCmdPort & 0x08) = 0);

5、/低电平忙#endif#ifdef IO_MODE p0_dr=1;/坚鸿测试架增加指令,控制P0口输入输出CSP = 0;WRP = 1;RSP = 1;LcmDataBus = 0xff;RDP = 0;while(LcmDataBus & 0x08) =0 );RDP = 1;CSP = 1; p0_dr=0;/坚鸿测试架增加指令,控制P0口输入输出#endif/屏读/屏考贝出错状态void CheckScreen(void)#ifdef BUS_MODEwhile(LcmCmdPort & 0x40);/1出错,0正确#endif#ifdef IO_MODE p0_dr=1;/坚鸿测试

6、架增加指令,控制P0口输入输出CSP = 0;WRP = 1;RSP = 1;LcmDataBus = 0xff;RDP = 0;while(LcmDataBus & 0x40);RDP = 1;CSP = 1; p0_dr=0;/坚鸿测试架增加指令,控制P0口输入输出#endif/一个数据子写入函数void LcmWriteData(Uchar uData)#ifdef BUS_MODELcmDatPort = uData;#endif#ifdef IO_MODECSP = 0;RDP = 1;RSP = 0;LcmDataBus = uData;WRP = 0;WRP = 1;CSP =

7、1;LcmDataBus = 0xff;#endif/一个数据读出函数Uchar LcmReadData( void )Uchar uData;#ifdef BUS_MODEuData = LcmDatPort;#endif#ifdef IO_MODE p0_dr=1;/坚鸿测试架增加指令,控制P0口输入输出CSP = 0;WRP = 1;RSP = 0;LcmDataBus = 0xff;RDP = 0;uData = LcmDataBus;RDP = 1;CSP = 1; p0_dr=0;/坚鸿测试架增加指令,控制P0口输入输出#endifreturn uData;/无参数指令写入函数vo

8、id LcmWriteCommand(Uchar Command)CheckRWCD();/检测指令读写状态#ifdef BUS_MODELcmCmdPort = Command;#endif#ifdef IO_MODECSP = 0;RDP = 1;RSP = 1;LcmDataBus = Command;WRP = 0;WRP = 1;CSP = 1;LcmDataBus = 0xff;#endif/单参数指令写入函数void LcmWriteCommandWith1Par(Uchar Parameter,Uchar Command)LcmWriteData(Parameter);LcmW

9、riteCommand(Command);/双参数指令写入函数void LcmWriteCommandWith2Par(Uchar Parameter1,Uchar Parameter2,Uchar Command)LcmWriteData(Parameter1);LcmWriteData(Parameter2);LcmWriteCommand(Command);/LCM初始化函数void LcmInit( void )LcmWriteCommandWith2Par(0x00,0x00,0x40);/设置文本显示区首地址LcmWriteCommandWith2Par(LcmXPixel/8,0

10、x00,0x41);/设置文本显示区宽度LcmWriteCommandWith2Par(0x00,0x08,0x42);/设置图形显示区首地址0x0800LcmWriteCommandWith2Par(LcmXPixel/8,0x00,0x43);/设置图形显示区宽度LcmWriteCommand(0xA7);/设置光标形状 8x8方块LcmWriteCommand(0x81);/显示方式设置 文本xor图形(异或)LcmWriteCommand(0x9C);/显示开关设置 文本开,图形开,光标闪烁关/函数功能: 延时函数/入口参数: 需要延时的毫秒数(MS)/出口参数: 无void Dela

11、yMS(unsigned int MS)unsigned char us,usn;while(MS!=0)usn = 2;/for 12Mwhile(usn!=0)us=0xf6;while (us!=0)us-;usn-;MS-;/函数功能: 特殊延时函数/入口参数: 需要延时的?.?秒(Second.MS100)/出口参数: 无void DelayKey(unsigned int Second , unsigned int MS100)/输入精确到0.1S,是用,unsigned int i;for(i=0;iSecond*100+MS100*10;i+)if(Key=0)DelayMS(20);while(Key=0) DelayMS(20);break;else DelayMS(10);/清显示存储器函数void LcmClear( Uchar FillByte )Uint i = 8192;/此处仅清8K RAM,如果您32K RAM都使用,请修改i=32768(后面也要改)if(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号