找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關(guān)于單片機P1口應(yīng)用的問題求教了

[復(fù)制鏈接]
ID:149451 發(fā)表于 2022-3-15 07:51 | 顯示全部樓層 |閱讀模式
在做C51控制lcd1602顯示的過程里(STC89C52),遇到個問題:如下程序,用P0口(P2口可以)正常顯示,但換成P1(即 LCD_BUS  P1)就不顯示(看不到仿真效果),請教下,這是為什么?如何解決呢?謝謝

捕獲.JPG

單片機源程序如下:
#include<reg52.h>
#include <intrins.h>
#include <stdlib.h>   

#define uchar unsigned char
#define uint unsigned int

#define LCD_BUS  P0      

uchar num;
uint i,j;

sbit rs=P2^4;
sbit wr=P2^3;
sbit lcden=P2^2;

uchar code table1[]="XXX";
uchar code table2[]="123456789";

void delay(uint x)
{
    for(i=x;i>0;i--)
    {
    for(j=120;j>0;j--);
    }
}

void write_com(uchar com)
{
    rs=0;
    wr=0;
    lcden=0;
        
    LCD_BUS=com;                           
    lcden=1;
    delay(5);
    lcden=0;

}

void write_data(uchar dat)
{
    rs=1;
    wr=0;
    lcden=0;

    LCD_BUS=dat;                                
    lcden=1;
    delay(5);
    lcden=0;

}

void init()
{
    write_com(0x38);
    write_com(0x08);
    write_com(0x01);
    write_com(0x06);
    write_com(0x0f);


}

void main()
{
                           
        LCD_BUS=0;                                

    init();
    for(num=0;num<3 ;num++)
    {
        write_data(table1[num]);
        delay(300);

    }
    write_com(0x80+0x40);
    for(num=0;num<10 ;num++)
    {
        write_data(table2[num]);
        delay(300);

    }
    while(1);
}

20220315_求助.rar (96.08 KB, 下載次數(shù): 4)


回復(fù)

使用道具 舉報

ID:121859 發(fā)表于 2022-3-15 10:03 | 顯示全部樓層
程序里面數(shù)據(jù)送入的是P0口當然只能P0口顯示正常,P1沒有數(shù)據(jù)送入,顯示當然沒有了。
回復(fù)

使用道具 舉報

ID:149451 發(fā)表于 2022-3-15 10:21 | 顯示全部樓層
zhxiufan 發(fā)表于 2022-3-15 10:03
程序里面數(shù)據(jù)送入的是P0口當然只能P0口顯示正常,P1沒有數(shù)據(jù)送入,顯示當然沒有了。

LCD_BUS  P1沒顯示,LCD_BUS  P0就有顯示,為什么?LCD_BUS  P1程序里面數(shù)據(jù)送入了P1
回復(fù)

使用道具 舉報

ID:1009400 發(fā)表于 2022-3-15 11:33 | 顯示全部樓層
我記得P1口和P0口上拉還是下拉,有區(qū)別,你自己找本書看看,芯片內(nèi)部上下拉情況
回復(fù)

使用道具 舉報

ID:979299 發(fā)表于 2022-3-15 11:37 | 顯示全部樓層
程序沒問題,仔細檢查你的電路標號
回復(fù)

使用道具 舉報

ID:149451 發(fā)表于 2022-3-15 15:02 | 顯示全部樓層
謝謝各位問題解決了。手上有個C51二手的開發(fā)板,我按照其繪制了proteus仿真板,驅(qū)動代碼要求P1做控制總線,可C51開發(fā)板原設(shè)計者為屏蔽8個在P0口的LED,設(shè)計了個PNP型的Q2,其基極接P1^4,正是如此造成P1使用問題! 捕獲1.JPG

回復(fù)

使用道具 舉報

ID:1012237 發(fā)表于 2022-3-23 18:19 | 顯示全部樓層
p1口接LCD的時候是不是要接個上拉電阻
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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