新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MSC51系列的LCD1602通用程序

        基于MSC51系列的LCD1602通用程序

        作者: 時間:2016-11-11 來源:網絡 收藏
        #include

        #define PORT P2
        sbit RS = P3^5;//1602的數據/指令選擇控制線
        sbit RW = P3^6;//1602的讀寫控制線
        sbit EN = P3^7;//1602的使能控制線

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

        unsigned char code table[] = "LCD1602 check ok"; //要顯示的內容1放入數組tablel
        unsigned char code table1[] = "study up"; //要顯示的內容2放入數組table1


        void DelayXms(unsigned int time)//延時程序,大約1ms
        {
        unsigned char i;
        while(time--)
        {
        for(i = 0;i < 112;i++)//11.0592MHz晶振
        {};
        }
        }
        void LCDWriteCom(unsigned char com) //1602寫命令函數
        {
        RS = 0; //選擇指令寄存器
        RW = 0; //選擇寫
        PORT = com; //把命令字送入PORT
        DelayXms(5); //延時一小會兒,讓1602準備接收數據
        EN = 1; //使能線電平變化,命令送入1602的8位數據口
        EN = 0;
        }
        void LCDWriteDat(unsigned char dat) //1602寫數據函數
        {
        RS = 1; //選擇數據寄存器
        RW = 0; //選擇寫
        PORT = dat; //把要顯示的數據送入PORT
        DelayXms(5); //延時一小會兒,讓1602準備接收數據
        EN = 1; //使能線電平變化,數據送入1602的8位數據口
        EN = 0;
        }
        void LCDInit() //1602初始化函數
        {
        LCDWriteCom(0x38); //8位數據,雙列,5*7字形
        LCDWriteCom(0x0c); //開啟顯示屏,關光標,光標不閃爍
        LCDWriteCom(0x06); //顯示地址遞增,即寫一個數據后,顯示位置右移一位
        LCDWriteCom(0x01); //清屏
        }
        void main() //主函數
        {
        unsigned char n,m = 0;
        LCDInit(); //液晶初始化
        LCDWriteCom(0x80); //顯示地址設為80H(即00H,)上排第一位
        for(m = 0;m < 16;m++) //將table[]中的數據依次寫入1602顯示
        {
        LCDWriteDat(table[m]);
        DelayXms(200);
        }
        LCDWriteCom(0x80+0x44); //重新設定顯示地址為0xc4,即下排第5位
        for(n = 0;n<8;n++) //將table1[]中的數據依次寫入1602顯示
        {
        LCDWriteDat(table1[n]);
        DelayXms(200);
        }
        while(1); //動態停機
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 磴口县| 五寨县| 托里县| 盐津县| 肃宁县| 射洪县| 扶余县| 紫金县| 沧州市| 郑州市| 襄城县| 堆龙德庆县| 湄潭县| 聂荣县| 申扎县| 巴中市| 芒康县| 宁南县| 古丈县| 伊川县| 建昌县| 金塔县| 大关县| 修武县| 惠安县| 瑞安市| 瓮安县| 龙口市| 延边| 桐柏县| 邯郸市| 福海县| 日照市| 和硕县| 武汉市| 芒康县| 二手房| 濉溪县| 新野县| 习水县| 石阡县|