找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2794|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)各位大神幫忙看一下我這個(gè)程序送數(shù)據(jù)要怎樣處理

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:203572 發(fā)表于 2017-6-9 11:02 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
20黑幣
我的顯示無(wú)字符串函數(shù)如下:
uint   Strlen(uchar *p)
{
    uint i;
   for(i=0;*(p+i);i++)
  return i;
}
void dispiay_12864(uchar hang; uchar lie; *p)
{
    uchar i;
    switch(hang)
    {
    case 1:SerialWriteCmd(0x80+lie);break;
    case 2:SerialWriteCmd(0x90+lie);break;
    case 3:SerialWriteCmd(0x88+lie);break;
    case 4:SerialWriteCmd(0x98+lie);break;
    }
   for(i=0;i<Strlen(p);i++)
    {
    SerialWriteData(p[i]);
    }
}
如果我要寫一個(gè)void display_12864Uchar(uchar hang ; uychar lie ; uchar a)
{

}應(yīng)該怎樣寫?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:111634 發(fā)表于 2017-6-9 20:33 | 只看該作者
你第一個(gè)子函數(shù)就錯(cuò)!1.i與p數(shù)據(jù)類型不同;2.for循環(huán)第2個(gè)表達(dá)式是終值條件判斷,*(p+i)錯(cuò)了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:203572 發(fā)表于 2017-6-9 20:49 | 只看該作者
zl2168 發(fā)表于 2017-6-9 20:33
你第一個(gè)子函數(shù)就錯(cuò)!1.i與p數(shù)據(jù)類型不同;2.for循環(huán)第2個(gè)表達(dá)式是終值條件判斷,*(p+i)錯(cuò)了。

  1. #include <reg52.h>
  2. #include <string.h>
  3. #include "delay.h"
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. sbit RW=P2^6;  
  7. sbit EN=P2^7;                  //                 注:采用2線時(shí),第15腳PSB接地->GND yuqingshan  2017-06-02
  8. uint Strlen(uchar *p)
  9. {
  10.         uint i;
  11.         for(i=0;*(p+i);i++);
  12.         return i;
  13. }
  14. void WriteBytes(uchar *p)
  15. {
  16.         uchar i,j,temp;
  17.     EN=0;
  18.         for(j=0;j<3;j++)
  19.         {
  20.                 temp=p[j];
  21.                 for(i=0;i<8;i++)
  22.                 {
  23.                         if(temp & 0x80)
  24.                   RW=1;
  25.                 else RW=0;
  26.                         EN=1;
  27.                         delay(1);
  28.                         EN=0;
  29.                         temp<<=1;
  30.                 }
  31.         }
  32.         RW=1;
  33. }
  34. void SerialWriteData(uchar send)
  35. {
  36.         uchar data1[3];
  37.         data1[0]=0xfa ;     //1111 1010向液晶寫數(shù)據(jù)
  38.         data1[1]=send & 0xf0;      //取高4位
  39.         data1[2]=(send<<4)&0xf0;       //取低4位
  40.         WriteBytes(data1);
  41. }
  42. void SerialWriteCmd(uchar send)
  43. {
  44.         uchar data1[3];
  45.         data1[0]=0xf8 ;                    //1111 1000向液晶寫命令
  46.         data1[1]=send & 0xf0;      //取高4位
  47.         data1[2]=(send<<4) & 0xf0;       //取低4位
  48.         WriteBytes(data1);        
  49. }
  50. void init_lcd()
  51. {
  52.         SerialWriteCmd(0x0C);
  53.         SerialWriteCmd(0x06);
  54.         SerialWriteCmd(0x01);
  55. }
  56. void display_12864(uchar hang,uchar lie,uchar *p)
  57. {
  58.         uchar i;
  59.         switch(hang)
  60.         {
  61.             case 1:SerialWriteCmd(0x80+lie);break;
  62.             case 2:SerialWriteCmd(0x90+lie);break;
  63.             case 3:SerialWriteCmd(0x88+lie);break;
  64.             case 4:SerialWriteCmd(0x98+lie);break;
  65.         }
  66.         for(i=0;i<strlen(p);i++)
  67.         {
  68.             SerialWriteData(p[i]);
  69.         }   
  70. }   
復(fù)制代碼

這是12864.c的文件     我整的是一個(gè)多級(jí)菜單,已經(jīng)能正常顯示,現(xiàn)在是要加上一個(gè)送數(shù)的子函數(shù)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表