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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

15F104W的單片機 P0 P1接口能不能當(dāng)IO口用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:334550 發(fā)表于 2018-5-31 12:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
15F104W的單片機 為什么我把P0 P1口也就是下載口(tx rx )當(dāng)IO口用,沒有反應(yīng)呢?是不可用,還是這種用法程序?qū)懛ú灰粯樱
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:330198 發(fā)表于 2018-5-31 15:03 | 只看該作者
可以的,你程序估計有問題
回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2018-5-31 15:44 | 只看該作者
15F104W的單片機只有6個I/O口:P3.0~3.5,如果不使用第二功能只做普通I/O口就沒有區(qū)別。
回復(fù)

使用道具 舉報

地板
ID:155507 發(fā)表于 2018-5-31 15:54 來自觸屏版 | 只看該作者
你在哪里看道?P0,P1? Tx Rx 是P30, P31,
回復(fù)

使用道具 舉報

5#
ID:241128 發(fā)表于 2018-5-31 15:59 | 只看該作者
貼出你的代碼看看,可以當(dāng)普通口用的。
回復(fù)

使用道具 舉報

6#
ID:7485 發(fā)表于 2018-5-31 16:51 | 只看該作者
本來就是。
回復(fù)

使用道具 舉報

7#
ID:334550 發(fā)表于 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);
                        }
                                                       



        }

    }

}



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

使用道具 舉報

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

評分

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

查看全部評分

回復(fù)

使用道具 舉報

9#
ID:343290 發(fā)表于 2018-6-2 09:17 | 只看該作者
可以用的
回復(fù)

使用道具 舉報

10#
ID:149389 發(fā)表于 2018-6-2 19:49 | 只看該作者
我用過15F104w,下載口可以當(dāng)用作IO
回復(fù)

使用道具 舉報

11#
ID:213173 發(fā)表于 2018-6-3 09:55 | 只看該作者
bosschen 發(fā)表于 2018-6-2 00:23
#include
unsigned char times;
sbit key=P3^2;

你使用for循環(huán)+delay延時處理閃爍燈,CPU幾乎完全被占用,按鍵狀態(tài)很難被捕捉到,而且按鍵抬起識別用了while(key==0);死循環(huán)等待,這就導(dǎo)致互相擠占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;                //設(shè)置定時器模式
        TL0 = 0xB0;                //設(shè)置定時初值
        TH0 = 0x3C;                //設(shè)置定時初值
        TF0 = 0;                        //清除TF0標(biāo)志
//        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;        //按鍵狀態(tài)
        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;                //設(shè)置定時初值
        TH0 = 0x3C;                //設(shè)置定時初值
        time++;                       
        if(time>=10)        //0.5秒
        {
                time=0;
                Twinkle();
        }
}
回復(fù)

使用道具 舉報

12#
ID:334550 發(fā)表于 2018-6-3 16:45 | 只看該作者
wulin 發(fā)表于 2018-6-3 09:55
你使用for循環(huán)+delay延時處理閃爍燈,CPU幾乎完全被占用,按鍵狀態(tài)很難被捕捉到,而且按鍵抬起識別用了wh ...

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

評分

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

查看全部評分

回復(fù)

使用道具 舉報

13#
ID:334550 發(fā)表于 2018-6-3 16:50 | 只看該作者
統(tǒng)一回復(fù)大家,謝謝大家的幫忙P3-0 P2-1是可以用的 是我的電路有問題,謝謝大家了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品视频一区二区三区 | 国产视频线观看永久免费 | 亚洲欧美国产毛片在线 | 欧美一区二区三区在线 | 成人精品一区二区三区中文字幕 | 精品在线观看一区 | 国产视频综合 | 最新中文字幕第一页视频 | 成人免费在线观看 | 四虎午夜剧场 | 国产福利在线小视频 | 国产一区二区电影网 | 日韩av成人在线观看 | 午夜av电影 | 伊人热久久 | 国产视频精品免费 | 精品国产18久久久久久二百 | 91精品无人区卡一卡二卡三 | www.日韩欧美 | 精品国产乱码久久久久久1区2区 | 91成人精品 | 久久久亚洲 | 亚洲精选一区 | 久久99蜜桃综合影院免费观看 | 91视频免费观看 | 国产高清在线精品一区二区三区 | 欧美在线观看一区 | 97人人超碰| 中文字幕视频在线 | av中文字幕在线观看 | 亚洲精品一级 | 欧美性影院 | 精品在线一区二区 | 久久国产精品视频 | 毛片韩国 | www.日本三级 | 国产成人精品一区二区三区四区 | 91麻豆久久久 | 久久天堂网 | 91在线播 | 亚洲图片视频一区 |