連接12864的杜邦線
連接stc的杜邦線
大佬們,看看小弟這個怎么搞呀,串口可以顯示,并口試過很多次都顯示不了  這是我的代碼:
#include <STC15F2K60S2.H>
#include "intrins.h"
#include "string.h"
#define u8 unsigned char
#define u16 unsigned int
#define LCD12864_DATA P0
sbit LCD12864_PSB = P1^3;
sbit LCD12864_RS = P1^0;
sbit LCD12864_RW = P1^1;
sbit LCD12864_EN = P1^2;
//sbit LCD12864_RST = P5^4;
void Delay1us(u16 count) //@11.0592MHz
{
while(count-- != 0)
{
_nop_();
_nop_();
_nop_();
}
}
u8 lcd12864_check_busy()//檢測是否空閑
{
u8 temp;
LCD12864_DATA = 0xff;
LCD12864_RS = 0;//并行的指令
LCD12864_RW = 1;//并行讀寫選擇信號,1為讀,0為寫
LCD12864_EN = 1;//使能信號,1為有效
Delay1us(1000);
temp = LCD12864_DATA;
LCD12864_EN = 0;
return temp&0x80;
}
void lcd12864_write_command(u8 cmd)//寫命令
{
while(lcd12864_check_busy());
LCD12864_RS = 0;
LCD12864_RW = 0;
LCD12864_EN = 1;
Delay1us(1000);
LCD12864_DATA = cmd;
LCD12864_EN = 0;
}
void lcd12864_write_data(u8 dat)//寫數據
{
while(lcd12864_check_busy());
LCD12864_RS = 1;
LCD12864_RW = 0;
LCD12864_EN = 1;
Delay1us(1000);
LCD12864_DATA = dat;
LCD12864_EN = 0;
}
void lcd12864_init()
{
LCD12864_PSB = 1;
lcd12864_write_command(0x01);//1.清屏命令
Delay1us(1000);
lcd12864_write_command(0x02);//2.位址歸位
Delay1us(1000);
lcd12864_write_command(0x0C);//4.顯示狀態 開
Delay1us(1000);
lcd12864_write_command(0x80);//8.設定DDRAM位址
Delay1us(1000);
lcd12864_write_command(0x34);//擴充功能設定——擴充指令集動作
Delay1us(1000);
lcd12864_write_command(0x30);//擴充功能設定——基本指令集動作
Delay1us(1000);
}
void lcd12864_display_pos(u8 X , u8 Y)//選擇第幾行Y;第幾列X(則加上X)
{
u8 addr;
if(Y == 0)
{
addr = 0x80;
}
if(Y == 1)
{
addr = 0x90;
}
if(Y == 2)
{
addr = 0x88;
}
if(Y == 3)
{
addr = 0x98;
}
addr = addr+X;
lcd12864_write_command(addr);
}
void lcd12864_show_char(u8 X , u8 Y , char sign)//顯示一個字符
{
lcd12864_display_pos(X,Y);
lcd12864_write_data(sign);
}
void lcd12864_show_string(u8 X , u8 Y , char string[])//顯示一個字符串
{
lcd12864_display_pos(X,Y);
while(*string != '\0')
{
lcd12864_write_data(*string++);
}
}
void main()
{
P1M1 = 0; P1M0 = 0;
//P5M0 = 0;
lcd12864_init();
lcd12864_show_string(0,0,"某某某某大學");
lcd12864_show_string(0,1,"地球科學學院");
lcd12864_show_string(0,2,"21環境01班");
lcd12864_show_char(0,3,0x02);
lcd12864_show_string(1,3,"小明呀");
lcd12864_show_char(7,3,0x02);
while(1);
}
|