新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機I2C通信及LCD1602顯示C程序

        單片機I2C通信及LCD1602顯示C程序

        作者: 時間:2016-12-02 來源:網絡 收藏
        本程序所用的原理圖下載:點這里,單片機芯片使用的stc89c52;找到數碼管的原理圖即可.這是一整個單片機開發板的電路圖其他的忽略.本程序keil工程文件下載:http://www.51hei.com/f/1602iic.rar

        /*
        *功能: 利用iic發送數據,在數碼管上顯示,并通過串口發生到上位機,
        *且在lcd1602上顯示"Han Zhu Ying Xue"
        *"1754410821@qq.com";
        *作者: 徐冉
        *日期: 2013-05-29-22:21 2013-5-2919:15 - 22:17
        *備注: 程序已經順利通過調試,耗時3小時。
        */
        /*********51hei開發板***********/
        /********AT89C52-RC MCU***********/
        #include
        #define write_add 0xa0
        #define read_add 0xa1
        typedef unsigned int uint;
        typedef unsigned char uchar;
        sbit wela = P2^7;
        sbit dula = P2^6;
        //i2c
        sbit SCL = P2^1;
        sbit SDA = P2^0;
        //LCD1602
        sbit RS = P1^0;
        sbit RW = P1^1;
        sbit EN = P2^5;
        sbit BUSY = P0^7;
        uchar num,flag;
        uchar code string_1[] = "Han Zhu Ying Xue";
        uchar code string_2[] = "1754410821@qq.com";
        uchar code table[] = {

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


        0x3F, //"0"
        0x06, //"1"
        0x5B, //"2"
        0x4F, //"3"
        0x66, //"4"
        0x6D, //"5"
        0x7D, //"6"
        0x07, //"7"
        0x7F, //"8"
        0x6F //"9"
        };


        /********************************************************************/
        /**********************LCD1602底層驅動程序***************************/
        /********************************************************************/
        //delay: 延時xms
        void delay(uint xms)
        {
        uchar i, j;
        for(i = 0; i < xms; i++)
        for(j = 0; j < 110; j++);
        }
        //wait:判忙等待
        void wait()
        {
        P0 = 0xff;
        do
        {
        RS = 0;
        RW = 1;
        EN = 0;
        EN = 1;
        }while(BUSY == 1);
        EN = 0;
        }
        //write:cmd寫入命令
        void write_cmd(uchar cmd)
        {
        RS = 0;
        RW = 0;
        EN = 0;
        P0 = cmd;
        EN = 1;
        EN = 0;
        }
        //write:data 寫入數據
        void write_data(uchar datas)
        {
        RS = 1;
        RW = 0;
        EN = 0;
        P0 = datas;
        EN = 1;
        EN = 0;
        }
        //send:string 發送一串字符
        void send_string(uchar* str)
        {
        while(*str !=

        主站蜘蛛池模板: 徐汇区| 东阿县| 丁青县| 定州市| 玉屏| 雅江县| 巴里| 中山市| 图木舒克市| 莆田市| 天柱县| 和政县| 大宁县| 桦甸市| 自治县| 江安县| 濮阳县| 利津县| 鄢陵县| 封开县| 潜山县| 中宁县| 白玉县| 临海市| 剑川县| 蛟河市| 马关县| 兰西县| 红河县| 翼城县| 常宁市| 通州区| 沈丘县| 甘洛县| 望都县| 平潭县| 吉水县| 漳平市| 商丘市| 泰安市| 封丘县|