1.MSP430驅動LCD12864
MSP430驅動12864有兩種方式,
一種是并口驅動,優點是數據傳輸特別快,缺點是占用單片機資源太多.
一種是串口驅動,優點是只需要占用單片機兩個引腳,缺點是相對于并口傳輸慢了許多.
2.LCD12864引腳
從上往下依次為
GND(接地),
VCC(接3.3V!!!一定要3.3V),
RS(CS)(并口寫0為命令傳輸,寫1為數據傳輸)(串口為片選,接VCC即可),
R/W(SID)(并口寫0為寫操作,寫1為讀操作)(串口為數據位),
E(SCLK)(并口為使能端口)(串口為時鐘端口),
DB0---->DB7(并口數據位)(串口空接),
PSB(寫0為串口模式,寫1為并口模式),
NC(懸空),
RST(復位端口)(低電平有效),
VOUT(12864內建的負壓輸出),(通常與VDD VO VEE(VOUT)一并接個10k或20k的可調電阻)(懸空),
BLA(背光燈+5V接入),
BLK(背光燈GND接入).
3.初始化流程
開電源->
功能設定0x30->
功能設定0x30->
顯示開關0x0C->
清除屏幕0x01->
進入設定點0x06
4.并口驅動12864
(1).引腳接入
(2).時序
1).命令寫:
EN=0;/*上升沿有效,先初始化為低電平*/
RS=0;/*低電平為命令*/
RW=0;/*低電平為寫*/
EN=1;
P1OUT=COM/*命令直接寫入*/
2).數據寫:
EN=0;/*上升沿有效,先初始化為低電平*/
RS=1;/*高電平為數據*/
RW=0;/*低電平為寫,高電平為讀*/
EN=1;
P1OUT=Data/*數據直接寫入*/
(3).代碼書寫
#include "LCD12864.h"
#define RS_Low P2OUT&=~BIT0
#define RS_High P2OUT|=BIT0
#define RW_Low P2OUT&=~BIT1
#define RW_High P2OUT|=BIT1
#define EN_Low P2OUT&=~BIT2
#define EN_High P2OUT|=BIT2
void PortInit(void)
{
/*初始化引腳*/
P1SEL=0x00;
P1DIR=0xFF;
P2SEL=0x00;
P2DIR=0xFF;
}
void LCD12864_Write_Com(unsigned char com)
{
/*寫命令操作,參數com為命令*/
EN_Low;
RS_Low;
RW_Low;
delay_us(10);
EN_High;
delay_us(10);
P1OUT=com;
delay_us(10);
EN_Low;
delay_us(10);
}
void LCD12864_Write_Data(unsigned char data)
{
/*寫數據操作,參數data為數據*/
EN_Low;
RS_High;
RW_Low;
delay_us(10);
EN_High;
delay_us(10);
P1OUT=data;
delay_us(10);
EN_Low;
delay_us(10);
}
void LCD12864_Init(void)
{
/*通過指令初始化LCD12864*/
LCD12864_Write_Com(0x30);
LCD12864_Write_Com(0x02);
LCD12864_Write_Com(0x0C);/**/
LCD12864_Write_Com(0x01);/*清除顯示*/
LCD12864_Write_Com(0x06);
}
void LCD12864_Write_Line(unsigned char y,unsigned char x)
{
/*選擇字符顯示位置*/
switch(y)
{
case 1:
LCD12864_Write_Com(0x80+x);
break;
case 2:
LCD12864_Write_Com(0x90+x);
break;
case 3:
LCD12864_Write_Com(0x88+x);
break;
case 4:
LCD12864_Write_Com(0x98+x);
break;
}
}
void LCD12864_Write_Str(unsigned char *str)
{
/*字符寫入顯示*/
while(*str)
{
LCD12864_Write_Data(*str);
str++;
}
}
5.串口驅動12864
(1).引腳接入
(2).時序
CS持續保持高電平.
1).寫入字節:
首先SCLK=0;(上升沿有效,初始化為低電平).
將要寫入的8位數據與0x80進行&運算(也就是最高位10000000),
若是1則SID=1,否則SID=0;
SCLK=1;
2).寫入命令
先發送11111 RW RS 0,
發送命令則是11111000,
再發送 DB7 DB6 DB5 DB4 0000,
再發送 DB3 DB2 DB1 DB0 0000.
3).寫入數據
先發送11111 RW RS 0,
發送命令則是11111010,
再發送 DB7 DB6 DB5 DB4 0000,
再發送 DB3 DB2 DB1 DB0 0000.
(3).代碼書寫
#include "LCD12864.h"
#define rw_h P1OUT |= BIT0
#define rw_l P1OUT &= ~BIT0
#define en_h P1OUT |= BIT1
#define en_l P1OUT &= ~BIT1
void PortConfig(void)
{
/*引腳初始化*/
P1DIR = 0xFF;
P1SEL = 0x00;
}
uint Strlen(uchar *p)
{
/*返回字符串長度*/
uint i;
for(i=0;*(p+i);i++);
return i;
}
void WriteBytes(uchar byte)
{
/*寫入字節*/
for (unsigned char i = 0; i < 8; i++)
{
en_l;
if (byte & 0x80)
{
rw_h;
}
else
{
rw_l;
}
en_h;
delay(1);
byte <<= 1;
}
}
void SerialWriteData(uchar send)
{
/*依據時序寫入數據*/
WriteBytes(0xfa); //1111 1010向液晶寫數據
WriteBytes(send & 0xf0); //取高4位
WriteBytes((send << 4) & 0xf0); //取低4位
}
void SerialWriteCmd(uchar send)
{
/*依據時序寫入命令*/
WriteBytes(0xf8); //1111 1000向液晶寫數據
WriteBytes(send & 0xf0); //取高4位
WriteBytes((send << 4) & 0xf0); //取低4位
}
void init_lcd()
{
SerialWriteCmd(0x30);
SerialWriteCmd(0x30);
SerialWriteCmd(0x02);
上一篇:嵌入式RTOS在MSP430單片機上的實現
下一篇:MSP430F5529調試問題總結
推薦閱讀
史海拾趣
ETI Systems深知人才是企業發展的核心競爭力。因此,公司一直注重人才培養和引進工作。通過建立完善的人才培養機制和激勵機制,ETI Systems吸引了一批具有豐富經驗和專業技能的優秀人才加入公司。同時,公司也積極為員工提供廣闊的發展空間和良好的工作環境,讓員工能夠充分發揮自己的才能和創造力。這種重視人才的企業文化,為ETI Systems的長期發展提供了有力的人才保障。
為了拓展國際市場,德藝隆制定了國際化戰略。他們積極參加國際展會,與全球客戶建立聯系;同時,公司還加大了對海外市場的投入,建立了海外銷售網絡和售后服務體系。通過多年的努力,德藝隆的產品已經出口到多個國家和地區,贏得了國際市場的認可。
Circuit Technology Inc(以下簡稱CTI)自創立之初,便致力于電路技術的研發與創新。在成立初期,公司憑借其獨特的電路設計技術,成功開發出一款高效能、低成本的電路板,迅速在行業內嶄露頭角。隨著技術的不斷完善和市場的逐步認可,CTI的產品逐漸占據了市場份額,公司規模也逐漸擴大。為了進一步拓展市場,CTI積極與國內外知名企業合作,共同開發新產品,不斷提升自身的技術水平和市場競爭力。
背景:面對日益激烈的市場競爭,HCH Co公司決定通過智能制造來提升生產效率和產品質量。公司引入先進的自動化生產線和智能物流系統,實現了從原材料采購到成品出庫的全程智能化管理。
發展:智能制造的實施,不僅大幅提高了生產效率和產品良率,還降低了人力成本和運營風險。HCH Co公司因此能夠在更短的時間內響應市場需求變化,推出更多符合消費者需求的高品質電子產品。同時,公司還通過智能制造的實踐經驗,為行業內的其他企業提供了可借鑒的轉型路徑。
在公司快速發展的過程中,High Tech Chips Inc深刻認識到單打獨斗的局限性。因此,公司積極尋求與全球知名科技企業的戰略合作。通過與華為、三星等手機制造商的合作,High Tech Chips Inc的芯片產品被廣泛應用于這些企業的旗艦機型中,極大地提升了產品的知名度和市場占有率。同時,公司還與英偉達、英特爾等芯片巨頭建立了技術合作關系,共同推動芯片技術的創新和發展。
面對日益激烈的市場競爭,ARBOR公司始終堅持創新驅動的發展策略。公司不斷加大研發投入,引進高素質的研發人才,加強與國內外科研機構的合作。通過不斷創新,ARBOR公司成功推出了一系列具有自主知識產權的新產品和技術。這些創新成果不僅提升了公司的核心競爭力,也為公司的未來發展注入了新的動力。
雖然這些故事是虛構的,但它們反映了電子行業公司可能面臨的挑戰和機遇。通過不斷的技術創新、市場拓展和合作共贏,ARBOR公司或類似的電子企業可以不斷壯大并引領行業的發展。
編譯linphone時候出現下面的錯誤,不知道如何修改,望得到高人指點。謝謝 編譯linphone時候出現下面的錯誤,不知道如何修改,望得到高人指點。謝謝 gcc -DENABLE_TRACE -D_ORTP_SOURCE -DOSIP_MT -g -O2 -o .libs/linphonec linphonec.o commands.o ../coreapi/.libs/liblinphone.so -lreadline -lncurses /us ...… 查看全部問答∨ |
對CE開發,我是菜鳥中的新手。目前我是這樣的情況,經理給我了一個MC1000的掃碼器和一個對應的SDK,需要我在上面做條碼掃描的出入庫操作。我用VS2005在SDK上找到了VB和C#寫的SCAN的SAMPLE,可是,調試發布到Windows CE5. ...… 查看全部問答∨ |
ARM編譯 type disagreement 問題??在線等!!!! 在.c文件中: char* strncpy( char * dest, const char * source, int count ) { char *p = dest; while (count && (*p++ = *source++)) count--; while(count--) *p+ ...… 查看全部問答∨ |
|
做數控電源急需樣品: MAX1300 - 8通道和4通道、±3V x VREF多量程輸入、串行16位ADC(MAX1300BEUG+)MAX972 - 超低功耗、漏極開路輸出、單/雙電源比較器(MAX972CUA+)MAX5134 - 引腳/軟件兼容的16/12位、電壓輸出DAC(MAX5134AGUE+) 網址是:http:// ...… 查看全部問答∨ |
|
小弟這幾天使用STM32F103的片子控制T6963C 24064 液晶,但是調試了好幾天都沒有任何顯示,液晶屏在別人的程序上試過,沒有問題,程序編譯也很正常,控制端口輸出電平讀取電平也正常,估計是在對T6963C的控制上出現問題,小弟對液晶屏控制認識 ...… 查看全部問答∨ |
PICKIT3+TI的LM3S811開發板 求換MSP430UIF 本帖最后由 ddllxxrr 于 2016-1-7 16:58 編輯 PICKIT3+TI的LM3S811開發板 求換利爾達MSP430UIF ,有人換嗎?PICKIT3 是PIC單片機全系列的仿真器LM3S811開發板 和論壇那兩個哥們的一樣。就缺個 MSP430UIF 啊啊啊啊啊啊單出也 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 【摸黑搶樓】贏大禮,關于示波器的狂想曲!正式開搶!!!
- DigiKey應用探索站重磅上線!潮流應用,硬核技術探秘,N多干貨,一站get!
- 學視頻,曬WEBENCH® 設計方案,免費獲得TI樣片!
- 新活動上線!ST NUCLEO-U575ZI-Q免費測評來了~
- ams圣誕禮物大作戰:掃碼、關注、玩游戲、贏禮!
- 3小時實戰+剖析:TI工程師手把手帶你全面入門MSP430(限量售$4.3開發套件,助你參與動手實驗)
- 有獎直播|使用 ModusToolbox® 構建系統,靈活應對物聯網設計挑戰
- 下載有禮:2017年泰克亞太專家大講堂第二期: 100G/200G/400G通訊標準發展趨勢及解決方案
- EE團--TI 原裝DK-LM3S9B96開發板 348元(包郵)!
- 用“ADI實驗室電路”講故事,正式啟動!