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

標題: N76E003單片機控制LCD1602的問題 求大佬幫忙看下 [打印本頁]

作者: shlong2001    時間: 2018-12-13 09:01
標題: N76E003單片機控制LCD1602的問題 求大佬幫忙看下
用的N76E003的  P0口接LCD1602模塊的DB0~DB7,P1.2接RS,P1.4接RW ,P1.3接EN;程序抄的大佬的改了下 不知道為什么LCD沒有一點顯示 求大佬們幫看下   程序如下

#include "N76E003.h"
#include "SFR_Macro.h"
#include "Function_define.h"
#include "Common.h"
#include "Delay.h"
#define uint unsigned int  //預定義一下
#define uchar unsigned char
sbit rs=P1^2;    //1602的數據/指令選擇控制線
sbit rw=P1^4;        //1602的讀寫控制線
sbit en=P1^3;        //1602的使能控制線
/*P2口接1602的D0~D7,注意不要接錯了順序,我以前可在這上面吃過虧~*/
uchar code table[]="LCD1602 check ok"; //要顯示的內容1放入數組tablel
uchar code table1[]="study up";             //要顯示的內容2放入數組table1

void GPIO_INIT(void)
{
    P00_PushPull_Mode;
          P01_PushPull_Mode;
          P02_PushPull_Mode;
          P03_PushPull_Mode;
    P04_PushPull_Mode;
          P05_PushPull_Mode;
          P06_PushPull_Mode;
          P07_PushPull_Mode;
          P12_PushPull_Mode;
          P13_PushPull_Mode;
          P14_PushPull_Mode;

}
void delay(uint n)       //延時函數                       
{
    uint x,y;  
    for(x=n;x>0;x--)
        for(y=110;y>0;y--);
}
void lcd_wcom(uchar com)  //1602寫命令函數                 
{
    rs=0;            //選擇指令寄存器
    rw=0;            //選擇寫
    P0=com;            //把命令字送入P2
    delay(10);            //延時一小會兒,讓1602準備接收數據
    en=1;           //使能線電平變化,命令送入1602的8位數據口
    en=0;
}
void lcd_wdat(uchar dat)        //1602寫數據函數      
{
    rs=1;        //選擇數據寄存器
    rw=0;        //選擇寫
    P0=dat;        //把要顯示的數據送入P2
    delay(10);        //延時一小會兒,讓1602準備接收數據
    en=1;        //使能線電平變化,數據送入1602的8位數據口
    en=0;
}
void lcd_init()              //1602初始化函數      
{
    lcd_wcom(0x38);       //8位數據,雙列,5*7字形      
    lcd_wcom(0x0E);      //開啟顯示屏,關光標,光標不閃爍
    lcd_wcom(0x06);    //顯示地址遞增,即寫一個數據后,顯示位置右移一位
    lcd_wcom(0x01);    //清屏
}
void main()            //主函數
{     
    uchar n,m=0;
          GPIO_INIT();
    lcd_init();                 //液晶初始化
    lcd_wcom(0x80);   //顯示地址設為80H(即00H,)上排第一位      
    for(m=0;m<16;m++)     //將table[]中的數據依次寫入1602顯示
    {
            lcd_wdat(table[m]);           
            delay(400);
    }
    lcd_wcom(0x80+0x44); //重新設定顯示地址為0xc4,即下排第5位
    for(n=0;n<8;n++)   //將table1[]中的數據依次寫入1602顯示
    {     
            lcd_wdat(table1[n]);
           delay(400);
    }
    while(1);        //動態停機
}






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1