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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3460|回復: 12
收起左側

15F104W的單片機 P0 P1接口能不能當IO口用

[復制鏈接]
ID:334550 發表于 2018-5-31 12:57 | 顯示全部樓層 |閱讀模式
15F104W的單片機 為什么我把P0 P1口也就是下載口(tx rx )當IO口用,沒有反應呢?是不可用,還是這種用法程序寫法不一樣!~
回復

使用道具 舉報

ID:330198 發表于 2018-5-31 15:03 | 顯示全部樓層
可以的,你程序估計有問題
回復

使用道具 舉報

ID:213173 發表于 2018-5-31 15:44 | 顯示全部樓層
15F104W的單片機只有6個I/O口:P3.0~3.5,如果不使用第二功能只做普通I/O口就沒有區別。
回復

使用道具 舉報

ID:155507 發表于 2018-5-31 15:54 來自手機 | 顯示全部樓層
你在哪里看道?P0,P1? Tx Rx 是P30, P31,
回復

使用道具 舉報

ID:241128 發表于 2018-5-31 15:59 | 顯示全部樓層
貼出你的代碼看看,可以當普通口用的。
回復

使用道具 舉報

ID:7485 發表于 2018-5-31 16:51 | 顯示全部樓層
本來就是。
回復

使用道具 舉報

ID:334550 發表于 2018-6-2 00:23 | 顯示全部樓層
#include<reg51.h>
unsigned char times;
sbit key=P3^2;
sbit led=P3^4;
sbit led2=P3^5;
sbit led3=P3^0;
sbit led4=P3^1;
void delay(unsigned char a)
{
unsigned char i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
unsigned char i = 0;
unsigned char ii = 0;
led=1;
while(1)
    {
    if(key==0)

        {
        delay(10);

        if(key==0)
        {
        while(key==0);

        times++;
        }
        times%=3;

        }

    switch(times)

        {
        case 0:led=1;break;

        case 1:led=0;break;

        case 2:
                        for (i = 0; i < 6; ++i)
                        {
                                led = 0;
                                delay(500);
                                led = 1;
                        delay(500);
                                led2 = 0;
                                delay(500);
                                led2 = 1;
                        delay(500);
                        }
                                       
                                        for (i = 0; i < 6; ++i)
                        {
                                led3 = 0;
                                delay(500);
                                led3 = 1;
                        delay(500);
                                led4 = 0;
                                delay(500);
                                led4 = 1;
                        delay(500);
                        }
                                                       



        }

    }

}



現在不光是P3-0 P3-1沒反應燈不亮  還有一個問題就是 當times=2時 LED燈開始閃,這個時間有時按按鈕不切換,要按好幾次,給我的感覺得正好程序循環完了我正好按下去了才可以,如果程序正在循環按鈕無效,這個問題如何處理?謝謝大家
回復

使用道具 舉報

ID:241128 發表于 2018-6-2 08:27 | 顯示全部樓層
你的延時時間太長,按鍵按下后程序還在延時那里執行不會知道你按鍵按下的,程序是一步一步走的你自己看看是不是這樣。除非你用中斷按鍵或者用定時器延時。還有建議把按鍵掃描和led顯示放到大循環外面做一個函數模塊。led3和led4會不會是你的芯片壞了換一個試試,你也可以在前面像led一樣把led3,led4放前面直接點亮看看,還不亮可能是硬件問題。

評分

參與人數 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:343290 發表于 2018-6-2 09:17 | 顯示全部樓層
可以用的
回復

使用道具 舉報

ID:149389 發表于 2018-6-2 19:49 | 顯示全部樓層
我用過15F104w,下載口可以當用作IO
回復

使用道具 舉報

ID:213173 發表于 2018-6-3 09:55 | 顯示全部樓層
bosschen 發表于 2018-6-2 00:23
#include
unsigned char times;
sbit key=P3^2;

你使用for循環+delay延時處理閃爍燈,CPU幾乎完全被占用,按鍵狀態很難被捕捉到,而且按鍵抬起識別用了while(key==0);死循環等待,這就導致互相擠占CPU時間,程序運行不暢。給你把閃爍燈程序改在定時器中斷里處理,你試試。
#include<reg51.h>
sbit key=P3^2;
sbit led1=P3^4;
sbit led2=P3^5;
sbit led3=P3^0;
sbit led4=P3^1;
unsigned char times=0;
unsigned char time=0;
unsigned char time1=0;
bit flag=1;
void delay(unsigned char a)
{
        unsigned char i,j;
        for(i=0;i<a;i++)
                for(j=0;j<120;j++);
}
void Timer0Init()        //50毫秒@12.000MHz
{
        TMOD= 0x01;                //設置定時器模式
        TL0 = 0xB0;                //設置定時初值
        TH0 = 0x3C;                //設置定時初值
        TF0 = 0;                        //清除TF0標志
//        TR0 = 1;                        //定時器0開始計時
        EA=1;                                //開總中斷
        ET0=1;                        //開定時器0中斷       
}

void Twinkle()
{
        static unsigned char i=0,j=0;

        if(flag==1)
        {
                time1++;
                if(time1==24)
                        time1=0;
                if(time1<12)
                {
                        switch(i)       
                        {
                                case 0:led1=0;led2=1;led3=1;led4=1;i=1;break;
                                case 1:led1=1;led2=0;led3=1;led4=1;i=0;break;
                        }
                        j=0;
                }               
                else
                {
                        switch(j)       
                        {
                                case 0:led1=1;led2=1;led3=0;led4=1;j=1;break;
                                case 1:led1=1;led2=1;led3=1;led4=0;j=0;break;
                        }
                        i=0;
                }

        }
}

void main()
{
        unsigned char k = 0;        //按鍵狀態
        Timer0Init();
        while(1)
        {
                if(key==0)
                {
                        delay(10);
                        if((key==0)&&(k==0))
                        {
                                k=1;
                                times++;
                                times%=3;
                        }
                }       
                else k=0;
                switch(times)       
                {
                        case 0:led1=led2=led3=led4=1;TR0=0;flag=0;time1=0;break;
                        case 1:led1=0;break;
                        case 2:flag=1;TR0=1;break;
                }
        }
}

void timer0() interrupt        1
{
        TL0 = 0xB0;                //設置定時初值
        TH0 = 0x3C;                //設置定時初值
        time++;                       
        if(time>=10)        //0.5秒
        {
                time=0;
                Twinkle();
        }
}
回復

使用道具 舉報

ID:334550 發表于 2018-6-3 16:45 | 顯示全部樓層
wulin 發表于 2018-6-3 09:55
你使用for循環+delay延時處理閃爍燈,CPU幾乎完全被占用,按鍵狀態很難被捕捉到,而且按鍵抬起識別用了wh ...

   我現在要閃燈部份 加了一個 if(k1==on)break;     現在比以前好多了,但我知道這不是最好的辦法我知道,我還是學習定時器吧!還有請問  我如何做到在規定時間里 雙擊有效!  是不是也要用到定時器呢? 麻煩給我個實例讓我學習一下 謝謝了

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:334550 發表于 2018-6-3 16:50 | 顯示全部樓層
統一回復大家,謝謝大家的幫忙P3-0 P2-1是可以用的 是我的電路有問題,謝謝大家了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品免费av | 午夜看片 | 国产a区 | 综合久久av | 日韩精品一区二区三区在线播放 | 在线播放一区二区三区 | 伊伊综合网| 亚洲福利一区 | 日韩精品视频一区二区三区 | 高清视频一区二区三区 | 欧美日韩成人网 | 怡红院成人在线视频 | www.色综合 | 午夜视频在线免费观看 | 久久精品免费 | 极品在线 | 一区二区三区精品视频 | 成人在线精品 | 亚洲网站在线观看 | 欧美日韩国产三级 | 久久精品超碰 | 不卡在线视频 | 亚洲成人一区二区 | 精品少妇一区二区三区日产乱码 | 成人亚洲精品久久久久软件 | 国产精品久久久久久吹潮 | 久久精品国产一区二区三区不卡 | 精品国产一二三区 | 日韩欧美亚洲综合 | 国产夜恋视频在线观看 | 啪一啪 | 天堂成人国产精品一区 | yeyeav| 亚洲精选一区二区 | 蜜桃久久| 精品久久久网站 | 国产激情视频网站 | 久婷婷 | 国产成人精品在线播放 | 国产激情| a黄视频 |