以前寫12864的液晶程式都是用的並行的方式,這種方式焊接起來很麻煩,而且占用的io口比較多。
今天嘗試使用序列方式來驅動該模組。
本程式是基於stc89c52的12864序列模式的程式,硬體電路連線只需要5根線,vcc gnd rs rw e , 只需要三個個io 口就可以顯示,大大節省了資源。
12864液晶晶元是st7920。自帶中文字庫。
該程式功能:實現使用12864液晶顯示字元、漢字(程式有詳細的中文注釋)。
已經除錯通過,很好用。
下面是電路原理圖
其時序圖如下:
根據其時序圖寫出其**如下:
#include #include #include #include #define uchar unsigned char
#define uint unsigned int
sbit cs = p2^7;//第4根線 rs
sbit sid = p2^6;//第5根線 rw
sbit sck = p2^5;//第6根線 e
uchar code ac_table=;
/******************************** 函式名稱 :sendbyte 串列埠傳送乙個位元組*****/
void sendbyte(uchar dbyte)}
/***********接收乙個位元組***/
uchar receivebyte(void)
for(i=0;i<8;i++)
return ((0xf0&temp1)+(0x0f&temp2));}
void checkbusy( void )
void writecommand(uchar cbyte )
void writedata(uchar dbyte )
uchar readdata( void )
void delay(uint ms)
; usn--;
}ms--;
}} void lcminit( void )
void lcmcleartxt( void )
void putstr(uchar row,uchar col,uchar *puts)
if(row==4) row='0';
writecommand(ac_table[8*row+col]);
writedata(*puts);
puts++;
writedata(*puts);
puts++;
col++;
}} void displaydots(uchar dotbyte)
dotbyte=~dotbyte;
}} void main( void )
}
顯示效果如下:
51微控制器入門(三)
數碼管顯示,定時器中斷 鍵盤檢測 1.數碼管 分共陽極和共陰極數碼管。我的實驗板是共陰極,多位數碼管的公共端叫做 位選線 連線在一起的段線叫做 段選線 位選是獨立控制的,而段選是連線在一起的。段選資料由p0口傳送,位選由p2口的2.3.4控制。消影用p0 0x00 2.中斷 為使微控制器具有對外部或...
51微控制器輸出pwm驅動電機
參考 51微控制器按鍵控制輸出pwm的占空比 原理圖 這兩個小燈意味著電流方向,到時候是可以控制電機的正轉反轉的 程式 include define uint unsigned int define uchar unsigned char sbit pwm p1 0 p1.0輸出pwm sbit k...
51微控制器教程 二相四線步進電機驅動
第乙個問題 什麼是步進電機?步進電機就是用電脈衝訊號控制電機轉動特定角度的一種電機。比如說你給電機乙個脈衝訊號電機就轉動90度,那麼你給電機4個脈衝訊號電機就轉動了一圈。這個90度,就是步進電機的步進角,給乙個脈衝,它就轉動乙個步進角,於是它取名 步進電機 第二個問題 步進電機的特性?在非超載的情況...