久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2543|回復: 4
打印 上一主題 下一主題
收起左側

單片機LCD1602程序錯誤

[復制鏈接]
跳轉到指定樓層
樓主
#include"LCD1602.H"


#define  u16  unsigned int
#define         LCD_DelayNop()   NOP(20)



//檢測忙函數
void Check_Busy(void)
{
     u16 i;
     for(i=0;i<5000;i++) {if(!LCD_B7) break;}         //檢測忙
}


//初始化寫命令,不檢測忙
void Cmd_Send_Init()
{
     unsigned char cmd;
     LCD_RW=0;
     LCD_BusData(cmd);
         LCD_DelayNop();
         LCD_ENA=1;
         LCD_DelayNop();
         LCD_ENA=0;
     LCD_BusData(0xff);        
}
//寫命令,檢測忙
void Write_CMD(unsigned char cmd)
{
     LCD_RS =0;
         LCD_RW=1;
         LCD_BusData(0xff);
         LCD_DelayNop();
         LCD_ENA=1;
         Check_Busy();
         LCD_ENA=0;
         LCD_RW=0;




     LCD_BusData(cmd);
         LCD_DelayNop();
         LCD_ENA=1;
         LCD_DelayNop();
         LCD_ENA=0;
     LCD_BusData(0xff);
}


//寫顯示數據,檢測忙
void Write_DIS_Data(unsigned char dat)
{
     LCD_RS=0;
         LCD_RW=1;


     LCD_BusData(0xff);
         LCD_DelayNop();
         LCD_ENA=1;
         Check_Busy();
         LCD_ENA=0;
         LCD_RW=0;
         LCD_RS =1;


     LCD_BusData(dat);
         LCD_DelayNop();
         LCD_ENA=1;
         LCD_DelayNop();
         LCD_ENA=0;
     LCD_BusData(0xff);
}




//LCD初始化
void LCD_Init(void)
{
     LCD_ENA=0;
     LCD_RS =0;
         LCD_RW=0;
         delay_Nms(100);
     Cmd_Send_Init(C_BIT8);                                //設置數據8位
     delay_Nms(10);
         Write_CMD(C_L2DOT7);                           //兩行5*7
         delay_Nms(6);
     Write_CMD(C_CLEAR);                                  //清屏
     Write_CMD(C_CUR_R);               //光標右移
         Write_CMD(C_ON);                                   //打開LCD
     Clear_Line(2);Clear_Line(1);
}
  
//清除一行
void Clear_Line(unsigned char row)
{
     unsigned char i;
     Write_CMD(((row&1)<<6)|0x80);
     for(i=0;i<LineLength;i++) Write_DIS_Data('');
}




//指定行、列和字符,寫一個字符
void Write_char(unsigned char row,unsigned char column,unsigned char dat)
{
      Write_CMD((((row & 1)<<6)+column)|0x80);
      Write_DIS_Data(dat);
}         




//寫一個字符串,指定行、列和字符串首地址
void Put_String(unsigned char row,unsigned char column,unsigned char *puts)
{
     Write_CMD((((row & 1)<<6)+column)|0x80);
         for(; *puts!=0; puts++)                        //遇到停止符0結束
         {
         Write_DIS_Data(*puts);
         if(++column>=LineLength)  break;
         }
}


// 寫數字
void Write_Num(unsigned char row,unsigned char column,long int dat)
{
     unsigned char num[8],i=0,j;
          while(dat){
                num[ i]=dat%10+'0';
                dat=dat/10;
                        i++;
           }
       j=0;
       if(i==0){
              Write_Char(row,column+i-j,'');
                          Write_Char(row,column,'0');
           }
       i--;
       while(j<=i){
             Write_Char(row,column+i-j,'');
             Write_Char(row,column+i-j,num[j]);
                j++;
           }




}




//按指定位置顯示一串字符
void  DisplayString(unsigned char X,unsigned char Y,unsigned char code*dat)
{
    unsigned char ListLength,X2;
        ListLength=0;
        X2=X;
    if(Y<1) Y=1;                   //限制X不大于16
        if(Y>4) Y=4;                        //Y小于4
        X &=0x0F;
        switch(Y)
    {
        case 1:X2|=0X80;     break;                  //根據行數來選擇相應的地址
                case 2:X2|=0X90;         break;
                case 3:X2|=0X88;         break;
                case 4:X2|=0X98;         break;
        }
    Write_Cmd(X2,1);                                           //發送地址碼
        while(dat[ListLength]>=0x20)                   //字符串結束
        {
        if(X<=0x0F)
                {
         Write_Data(dat[ListLength]);
                 ListLength++;
                 X++;
                }
        }
}










錯誤compiling LCD1602.C...
..\SRC\LCD1602.C(18): error C236: '_Cmd_Send_Init': different length of parameter lists
..\SRC\LCD1602.C - 1 Error(s), 0 Warning(s).

捕獲.PNG (64.73 KB, 下載次數: 14)

捕獲.PNG
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2020-2-28 21:26 | 只看該作者
改成下面樣子:
void Cmd_Send_Init(unsigned char cmd)
{
     LCD_RW=0;
     LCD_BusData(cmd);
         LCD_DelayNop();
         LCD_ENA=1;
         LCD_DelayNop();
         LCD_ENA=0;
     LCD_BusData(0xff);        
}
回復

使用道具 舉報

板凳
ID:644966 發表于 2020-2-28 22:12 | 只看該作者
俺明明定義了NOP,但是還有錯誤,求指教!!

捕獲1.PNG (67.11 KB, 下載次數: 12)

捕獲1.PNG
回復

使用道具 舉報

地板
ID:168996 發表于 2020-2-28 23:51 | 只看該作者
Cmd_Send_Init定義沒有形參,調用時又有形參
二樓正解
回復

使用道具 舉報

5#
ID:149451 發表于 2020-2-29 11:42 | 只看該作者
我通常是在程序里把下面這兩句加上,有用沒用再說
#define uchar unsigned char
#define uint  unsigned int
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中国美女av| 亚洲成人一区 | 黄免费观看视频 | a在线视频观看 | 影音先锋中文字幕在线观看 | 欧美性video 精品亚洲一区二区 | av激情在线| 国产精品久久久久久久岛一牛影视 | 成人在线视频免费观看 | 国产精品久久久久久久久久久久冷 | 精品国产aⅴ | 亚洲国产成人在线视频 | 麻豆久久精品 | 午夜影院在线观看 | 国产精品久久久久久久久久不蜜臀 | 日本欧美国产 | 日韩国产欧美在线观看 | 成人激情视频在线播放 | 欧美老少妇一级特黄一片 | 中文字幕日韩欧美一区二区三区 | 91精品国产日韩91久久久久久 | 性做久久久久久免费观看欧美 | 99精品在线观看 | 成人免费视频在线观看 | 国产欧美视频一区二区三区 | 亚洲一二三区在线观看 | 国产黄色一级电影 | 免费看黄视频网站 | 国产精品国产 | 国产99热精品 | 精品在线一区二区三区 | 99精品亚洲国产精品久久不卡 | 国产日韩欧美在线 | 久久99精品久久久久久 | 国产国产精品久久久久 | 亚州一区二区三区 | 91精品在线播放 | 日日夜夜狠狠操 | 久久97精品 | 国产成人精品亚洲日本在线观看 | 最近最新中文字幕 |