娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月22日(星期六)

2020年02月22日 | MSP430G2553操作LCD12864(并行/串行)

發布者:bln898 來源: eefocus關鍵字:MSP430G2553  LCD12864  并行  串行 手機看文章 掃描二維碼
隨時隨地手機看文章

1.MSP430驅動LCD12864

    MSP430驅動12864有兩種方式,

    一種是并口驅動,優點是數據傳輸特別快,缺點是占用單片機資源太多.

    一種是串口驅動,優點是只需要占用單片機兩個引腳,缺點是相對于并口傳輸慢了許多.


2.LCD12864引腳

從上往下依次為

    GND(接地),

    VCC(接3.3V!!!一定要3.3V),

    V0(偏壓,接滑動變阻器電位器再接5V),

    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).引腳接入

image.png

    (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).引腳接入

image.png

    (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); 

[1] [2]
關鍵字:MSP430G2553  LCD12864  并行  串行 引用地址:MSP430G2553操作LCD12864(并行/串行)

上一篇:嵌入式RTOS在MSP430單片機上的實現
下一篇:MSP430F5529調試問題總結

推薦閱讀

手機尤其是智能手機推出了十來年了,除了傳統的打電話發短信之外,手機能做的事情越來越多了,相應的傳統的卡片式相機,普通的音樂播放器等產品就在智能手機的大潮中被淘汰了。那么手機發展到今天是否已經到了瓶頸?會不會被什么智能設備取代呢?  首先我要給出結論,就是一定會被取代,但是最近幾十年肯定不會。  說手機一定會被取代,是因為新事物取...
如今新能源汽車越來越普遍,附加的一些輔助駕駛功能也越來越先進,特別是新能源汽車領域的巨頭特斯拉,它的輔助駕駛功能號稱史上最強,但是關于特斯拉輔助駕駛到底能夠實現哪些功能?這些功能又是用來做什么的?恐怕只有少數人了解,實際上它的輔助駕駛系統主要有三大塊的作用。第一項功能,輔助駕駛系統自動轉向功能(Autosteer)。顧名思義這項功能的作...
本文中,筆者將介紹使用嵌入式開發工具Keil uVision5,使用C語言,對微處理器STM32F103C8進行嵌入式開發。開發使用C語言,首先需要新建一個C語言文件,將其設為主函數的入口,因此,將此文件命名為main.c配置好軟硬件依賴環境后,在此文件中鍵入如下內容,嘗試編譯,如果能夠編譯成功說明環境配置成功。stm32f10x.h庫的功能是提供對于stm32f10x系列開發板...
集微網消息,雖然歐菲光主動出售其廣州攝像頭模組廠脫離蘋果供應鏈,但其在手機攝像頭模組領域的行業地位卻毋庸置疑。日前,歐菲光回復投資者提問時表示,公司已成為行業內攝像頭模組的主流供應商,攝像頭模組出貨量處于全球領先地位。與此同時,公司光學鏡頭業務進展順利,營業收入和出貨量均實現大幅增長,公司陸續進入國內主流手機廠商鏡頭供應鏈。此外...

史海拾趣

問答坊 | AI 解惑

編譯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 ...…

查看全部問答∨

mc1000測試發生SCAN_Enable

對CE開發,我是菜鳥中的新手。目前我是這樣的情況,經理給我了一個MC1000的掃碼器和一個對應的SDK,需要我在上面做條碼掃描的出入庫操作。我用VS2005在SDK上找到了VB和C#寫的SCAN的SAMPLE,可是,調試發布到Windows CE5. ...…

查看全部問答∨

嵌入式CPU的問題

想搞嵌入式開發 要求CPU的AD要12位以上.最好是16位. 看到用的比較多的ARM9,S3C2410,S3c2440的AD都是10位的 有誰知道有AD12位以上的CPU嗎? 介紹一個 ,,在哪能買到? 謝謝了哦.…

查看全部問答∨

ARM編譯 type disagreement 問題??在線等!!!!

在.c文件中: char* strncpy( char * dest, const char * source, int count ) {    char *p = dest;    while (count && (*p++ = *source++)) count--;    while(count--)       *p+ ...…

查看全部問答∨

多臺電源并聯在一起會對LED有影響嗎

之前我曾發過一貼,LED短期內嚴重變暗的問題,多謝大家的指點,如今發現現場是這樣接線的,就是多臺電源并聯在一起供電,請問,這樣有影響嗎 …

查看全部問答∨

電子設計中的創新思維

本帖最后由 paulhyde 于 2014-9-15 09:48 編輯 電子設計中的創新思維  …

查看全部問答∨

誰幫我到MXIM-IC申請樣品

做數控電源急需樣品: MAX1300 - 8通道和4通道、±3V x VREF多量程輸入、串行16位ADC(MAX1300BEUG+)MAX972 - 超低功耗、漏極開路輸出、單/雙電源比較器(MAX972CUA+)MAX5134 - 引腳/軟件兼容的16/12位、電壓輸出DAC(MAX5134AGUE+) 網址是:http:// ...…

查看全部問答∨

使用STM32控制T6963C液晶沒有顯示

小弟這幾天使用STM32F103的片子控制T6963C  24064 液晶,但是調試了好幾天都沒有任何顯示,液晶屏在別人的程序上試過,沒有問題,程序編譯也很正常,控制端口輸出電平讀取電平也正常,估計是在對T6963C的控制上出現問題,小弟對液晶屏控制認識 ...…

查看全部問答∨

PICKIT3+TI的LM3S811開發板 求換MSP430UIF

本帖最后由 ddllxxrr 于 2016-1-7 16:58 編輯 PICKIT3+TI的LM3S811開發板  求換利爾達MSP430UIF ,有人換嗎?PICKIT3 是PIC單片機全系列的仿真器LM3S811開發板 和論壇那兩個哥們的一樣。就缺個 MSP430UIF 啊啊啊啊啊啊單出也 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 和平区| 威信县| 调兵山市| 霍山县| 綦江县| 井研县| 三明市| 浙江省| 印江| 固阳县| 通许县| 北京市| 延川县| 邓州市| 沽源县| 咸宁市| 万山特区| 毕节市| 文成县| 富平县| 左云县| 梓潼县| 保德县| 五指山市| 龙岩市| 开远市| 赤峰市| 通河县| 宝山区| 肥东县| 上杭县| 大洼县| 灵川县| 咸丰县| 那坡县| 平凉市| 天柱县| 漾濞| 汝州市| 康平县| 江孜县|