请问版主 zenglian 例子如下 /*===========================================================================
KS0070(44780) 16x2 字符液晶屏驱动演示程序总线方式 晓奇 ============================================================================= 连接线图: LCM-------51 LCM-------51 LCM--------51 DB0-----P0.0 DB4-----P0.4 RW-------P2.0 DB1-----P0.1 DB5-----P0.5 RS-------P2.1 DB2-----P0.2 DB6-----P0.6 E-------P2.7=>74ls00+wr+rd DB3-----P0.3 DB7-----P0.7 VLCD接1K2电阻到GND
[注]:AT89C51的晶振频率为12MHz ============================================================================*/ //#pragma src // 产生汇编文件 #include #include
//========= 变量类型标识的宏定义,大家都喜欢这么做 ============== #define Uchar unsigned char #define Uint unsigned int
// ================= LCM1602A端口地址定义 ======================= char xdata Lcd1602CmdPort _at_ 0x7cff; //E=1 RS=0 RW=0 char xdata Lcd1602WdataPort _at_ 0x7eff; //E =1 RS=1 RW=0 char xdata Lcd1602StatusPort _at_ 0x7dff; //E=1 RS=0 RW=1
以上端口定义时 如 Lcd1602CmdPort _at_ 0x7cff 即P2=0x7c p0=0xff 是这样吗?如不对的话为什么定义Lcd1602CmdPort 为 0x7cff 而不是 0x7dff或0x7eff 如果是 P2=0x7c p0=0xff 这样定义 那就相当于p2=01111100 即p20=0 p21=0 p27=0 (E=0 RS=0 RW=0)这与注释//E=1 RS=0 RW=0 不相符呀?是不是该例子有误?
如果有 Lcd1602CmdPort = 0x38; 请问单片机如何执行?即每步 p0=? p2=? 谢谢。
[此贴子已经被作者于2006-1-18 8:57:41编辑过] |