- void LCD_WriteOneByte(unsigned char date,unsigned char cmd) //写一个字节(data,(1数据0指令))
- {
- //使用8位数据通信模式,8位数据用的是PB口,对应12864的D0~D7(12864的数据I/O)
- RW=0; //RW=0;设置写入模式(对应12864的RW)
- if (cmd) RS=1;//高数据 低指令(对应12864的RS)
- else RS=0;
- EN=1;//使能拉高(对应12864的EN)
- PORTB = date;//给数据到I/O
- delay_us(10);//等电平稳定
- EN=0;//使能拉低,数据送出完毕
- delay_us(100);//等12864接收完毕
- }
- void LCD_Init()
- {
- ///文字显示模式初始化代码
- LCD_WriteOneByte(0x30,0);delay_ms(40);
- LCD_WriteOneByte(0x30,0);delay_ms(40);//设置8位数据总线,执行基本指令集
- LCD_WriteOneByte(0x0c,0);delay_ms(40);//开显示,关光标,关光标闪烁
- LCD_WriteOneByte(0x02,0);delay_ms(40);//游标移动到起始位置
- LCD_WriteOneByte(0x01,0);delay_ms(40);//清屏
- /**/ /*//绘图模式
- LCD_WriteOneByte(0x30,0);_delay_ms(20);
- LCD_WriteOneByte(0x30,0);_delay_ms(20);//设置8位数据总线,执行基本指令集
- LCD_WriteOneByte(0x01,0);_delay_ms(10);//清屏
- LCD_WriteOneByte(0x0c,0);_delay_ms(10);//开显示,关光标,关光标闪烁
- LCD_WriteOneByte(0x01,0);_delay_ms(10);//清屏
- LCD_WriteOneByte(0x36,0);_delay_ms(20);//开绘图
- _delay_ms(10);
- */
- } /**/
- void main()
- {
- LCD_Init();
- delay_ms(5);
- P12=0;
- LCD_WriteOneByte(0x80,0);
- delay_ms(5);
- P11=0;
- LCD_WriteOneByte('A',1);
- delay_ms(3);
- P10=0;
- while(1);
- }
复制代码 |