新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430寫的1602液晶顯示程序

        MSP430寫的1602液晶顯示程序

        作者: 時間:2016-11-13 來源:網絡 收藏
        //硬件連接 P4 數據口 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/316428.htm

        unsigned char table0[]="diansai 2010-7";
        unsigned char table1[]="0123456789";

        //**************延時***********************************
        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);
        P4OUT=com;
        delay(5);
        P3OUT|=BIT7;
        //delay(5);
        P3OUT&=~BIT7;
        }

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


        //********初始化******************************************
        void init()
        {

        P3DIR=0xff;//P3輸出 作控制口
        P3SEL=0;
        P3OUT=0x00;

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

        P4DIR=0XFF;//P4輸出 作數據口
        P4SEL=0;
        P4OUT=0X00;


        write_com(0x38);//顯示模式設置
        write_com(0x0c);//開顯示,不顯光標
        write_com(0x06);//數據地址指針
        write_com(0x01);//清屏
        _BIS_SR(GIE);//兩個開總中斷的方法隨便用哪一個
        // _EINT();
        }

        //************顯示函數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(5);
        }
        }

        //***************主函數****************************************************
        void main()
        {
        WDTCTL=WDTPW+WDTHOLD; //關看門狗
        init();
        display2(0x80+0x01,table0);
        display2(0x80+0x40+0x03,table1);
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 新源县| 甘谷县| 大余县| 盐亭县| 宜阳县| 珲春市| 绿春县| 乌鲁木齐县| 类乌齐县| 南宫市| 新巴尔虎左旗| 柳江县| 万州区| 宜城市| 泸溪县| 舒城县| 武邑县| 师宗县| 日照市| 玉田县| 共和县| 北海市| 兴安盟| 班玛县| 凤阳县| 南川市| 游戏| 常德市| 酒泉市| 华安县| 新野县| 清镇市| 棋牌| 长春市| 郯城县| 沁阳市| 东莞市| 大邑县| 柘城县| 南澳县| 青州市|