|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
[原創(chuàng)]ST7920驅(qū)動(dòng),歡迎大家批磚! |
| 作者:中喜 欄目:單片機(jī) |
/*===================================================================== Corpright Crocodile Studio,SCUN 2005 File NAME: ST7920.c DESCRIPTION:This is a TEST programm to diver ST7920.The interface between MCU and LCM is in parallel mode(ONLY write dat is available). Pin assignment : 1--VSS;2--VDD;3--V0;4--R/S(CS)--P7.0;5--R/W(SID)--P7.1; 6--E(SCLK)--P7.2;7-14--DB0-DB7--P6;15--PSB--P7.3; 16--NC--P7.4;17--/RST--P7.5;18--VEE;19--LEDA;20--LEDK RS RW DESCRIPTION 0 0 MPU write instruction to IR(ST7920) 0 1 MPU read BF and AC(address counter) 1 0 MPU write data to DR(data register) 1 1 MPU read dat from DR Version: 1.0 date : 5,10 2005 (M-D-Y) Author: crocodile E_mail: crocodle320@gmail.com (QQ:175764808) ========================================================================*/ #include <C8051F040.H> #include <intrins.h> #define uCHAR unsigned CHAR #define uint unsigned int //define connection between MCU and ST7920 sbit ST7920RW=P7^1; //Pin 5 sbit ST7920RS=P7^0; //Pin 4 sbit ST7920CS=P7^6; //Pin 6 //=================== prototype list ============================= void ST7920_Delay1ms(uCHAR n); //to delay 1 ms about void ST7920_SendCmd(uCHAR cmd); //write command to ST7920 void ST7920_SendData(uCHAR dat); //write dat to ST7920 void ST7920_Configuration(void); void ST7920_Init(void); //Initialize ST7920 //================================================================ void main(void) { uCHAR *CHARa="我愛你!"; uCHAR *date="5-11-2005"; uCHAR i; ST7920_Configuration(); ST7920_Init(); ST7920_SendCmd(0x80); ST7920_SendData('I'); ST7920_SendCmd(0x81); ST7920_SendData('l'); ST7920_SendData('o'); ST7920_SendData('v'); ST7920_SendData('e'); ST7920_SendData('!'); ST7920_SendCmd(0x90); for(i=0;i<4;i++) { ST7920_SendData(*CHARa++); ST7920_SendData(*CHARa++); } ST7920_SendCmd(0x88); /*while(*date!='\0') { ST7920_SendData(*date); date++; } */ for(;*date!='\0';date++) ST7920_SendData(*date); while(1); } //================================================================ void ST7920_Delay1ms(uCHAR n) { uCHAR i; uCHAR j; for(j=0;j<n;j++) for(i=0;i<255;i++); } //================================================================ void ST7920_SendCmd(unsigned CHAR cmd) { EA=0; SFRPAGE=0x0f; P6=cmd; ST7920RS=0; ST7920RW=0; ST7920CS=1; _nop_(); ST7920CS=0; _nop_(); ST7920CS=1; _nop_(); ST7920RW=1; P6=0xff; ST7920RS=0; while(P6&0x80); //make sure ST7920 is not in busy state by reading BF ST7920CS=0; ST7920CS=1; EA=1; // if(cmd) // ST7920_Delay1ms(3); } //================================================================ void ST7920_SendData(unsigned CHAR dat) { EA=0; SFRPAGE=0x0f; P6=dat; ST7920RS=1; ST7920RW=0; ST7920CS=1; ST7920CS=0; ST7920CS=1; ST7920RW=1; P6=0xff; ST7920RS=0; while(P6&0x80); //if BF(busy flag) is '1',wait ST7920CS=0; ST7920CS=1; EA=1; } //================================================================ //must be excuted ST7920_Init() firstly when reset the SYSTEM void ST7920_Init(void) { ST7920_Delay1ms(200); //waiting ST7920_SendCmd(0x30); //function set :8-bit interface ST7920_Delay1ms(10);   |
| 2樓: | >>參與討論 |
| 作者: 中喜 于 2005/5/12 8:54:00 發(fā)布:
高手點(diǎn)撥。 幾點(diǎn)疑惑: set cgram address的目的是什么。 怎么上顯示自定義字符和圖像。 scroll address(卷地址)是怎么回事?怎么樣去用啊? 多謝! 期待中啊、、、、、、 |
|
| 3樓: | >>參與討論 |
| 作者: 不愛說話 于 2005/5/12 9:30:00 發(fā)布:
對(duì)我有些啟發(fā). 我用TMS320LF2407控制液晶(ST7920)模塊. |
|
| 4樓: | >>參與討論 |
| 作者: 不愛說話 于 2005/5/13 20:27:00 發(fā)布:
不知ST7920和單片機(jī)連接時(shí)是否需要上拉電阻? |
|
| 5樓: | >>參與討論 |
| 作者: 不愛說話 于 2005/5/14 21:39:00 發(fā)布:
我試了,必須要接,否則無(wú)法正常讀寫數(shù)據(jù). |
|
| 6樓: | >>參與討論 |
| 作者: hotpower 于 2005/5/14 22:32:00 發(fā)布:
ST7920用串行接法只需2線即可 |
|
| 7樓: | >>參與討論 |
| 作者: 中喜 于 2005/5/15 1:25:00 發(fā)布:
C8051Fx系列的IO可以配置的(漏極輸出或集電極輸出等)! |
|
| 8樓: | >>參與討論 |
| 作者: 不愛說話 于 2005/5/16 11:50:00 發(fā)布:
沒辦法,我用的是89C51. 只好接上拉電阻. |
|
| 9樓: | >>參與討論 |
| 作者: mxinfa 于 2006/1/2 10:49:00 發(fā)布:
有畫圖的程序嗎? |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |