新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > msp430單片機(jī)控制lcd1602顯示C程序

        msp430單片機(jī)控制lcd1602顯示C程序

        作者: 時(shí)間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
        //MSP430寫的1602液晶顯示程序2011/8/26//硬件連接

        //P4 數(shù)據(jù)口 P3.7---E P3.6---RW P3.5----RS
        #include"msp430x14x.h"
        #define uint unsigned int
        #define rw(x) P3OUT=(P3OUT&(~BIT6))|(x?BIT6:0);

        本文引用地址:http://www.104case.com/article/201611/320620.htm

        unsigned char table0[]="hankouxueyuan";
        unsigned char table1[]="dianzisheji";

        //**************延時(shí)***********************************
        void delay(uint z)
        {
        uint t,y;
        for(t=z;t>0;t--)
        for(y=110;y>0;y--);
        }

        //*******寫命令*****************************************
        void write_com(unsigned char com)
        {
        P3OUT&=~BIT5;//作為RS選擇端低電平有效
        rw(0);
        P3OUT|=BIT7;
        delay(10);
        P4OUT=com;
        //P4OUT=com;
        //P3OUT|=BIT7;
        delay(15);
        P3OUT&=~BIT7;
        }

        //*******寫數(shù)據(jù)***************************************************
        void write_data(unsigned char date)
        {
        P3OUT|=BIT5;//作為RS選擇端高電平有效勞
        rw(0);
        P3OUT|=BIT7;
        delay(10);
        P4OUT=date;
        //delay(15);
        //P4OUT=date;
        //P3OUT|=BIT7;作為E選擇端=1;
        delay(15);
        P3OUT&=~BIT7;
        }


        //********初始化******************************************
        void init()
        {
        P3DIR=0xff;//P3輸出 作控制口
        P3SEL=0;
        P3OUT=0x00;

        P3OUT&=~BIT7;//E
        P3OUT&=~BIT5;//RS

        P4DIR=0XFF;//P4輸出 作數(shù)據(jù)口
        P4SEL=0;
        P4OUT=0X00;
        write_com(0x38);//顯示模式設(shè)置
        write_com(0x0c);//開顯示,不顯光標(biāo)
        write_com(0x06);//數(shù)據(jù)地址指針
        write_com(0x01);//清屏
        //_BIS_SR(GIE);//兩個(gè)開總中斷的方法隨便用哪一個(gè)
        // _EINT();
        }

        //************顯示函數(shù)2********************
        display2(unsigned char x,unsigned char *p)
        {
        unsigned char y=0; //y要給其初值0否則出亂碼
        write_com(x);
        while(p[y]!=0x00)
        {
        write_data(p[y]);
        y++;
        delay(15);
        }
        }

        //***************主函數(shù)****************************************************
        void main()
        {
        WDTCTL=WDTPW+WDTHOLD; //關(guān)看門狗
        init();
        while(1)
        {
        display2(0x80+0x01,table0);
        display2(0x80+0x40+0x01,table1);
        }
        }



        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 鱼台县| 新干县| 乌拉特后旗| 庄河市| 梅河口市| 康乐县| 泰安市| 特克斯县| 乐昌市| 精河县| 天长市| 京山县| 扶绥县| 伊宁县| 庆阳市| 丹江口市| 宣恩县| 鄯善县| 丹巴县| 甘泉县| 甘谷县| 西乌珠穆沁旗| 井陉县| 宽城| 枝江市| 水富县| 金溪县| 赣榆县| 和田市| 鹤岗市| 元阳县| 方正县| 巴青县| 即墨市| 常宁市| 蓬溪县| 中西区| 手机| 宣武区| 友谊县| 临澧县|