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

標題: 想用兩個單片機IO口做輸入,一個IO口做輸出 求指正程序 [打印本頁]

作者: 記憶5814    時間: 2020-8-15 12:43
標題: 想用兩個單片機IO口做輸入,一個IO口做輸出 求指正程序
我想用兩個IO口做輸入 一個IO口做輸出 思路是先判斷RA1的電平 高電平 RA4=1點亮LED 延時500MS 再判斷RA0電平(上電瞬間RA0的電位由0變為1,所以考慮延時500ms再判斷) 如果RA0為高電平 RA4繼續點亮LED 并保持 當RA1或者RA0的電平發生變化不滿足條件時 RA4為低電平 led熄滅 實測發現RA1==1 RA4=1 RA1==0 RA4延時500MS led熄滅功能沒有問題 但是上電時如果RA1==1 RA0==0 RA4輸出為低電平無法點亮led并延時 以下是程序 請師傅給指正 指教一下 謝謝
/**********************************************************
*文件名:MS80F_IO_OUTPUT_TEST.C
*功能:MS80Fxx01的IO輸出功能演示
*器件型號:MS80F0801
*振蕩器:內部RC 4MHz
*引腳定義:
*                 ----------------
*  VDD-----------|1(VDD)   (GND)16|------------GND
*  NC------------|2(RA2)   (RA4)15|---------OUTPUT
*  NC------------|3(RA1)   (RA5)14|-------------NC
*  NC------------|4(RA3)   (RA0)13|-------------NC
*                 ----------------
*                 MS80F0801 SOP8
*說明:設置RA4為輸出腳,每秒電平翻轉一次
**********************************************************/
#include
作者: 記憶5814    時間: 2020-8-15 12:44
/**********************************************************
*文件名:MS80F_IO_OUTPUT_TEST.C
*功能:MS80Fxx01的IO輸出功能演示
*器件型號:MS80F0801
*振蕩器:內部RC 4MHz
*引腳定義:
*                 ----------------
*  VDD-----------|1(VDD)   (GND)16|------------GND
*  NC------------|2(RA2)   (RA4)15|---------OUTPUT
*  NC------------|3(RA1)   (RA5)14|-------------NC
*  NC------------|4(RA3)   (RA0)13|-------------NC
*                 ----------------
*                 MS80F0801 SOP8
*說明:設置RA4為輸出腳,每秒電平翻轉一次
**********************************************************/
#include        "syscfg.h";
#include         "MS80Fxx01.h";
/*====================================================
*函數名:interrupt ISR
*功能:中斷服務函數
*輸入參數:無
*返回參數:無
====================================================*/
void interrupt ISR(void)
{

}
/*====================================================
*函數名:DEVICE_INIT
*功能:上電器件初始化
*輸入參數:無
*返回參數:無
====================================================*/
void DEVICE_INIT(void)
{
        OSCCON = 0B01010001;        //Bit7:WDT振蕩器頻率=32KHz
                                                        //Bit6:4:內部RC頻率=4MHz
        MSCKCON = 0B00010000;        //Bit6:禁止穩壓輸出
                                                        //Bit5:Timer2時鐘源為系統時鐘
                                                        //Bit4:使能LVR(注意:此位與配置位配合使用)
        INTCON = 0B00000000;        //暫禁止所有中斷

        OPTION = 0B00001000;        //Bit4=1 WDT MODE,PS=000=1:1 WDT RATE

        PORTA = 0B00000000;
        TRISA = 0B00101111;         //PA輸入輸出 0-輸出 1-輸入
        WPUA = 0B00000000;                //PA端口上拉控制 1-開上拉 0-關上拉
}

/*====================================================
*函數名稱:DELAY_1MS
*功能:短延時函數(4MHz4T)
*輸入參數:Time延時時間長度,延時時長Time1Ms
*返回參數:無
====================================================*/
void DELAY_10MS(void)
{
        unsigned char a;

        for(a=0;a<125;a++)
        {
                CLRWDT();
        }
}

/*====================================================
*函數名稱:DELAY_MS
*功能:短延時函數
*輸入參數:Time延時時間長度,延時時長Time ms
*返回參數:無
====================================================*/
void DELAY_MS(unsigned char Time)
{
        unsigned char a;

        for(a=0;a<Time;a++)
        {
                DELAY_1MS();
        }
}

/*====================================================
*函數名:main
*功能:主函數
*輸入參數:無
*返回參數:無
====================================================*/
void main(void)
{
        DEVICE_INIT();     //器件初始化
        while(1)
        {
                CLRWDT();
                if(RA1==1)
                {
                        RA4 = 1;
            DELAY_1MS(250);
            DELAY_1MS(250);
         }
             if(RA0==1)
         {
                        RA4 =1;
            }
               else
                {
                        RA4 = 0;
}

}
}




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1