欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
lcd12864以串行的方式進(jìn)行通信的單片機(jī)源程序
[打印本頁]
作者:
fghgfg
時(shí)間:
2017-3-17 23:34
標(biāo)題:
lcd12864以串行的方式進(jìn)行通信的單片機(jī)源程序
/********************************************************************
* 文件名 : 串行12864顯示.c
* 描述 : 該程序?qū)崿F(xiàn)了12864以串行的方式進(jìn)行通信。
* 創(chuàng)建人 : 東流,2009年4月10日
* 版本號(hào) : 2.0
***********************************************************************/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit CS=P2^5; //片選信號(hào)
sbit SID=P2^6; //數(shù)據(jù)信號(hào)
sbit SCLK=P2^7; //時(shí)鐘信號(hào)
sbit RST=P2^2; //復(fù)位信號(hào)
sbit CH = P2^4; //并行、串行選擇信號(hào)
/********************************************************************
* 名稱 : delay()
* 功能 : 延時(shí),延時(shí)時(shí)間為 100us * t。這是通過軟件延時(shí),有一定誤差。
* 輸入 : t
* 輸出 : 無
***********************************************************************/
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0; i<t; i++)
for(j=0; j<10; j++);
}
/********************************************************************
* 名稱 : sendbyte()
* 功能 : 按照液晶的串口通信協(xié)議,發(fā)送數(shù)據(jù)
* 輸入 : zdata
* 輸出 : 無
***********************************************************************/
void sendbyte(unsigned char zdata)
{
unsigned int i;
for(i=0; i<8; i++)
{
if((zdata << i) & 0x80)
{
SID = 1;
}
else
{
SID = 0;
}
SCLK = 0;
SCLK = 1;
}
}
/********************************************************************
* 名稱 : write_com()
* 功能 : 寫串口指令
* 輸入 : cmdcode
* 輸出 : 無
***********************************************************************/
void write_com(unsigned char cmdcode)
{
CS = 1;
sendbyte(0xf8);
sendbyte(cmdcode & 0xf0);
sendbyte((cmdcode << 4) & 0xf0);
delay(2);
}
/********************************************************************
* 名稱 : write_data()
* 功能 : 寫串口指令
* 輸入 : cmdcode
* 輸出 : 無
***********************************************************************/
void write_data(unsigned char Dispdata)
{
CS = 1;
sendbyte(0xfa);
sendbyte(Dispdata & 0xf0);
sendbyte((Dispdata << 4) & 0xf0);
delay(2);
}
/********************************************************************
* 名稱 : lcdinit()
* 功能 : 初始化函數(shù)
* 輸入 : cmdcode
* 輸出 : 無
***********************************************************************/
void lcdinit()
{
RST = 0;
delay(100);
RST = 1;
delay(20000);
write_com(0x30);
delay(50);
write_com(0x0c);
delay(50);
}
/********************************************************************
* 名稱 : hzkdis()
* 功能 : 顯示字符串
* 輸入 : *s
* 輸出 : 無
***********************************************************************/
void hzkdis(unsigned char code *s)
{
while(*s > 0)
{
write_data(*s);
s++;
delay(50);
}
}
/********************************************************************
* 名稱 : Test()
* 功能 : 顯示子函數(shù)
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void Test()
{
write_com(0x03);
delay(50);
write_com(0x81);
hzkdis(" HOT-51");
write_com(0x91);
hzkdis("單片機(jī)開發(fā)板");
write_com(0x89);
hzkdis(" ");
write_com(0x98);
hzkdis(" 東流電子");
}
/********************************************************************
* 名稱 : Main()
* 功能 : 主函數(shù)
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void Main()
{
CH = 0;
delay(1);
lcdinit();
delay(10);
while(1)
{
Test();
delay(5000);
}
}
復(fù)制代碼
作者:
kissme
時(shí)間:
2019-1-8 22:06
沒顯示。。。。。。
作者:
chaoself
時(shí)間:
2019-2-8 19:45
并行、串行選擇信號(hào) CH 在代碼中沒有發(fā)現(xiàn),是不是要將CH置于低電頻才可以?
作者:
毅力在哪里
時(shí)間:
2019-2-10 11:24
chaoself 發(fā)表于 2019-2-8 19:45
并行、串行選擇信號(hào) CH 在代碼中沒有發(fā)現(xiàn),是不是要將CH置于低電頻才可以?
在主函數(shù)里,不過直接接低電平也可以。
作者:
dpjmx
時(shí)間:
2020-6-28 22:23
確實(shí)沒顯示。。。。
作者:
ashiem
時(shí)間:
2021-7-1 21:40
挺好,12864顯示屏第一次可以成功顯示,謝謝!!繼續(xù)努力,加油!!!!!!!!!!
作者:
ashiem
時(shí)間:
2021-7-1 21:43
謝謝樓主,12864液晶顯示屏(串行)第一次可以成功顯示,繼續(xù)努力,加油!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1