新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > pic單片機兩個IO口四線驅動LCD1602

        pic單片機兩個IO口四線驅動LCD1602

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

        //*******************************************************************
        //函數名稱:LcdInit();
        //輸入參數:無
        //輸出參數:無
        //功能描述:液晶初始化
        //建造日期:2008.12.08
        //*******************************************************************
        void LcdInit(void)
        {
        unsigned char i = 3;

        TxLs164(0x23); //接口設置

        do
        {
        Dat = 1; //使能下沿
        Dat = 0;
        DelayUs(50); //延時等待
        }
        while (--i);

        TxLs164(0x22); //四線模式

        Dat = 1; //使能下沿
        Dat = 0;
        DelayUs(50); //延時等待

        WriteData(0x28, 0); //接口設置
        WriteData(0x0c, 0); //顯示打開
        WriteData(0x01, 0); //顯示清屏
        WriteData(0x06, 0); //光標右移
        }

        //*******************************************************************
        //函數名稱:ShiftChar(*buff);
        //輸入參數:緩沖區首址, 0 = 左移 1 = 右移
        //輸出參數:無
        //功能描述:移動字符
        //建造日期:2008.12.08
        //*******************************************************************
        void ShiftChar(unsigned char *buff, unsigned char rl)
        {
        unsigned char temp, i;

        if (rl & 0x01) //字符右移
        {
        temp = buff[15]; //取尾字符

        for (i = 15; i > 0; i--)
        {
        buff[i] = buff[i - 1]; //數據右移
        }

        buff[0] = temp; //首尾交換
        }

        else //字符左移
        {
        temp = buff[0]; //取首字符

        for (i = 0; i < 15; i++)
        {
        buff[i] = buff[i + 1]; //數據左移
        }

        buff[15] = temp; //字符交換
        }
        }

        //*******************************************************************
        //函數名稱:main();
        //輸入參數:無
        //輸出參數:無
        //功能描述:主要程序
        //建造日期:2008.12.08
        //*******************************************************************
        void main(void)
        {
        unsigned char i, rl;

        PortInit(); //腳位設置
        ConInit(); //配置設置
        LcdInit(); //液晶設置

        DelayMs(50); //短暫延時
        AddrSite(0, 0); //坐標設置
        PrintChar(TopChar); //發送字符

        i = 0; //移動記數
        rl = 0; //左右移動

        while (1)
        {
        if (i++ > 200) //移動記數
        {
        i = 0; //記數清零
        rl ^= 0x01; //移動取反
        }

        DelayMs(250); //延時顯示
        ShiftChar(BotChar, rl); //移動字符

        AddrSite(0, 1); //坐標設置
        PrintChar(BotChar); //發送字符
        }
        }



        源代碼下載:http://www.51hei.com/f/1602ym.rar
        仿真文件下載:http://www.51hei.com/f/1602fz.rar


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 蓬莱市| 固镇县| 新邵县| 枣庄市| 昭苏县| 河池市| 重庆市| 隆化县| 确山县| 旬邑县| 阳泉市| 福建省| 弥勒县| 三亚市| 沙坪坝区| 田林县| 资阳市| 宁强县| 南部县| 祁阳县| 宁陵县| 准格尔旗| 珲春市| 佛坪县| 乐昌市| 泰顺县| 盐山县| 京山县| 正蓝旗| 安龙县| 乡宁县| 仪陇县| 山丹县| 汪清县| 邵东县| 万宁市| 瓮安县| 桐梓县| 那曲县| 波密县| 黔东|