新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機教程之51單片機紅外搖控,并在LCD1602上顯示

        單片機教程之51單片機紅外搖控,并在LCD1602上顯示

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

        #include
        typedef unsigned int uint;
        typedefunsigned char uchar;

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

        sbit LCD_RS=P2^0;
        sbit LCD_RW=P2^1;
        sbit LCD_EN=P2^2;


        sbit IRINPUT=P3^2;

        uchar code Display_LINE0[]={"VALUE FROM IR:"};
        ucharDisplay_LINE1[]={"IR CODE:H"};
        uchar IR_Input_Buffer[8];
        uchar Display_Buffer[3]={0x00,0x00};//數碼管顯示緩沖






        void _delay_us(uint x)
        {
        uchar i;
        while(x--)
        for(i=0;i<13;i++);
        }

        void _delay_ms(unsigned int x)
        {
        unsigned char i;
        while(x--)
        {
        for(i=0;i<120;i++);
        }
        }

        uchar LCD_Busy(void)//測忙
        {
        uchar LCD_Status;//返回值變量
        LCD_RS=0;//讀取狀態
        LCD_RW=1;
        LCD_EN=1;
        _nop_();_nop_();_nop_();_nop_();
        LCD_Status=P0;
        LCD_EN=0;
        return LCD_Status;
        }

        void LCD_Write_Command(uchar cmd)//寫指令
        {
        while((LCD_Busy()&0x80)==0x80);//測忙
        LCD_RS=0;//
        LCD_RW=0;
        LCD_EN=0;
        P0=cmd;
        LCD_EN=1;
        _nop_();_nop_();
        LCD_EN=0;
        _nop_();_nop_();
        }

        void LCD_Write_Data(uchar dat)//寫數據
        {
        while((LCD_Busy()&0x80)==0x80);
        LCD_RS=1;
        LCD_RW=0;
        LCD_EN=0;
        P0=dat;
        LCD_EN=1;
        _nop_();_nop_();
        LCD_EN=0;
        _nop_();_nop_();
        }

        void Init_LCD(void)//液晶初始化
        {
        _delay_ms(15);
        LCD_Write_Command(0x38);
        _delay_ms(5);
        LCD_Write_Command(0x06);
        _delay_ms(5);
        LCD_Write_Command(0x0c);
        _delay_ms(5);
        LCD_Write_Command(0x01);
        _delay_ms(5);

        }

        void LCD_POS(uchar pos)//字符顯示位置
        {
        LCD_Write_Command(0x80|pos);
        }

        void Show_String(uchar *str)//顯示字符串
        {
        while(*str!=

        主站蜘蛛池模板: 石棉县| 太保市| 亳州市| 延安市| 水城县| 临城县| 鹤庆县| 新津县| 定兴县| 兖州市| 泾川县| 新建县| 潜江市| 灌阳县| 揭阳市| 西藏| 广安市| 崇信县| 灵山县| 深州市| 和政县| 延安市| 沈丘县| 潜山县| 谷城县| 泌阳县| 芮城县| 云和县| 岐山县| 庐江县| 米脂县| 平舆县| 天水市| 溧阳市| 会同县| 西丰县| 吉林市| 蒙阴县| 上饶县| 宝兴县| 光山县|