新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR128的程序——12864液晶顯示

        AVR128的程序——12864液晶顯示

        作者: 時間:2016-11-22 來源:網絡 收藏
        #include
        #define uint unsigned int
        #define uchar unsigned char
        #define psbset DDRB |= (1<<4)
        #define psbset PORTB |= (1<<4)
        #define psbclr PORTB &=~(1<<4)
        #define rsout DDRB |= (1<<5)
        #define rsset PORTB |=(1<<5)
        #define rsclr PORTB &=~(1<<5)
        #define rwout DDRB |= (1<<6)
        #define rwset PORTB |= (1<<6)
        #define rwclr PORTB &= ~(1<<6)
        #define enout DDRB |= (1<<7)
        #define enset PORTB |= (1<<7)
        #define enclr PORTB &= ~(1<<7)
        unsigned char table[]="做我女朋友吧!";
        void mcu_init(void);
        void Delayus(uint US)
        {
        uint i;
        US=US*5/4;
        for( i=0;i
        }
        void Delayms(uint MS)
        {
        uint i,j;
        for( i=0;i
        for(j=0;j<1141;j++);
        }
        void write_12864com(uchar com)
        {
        rwclr;
        rsclr;
        Delayus(500);
        PORTA=com;
        enset;
        Delayus(1000);
        enclr;
        Delayus(1000);
        }
        void write_12864dat(uchar dat)
        {
        rwclr;
        rsset;
        Delayus(500);
        PORTA=dat;
        enset;
        Delayus(1000);
        enclr;
        Delayus(1000);
        }
        void init12864lcd(void)
        {
        Delayms(500);
        write_12864com(0x30);
        Delayus(500);
        write_12864com(0x30);
        Delayus(500);
        write_12864com(0x0f);
        Delayus(500);
        write_12864com(0x01);
        Delayms(25);
        write_12864com(0x06);
        Delayus(2500);
        write_12864com(0x0c);
        Delayus(500);
        }
        void display(void)
        {
        uchar i;
        write_12864com(0x80);
        for(i=0;i<14;i++)
        {
        write_12864dat(table[i]);
        Delayms(50);
        }
        }
        void main(void)
        {
        mcu_init();
        init12864lcd();
        while(1)
        {
        display();
        while(1);
        }
        }
        void mcu_init(void)
        {
        DDRA = 0XFF;
        PORTA = 0XFF;
        DDRC = 0XFF;
        PORTC = 0XFF;
        DDRF |= 0X0E;
        PORTF |= 0X0E;
        PORTF &= 0xF0;
        DDRB |= 0X10;
        PORTB |= 0X10;
        psbset;
        rsout;
        rwout;
        enout;
        }


        關鍵詞: AVR12812864液晶顯

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 古浪县| 杭锦后旗| 夏邑县| 胶州市| 大渡口区| 拉萨市| 云浮市| 德钦县| 安陆市| 玉门市| 武强县| 德庆县| 孟连| 宁河县| 泰顺县| 全州县| 北流市| 石渠县| 延庆县| 克拉玛依市| 民县| 广饶县| 崇义县| 金湖县| 无为县| 泰州市| 集贤县| 敦煌市| 乐平市| 济阳县| 侯马市| 横山县| 夏津县| 隆德县| 信丰县| 富宁县| 哈尔滨市| 松潘县| 定襄县| 罗源县| 邛崃市|