欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2766|回復: 1
收起左側

程序仿真正確,放到12864液晶顯示器無顯示,且12864液晶顯示器全亮,代碼如下:

[復制鏈接]
ID:396423 發表于 2018-9-27 10:36 | 顯示全部樓層 |閱讀模式
#include<reg51.h>
#include<intrins.h>
//定義控制信號端口
sbit RS=P0^7;
sbit RW=P0^6;
sbit E=P0^5;
//聲明調用函數
void lcd_w_cmd(unsigned char com);                //寫命令字函數
void lcd_w_dat(unsigned char dat);                //寫數據函數
unsigned char lcd_r_start();                        //讀狀態函數
void lcd_init();                                                //LCD初始化函數
void delay100us(unsigned char t);                //可控延時函數
void delay5us(unsigned char n);                        //軟件實現延時函數,n*5個機器周期
void main()                                                                //主函數
{
        unsigned char Disp[]="He Zhe";                //定義字符數組Disp
        unsigned char i;
        P2=0xff;                                                        //送全1到P1口
        lcd_init();                                                        //初始化LCD
        delay100us(255);                                       
        lcd_w_cmd(0xc2);                                        //定位光標設置顯示位置
        delay100us(255);
        for(i=0;i<6;i++)                                        //顯示字符串
        {
                lcd_w_dat(Disp[i]);
                delay100us(200);
        }
        while(1);                                                        //顯示完成
}
void delay100us(unsigned char t)
{
        unsigned char j,i;
        for(i=0;i<t;i++)
                for(j=0;j<10;j++);
}
void delay5us(unsigned char n)
{
        do
        {
                _nop_();
                _nop_();
                _nop_();
                n--;
        }
        while(n);
}
void lcd_init()
{
        lcd_w_cmd(0x3c);                                        //設置工作方式
        lcd_w_cmd(0x0e);                                        //設置光標
        lcd_w_cmd(0x01);                                        //清屏
        lcd_w_cmd(0x06);                                        //設置輸入方式
        lcd_w_cmd(0x80);                                        //設置初始顯示位置
}
unsigned char lcd_r_start()
{
        unsigned char s;
        RW=1;                                                                //RW=1,RS=0,讀LCD狀態
        delay5us(1);
        RS=0;
        delay5us(1);
        E=1;                                                                //E端時序
        delay5us(1);
        s=P2;                                                                //從LCD的數據口讀狀態
        delay5us(1);
        E=0;
        delay5us(1);
        RW=0;
        delay5us(1);
        return(s);                                                        //返回讀取的LCD狀態字
}
void lcd_w_cmd(unsigned char com)
{
        unsigned char i;
        do
        {                                                                        //查LCD忙操作
                i=lcd_r_start();                                //調用讀狀態字函數
                i=i&0x80;                                                //與操作屏蔽掉低7位
                delay100us(2);
        }
        while(i!=0);                                                //LCD忙,繼續查詢,否則退出循環
        RW=1;
        delay5us(1);
        RS=0;                                                                //RW=1,RS=0,寫入LCD命令字
        delay5us(1);
        E=1;                                                                //E端時序
        delay5us(1);
        P2=com;                                                                //將com中的命令字寫入LCD數據口
        delay5us(1);
        E=0;
        delay5us(1);
        RW=1;
        delay100us(255);
}
void lcd_w_dat(unsigned char dat)
{
        unsigned char i;
        do
        {                                                                        //查忙操作
                i=lcd_r_start();                                //調用讀狀態字函數
                i=i&0x80;                                                //與操作屏蔽掉低7位
                delay100us(2);
        }
        while(i!=0);                                                //LCD忙,繼續查詢,否則退出循環
        RW=0;
        delay5us(1);
        RS=1;                                                                //RW=1,RS=0,寫入LCD命令字
        delay5us(1);
        E=1;                                                                //E端時序
        delay5us(1);
        P2=dat;                                                                //將dat中的顯示數據寫入LCD數據口
        delay5us(1);
        E=0;
        delay5us(1);
        RW=1;
        delay100us(255);
}


QX-mini51.pdf

154.08 KB, 下載次數: 8

回復

使用道具 舉報

ID:537018 發表于 2019-5-23 16:20 | 顯示全部樓層
1、沒有信號輸入
2、信號輸入成功,但解碼過程出現問題
3、解碼成功,液晶驅動不正常

有背光不顯示內容:基本可以排除電源和背光源問題。問題出在信號輸入,解碼,液晶驅動部分。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表