LCD1602 之 msp430 单片机和 C51 单片机 C 语言 /**************************************************************************/ 1.msp430 单片机C 语言 /*************************************************************************/ #include"msp430f6638.h" /******************************************* P5.3----E P57 P56 P55 P54 P53 P52 P51 P50 P5.4----RS P5.5----RW P57 P56 RW RS E P52 P51 P50 P2OUT---wdata ********************************************/ #define uchar unsigned char; #define uint unsigned int; //*********显示字符串可将字符串放入数组,例如显示ancdefdg******/ /**定义一个数组**/ /**uchar code ttt[]="ancdefdg";//字符串用双引号引起来,空格计入字符串的元素 /*uchar code kkk[]="ffba ggddmm";//上句加空格9 个元素,该句加两个空格12 个元素 /**********************************元素个数在循环显示时要使用***** /*********************为循环显示字符串还得定义一个变量**/ // uchar n;/定义变量n void delay(int time) //延迟函数 { while(time--); //延迟时间 } void writeCommandLcd(unsigned char comd)// 写入命令 { P5OUT &= ~0x10; //RS 清 0 (运算后P5=xxx0 xxxx,即 RS=0 其他位状态不变) P5OUT &= ~0x20; //RW 清 0 (运算后P5=xx0x xxxx, 即 RW=0 其他位状态不变) P5OUT &= ~0x08; //使能E 清 0 (运算后P5=xxxx 0xxx, 即 E=0 其他位状态不变) //上面三个语句执行完后P5OUT=xx000xxx,用 P5OUT &=~0x38;可一次完成。 P2OUT = comd; //送命令到P2OUT 准备输出进入1602,等 E 下降沿来即可进入1602. P5OUT |= 0x08; //使能E 置 1, P5OUT=xxxx xxxx+0000 1000=xxxx1xxx, E=1. delay(10); P5OUT &= ~0x08; //使能E 清 0,这样E 从 1 变 0, 产生一个下降,写入命令到1602。 } void writeDataLcd(unsigned char dat)// 写入命令 { P5OUT |= 0x10; //RS 置 1 (运算后P5=xxx1 xxxx,即 RS=1 其他位状态不变) P5OUT &= ~0x20; //RW 清 0 (运算后P5=xx0x xxxx, 即 RW=0 其他位状态不变) P5OUT &= ~0x08; //使能E 清 0 (运算后P5=xxxx 0xxx, 即 E=0 其他位状态不变) P2OUT = dat; //送数据到P2OUT 准...