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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4191|回復(fù): 5
收起左側(cè)

我看到網(wǎng)上用P0=0xff表示P0為與LCD D0~D7相連的I/O口,我想請(qǐng)教一下如果我LCD1602...

[復(fù)制鏈接]
ID:678869 發(fā)表于 2020-1-5 15:35 | 顯示全部樓層 |閱讀模式
我看到網(wǎng)上用P0=0xff表示P0為與LCD D0~D7相連的I/O口,我想請(qǐng)教一下如果我LCD1602的輸入輸出端口分別連接了P0^0,P2^7等多個(gè)端口的話,我要怎么定義它呢?謝謝啦!
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2020-1-5 16:35 | 顯示全部樓層
LCD1602還有一種使用高4位數(shù)據(jù)線的接法,可以減少單片機(jī)的負(fù)擔(dān)。

另外,RW的控制也并非是必用的,如果僅僅是用于讀取LCD1602“忙”的狀態(tài),就可以用稍事等待來(lái)代替。這樣一來(lái),RW就可以直接接地,使LCD1602永遠(yuǎn)處于寫入的狀態(tài)。

那么,LCD1602和單片機(jī)之間就僅僅需要6條線了,這就是LCD1602最簡(jiǎn)潔的連接方法。

  1. #include <reg51.h>

  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. #define LCD1602_DATAPINS P1
  5. sbit lcdrs = P2^1;   //LCD寄存器選擇
  6. sbit lcdrw = P2^2;   //LCD讀寫控制
  7. sbit lcden = P2^3;   //LCD使能控制

  8. void delay(uint m) //延時(shí)函數(shù)
  9. {while(--m);}
  10. //使用的是4位數(shù)據(jù)傳輸
  11. void write(uchar com, uchar lcddata) //LCD1602寫入8位命令/數(shù)據(jù)子函數(shù)
  12. {

  13.         lcdrs=com;   //寫入命令   0 選擇發(fā)送命令    1 選擇發(fā)送數(shù)據(jù)
  14.        
  15.         //LCD1602_DATAPINS=(lcddata);            //由于4位的接線是接到P1口的高四位,所以傳送高四位不用改
  16.         LCD1602_DATAPINS=(lcddata&0xf0)>>4; //由于4位的接線是接到P1口的低四位,接到LCD高四位
  17.         //delay(200);
  18.         lcden=1;     //寫入時(shí)序
  19.         delay(30);   //保持時(shí)間
  20.         lcden=0;     //使能清零

  21.         //LCD1602_DATAPINS=(lcddata & 0x0f)<< 4;   //發(fā)送低四位
  22.         LCD1602_DATAPINS=(lcddata&0x0f);           //發(fā)送高四位
  23.         //delay(200);
  24.         lcden=1;     //寫入時(shí)序
  25.         delay(30);   //保持時(shí)間
  26.         lcden=0;     //使能清零
  27.         //delay(20);
  28. }

  29. void init()   //LCD初始化子函數(shù)
  30. {
  31.         lcdrw=0;   //選擇寫入
  32.         lcden=0;   //使能
  33.         delay(5);

  34.         write(0,0x32);   //將8位總線轉(zhuǎn)為4位總線
  35.         write(0,0x28);   //在四位線下的初始化
  36.         write(0,0x0c);   //開(kāi)顯示 不顯示光標(biāo)
  37.         write(0,0x06);   // 讀入后AC(指針)加1,向右寫
  38.         write(0,0x01);   //清屏
  39.         write(0,0x80);   //設(shè)置數(shù)據(jù)指針起點(diǎn)
  40.         delay(255);

  41. }

  42. void main()
  43. {
  44.        
  45.         init(); //LCD初始化

  46.         while(1)
  47.         {
  48.                 write(1,'a');write(1,'b');delay(65255);delay(65255);
  49.         }
  50. }


復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

ID:235200 發(fā)表于 2020-1-5 16:42 | 顯示全部樓層
LCD1602有數(shù)據(jù)線和控制線,P0=0xff只是數(shù)據(jù)輸入,還有RS  RW  E控制線需要用另外的IO口,如P2口任意的IO口線均可使用
回復(fù)

使用道具 舉報(bào)

ID:417295 發(fā)表于 2020-1-5 17:01 | 顯示全部樓層
你這樣說(shuō)比較籠統(tǒng),首先要曬出你的硬件原理圖,一般顯示屏廠家都有示例程序,可以參考下。
回復(fù)

使用道具 舉報(bào)

ID:195446 發(fā)表于 2020-1-5 17:22 | 顯示全部樓層
P0=0xff只是p0口座位輸入口的預(yù)備動(dòng)作。P0口作為數(shù)據(jù)總線可以連接多個(gè)設(shè)備,如果要使用低位地址那就要用373了,然后區(qū)分每個(gè)設(shè)備就用P2,P0可以取0xff。
回復(fù)

使用道具 舉報(bào)

ID:398709 發(fā)表于 2020-1-5 20:45 | 顯示全部樓層
如果一定要用8根線的話可以依次讀取然后進(jìn)行移位拼接,不過(guò)最好還是使用整PIN或者使用4PIN方案
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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