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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7356|回復: 11
收起左側(cè)

求助!STC89C52RC單片機的引腳問題

[復制鏈接]
ID:287368 發(fā)表于 2018-3-25 15:00 | 顯示全部樓層 |閱讀模式
為什么STC89C52RC單片機上電后的引腳輸出全部都是低電平?怎樣用C語言程序定義引腳輸出是高電平??
回復

使用道具 舉報

ID:155507 發(fā)表于 2018-3-25 15:59 | 顯示全部樓層
P0=0xFF;
P1=0xFF;
P2=0xFF;
P3=0xFF;
P4=0xFF;
回復

使用道具 舉報

ID:287368 發(fā)表于 2018-3-25 17:03 | 顯示全部樓層
angmall 發(fā)表于 2018-3-25 15:59
P0=0xFF;
P1=0xFF;
P2=0xFF;

放在主函數(shù)中,測試后還是上電后引腳都是低電平。實在不知是怎么回事了
回復

使用道具 舉報

ID:274129 發(fā)表于 2018-3-25 17:03 | 顯示全部樓層
低電平給零  高電平給1就可以了
回復

使用道具 舉報

ID:287368 發(fā)表于 2018-3-25 17:29 | 顯示全部樓層
愛愛愛 發(fā)表于 2018-3-25 17:03
低電平給零  高電平給1就可以了

還是不行
回復

使用道具 舉報

ID:213173 發(fā)表于 2018-3-25 17:34 | 顯示全部樓層
STC89C52RC單片機上電復位后進入main前所有IO口默認高電平(P0開漏),你要檢查單片機基本工作條件:電源、復位、振蕩。
回復

使用道具 舉報

ID:287368 發(fā)表于 2018-3-25 18:17 | 顯示全部樓層
wulin 發(fā)表于 2018-3-25 17:34
STC89C52RC單片機上電復位后進入main前所有IO口默認高電平(P0開漏),你要檢查單片機基本工作條件:電源、 ...

電源,復位,振蕩電路都沒有問題,用新的芯片測試過,發(fā)覺STC89C52RC單片機的引腳默認是低電平,只能通過程序控制,不知道要修改程序哪個地方
回復

使用道具 舉報

ID:296855 發(fā)表于 2018-3-25 18:29 | 顯示全部樓層
先確認一下電源,復位電路,晶振電路等是否工作正常,再檢查代碼。
回復

使用道具 舉報

ID:296878 發(fā)表于 2018-3-25 19:34 | 顯示全部樓層
STC89C52RC有4個端口,32個輸出I/O口!P0=0xFF; P1=0xFF; P2=0xFF; P3=0xFF;
回復

使用道具 舉報

ID:213173 發(fā)表于 2018-3-26 22:17 | 顯示全部樓層
葉風天寒 發(fā)表于 2018-3-25 18:17
電源,復位,振蕩電路都沒有問題,用新的芯片測試過,發(fā)覺STC89C52RC單片機的引腳默認是低電平,只能通過 ...

單片機源程序如下:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char                 //宏定義
  4. //元器件定義
  5. sbit DY_key1=P3^2; //布防/撤防公用一個鍵
  6. //sbit DY_key2=P3^3; //撤防
  7. sbit DY_BUZZ=P0^4;  //蜂鳴器
  8. sbit DY_rsd=P2^4; //熱釋電輸入
  9. sbit LED_B=P2^3; //布防指示燈
  10. sbit LED_S=P2^0; //發(fā)送消息指示燈
  11. //初始化定義
  12. uchar code somebody[]="SOS";//字符串數(shù)組
  13. uint Cnt250us=0;                                //250us計時變量
  14. uchar Cnt500ms=0;                                //500ms計時變量
  15. bit Cnt1min=0;                                //1分鐘計時標志位(當發(fā)送一條短信后,不能馬上發(fā)送第二條,所以等待一分鐘后再檢測是否有人,有人再發(fā)送短信)
  16. bit flag=0;                                        //布防標志
  17. bit again=0;                                 //1分鐘等待標志
  18. bit Twinkle=1;                                //閃爍標志

  19. void Uart_init()
  20. {
  21.         TMOD=0x22;        //T0方式2、T1方式2
  22.         TH0=0x1A;        //設置定時重載值250us
  23.         TL0=0x1A;        //8位自動重裝
  24.         TH1=0xfd;        //8位自動重裝
  25.         TL1=0xfd;        //波特率為 9600
  26.         SM0=0;                //設置串口的工作模式
  27.         SM1=1;                //方式 1
  28.         TF0=0;                //定時器0溢出標志TF0清0
  29.         TR0=1;                //開定時器0
  30.         TR1=1;                //開定時器0
  31. //        REN=1;                //不用開接收
  32. //        ES=1;                //不用開串口中斷
  33. //        EA=1;                //不用開總中斷
  34. }
  35. //按鍵掃描函數(shù)
  36. void keyscan()        
  37. {
  38.         static bit key_sign=0;                //按鍵自鎖標志
  39.         static uchar count=0;                //消抖計數(shù)變量                        
  40.         if(!DY_key1)                                //檢測按鍵如果為0
  41.         {
  42.                 count++;                                //消抖計數(shù)
  43.                 if((count>=250)&&(key_sign==0))
  44.                 {                        
  45.                         key_sign=1;                        //按鍵自鎖標志置1
  46.                         flag=~flag;                        //布防標志取反
  47.                         if(flag==1)
  48.                         {
  49.                                 Cnt250us=0;                //250us計時變量清0
  50.                                 Cnt500ms=0;                //500ms計時變量清0
  51.                                 Cnt1min =0;                //Cnt1min計時變量清0
  52.                                 again=0;                //1分鐘等待標志位置0
  53.                         }
  54.                         else
  55.                         {
  56.                                 LED_B=1;                //布防燈熄滅
  57.                         }
  58.                 }
  59.         }
  60.         else
  61.         {
  62.                 key_sign=0;                                //按鍵自鎖標志清0
  63.                 count=0;                                //消抖計數(shù)清0
  64.         }
  65. }
  66. //計時函數(shù)
  67. void Time()        
  68. {
  69.         if(TF0==1)                                                //查詢定時器溢出標志TF0為1
  70.         {               
  71.                 if(flag==1)                                                //布防標志為1
  72.                 {                                                                //定時器溢出周期250us
  73.                         Cnt250us++;                                        //時間變量Cnt250us自+1
  74.                           if(Cnt250us>=2000)                        //如果時間變量Cnt200us>=2000
  75.                         {                                                        //500毫秒時間到
  76.                                 Cnt250us=0;                                //時間變量Cnt200us清0
  77.                                 Twinkle=~Twinkle;                //閃爍標志取反
  78.                                 Cnt500ms++;                                //時間變量Cnt1s自+1
  79.                                 if(Cnt500ms>=120)                //1分鐘時間到
  80.                                 {                                
  81.                                           Cnt500ms=0;                        //時間變量Cnt500ms清0
  82.                                         Cnt1min=1;                        //1分鐘標志置1
  83.                                         again=1;                        //1分鐘等待標志位置1
  84.                                 }
  85.                         }
  86.                 }
  87.                 TF0=0;                                                //定時器0溢出標志TF0清0
  88.         }
  89. }
  90. void SendASC(uchar d) //串口發(fā)送字符
  91. {
  92.         SBUF=d;  //數(shù)據(jù)賦值到緩沖區(qū)
  93.         while(!TI); //發(fā)送完
  94.         TI=0; //清零
  95. }
  96. void GSM_work()//發(fā)送 GSM 短信
  97. {
  98.         uchar i;
  99.         for(i=0;i<3;i++)
  100.                 SendASC(somebody[i]); //發(fā)送字符;
  101. }
  102. //警報函數(shù)
  103. void alert()
  104. {
  105.         if(flag==1)
  106.         {
  107.                 if(again==0)                                //預備等待        
  108.                         LED_B=Twinkle;                        //布防燈閃爍
  109.                 else
  110.                 {
  111.                         LED_B=0;                                        //布防燈常亮
  112.                         if(DY_rsd==0)                        //有人入侵
  113.                         {
  114.                                 DY_BUZZ=Twinkle;        //報警
  115.                                 if(Cnt1min==1)                //立即發(fā)送信息,以后隔1分鐘發(fā)送一次信息
  116.                                 {
  117.                                         LED_S=0;                        //發(fā)送指示燈亮
  118.                                         GSM_work();                        //發(fā)送 GSM 短信
  119.                                         Cnt1min=0;                        //1分鐘等待標志位清0
  120.                                 }
  121.                                 if(Twinkle==0)
  122.                                         LED_S=1;                                //發(fā)送指示燈熄滅
  123.                         }
  124.                         else DY_BUZZ=1;                                //蜂鳴器復位
  125.                 }
  126.         }
  127. }
  128. //主函數(shù)
  129. void main()
  130. {
  131.         Uart_init();                 //初始化定時器
  132.         DY_key1=1;                        //初始化端口
  133. //        DY_key2=1;
  134.         DY_BUZZ=1;
  135.         DY_rsd=1;
  136.         LED_B=1;
  137.         LED_S=1;
  138.         while(1)                        //進入 while 循環(huán)
  139.         {
  140.                 keyscan();                //按鍵
  141.                 Time();                        //計時
  142.                 alert();                        //警報
  143.         }
  144. }
復制代碼
回復

使用道具 舉報

ID:297809 發(fā)表于 2018-3-27 16:00 | 顯示全部樓層
晶振電路等是否工作正常
回復

使用道具 舉報

ID:297824 發(fā)表于 2018-3-27 16:19 | 顯示全部樓層
輸出管腳接10K電阻上拉到VDD。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜av一区二区 | 日韩精品一二三区 | 日韩av在线不卡 | 欧美色性| www.亚洲视频.com | 在线日韩欧美 | 视频1区 | 毛片网在线观看 | 一久久久 | 亚洲人人舔人人 | 夜久久 | 成人福利视频网站 | 国产精品91久久久久久 | 午夜爽爽男女免费观看hd | 午夜黄色 | 欧美精品久久久久久久久久 | 欧美成人一区二区 | 亚洲久视频 | 成人免费淫片aa视频免费 | caoporn国产精品免费公开 | 日韩精品在线看 | 91在线一区 | 亚洲国产网 | 偷拍第一页 | 午夜小电影 | 天堂综合网久久 | 午夜免费在线 | 欧美国产视频 | 欧美亚洲成人网 | 亚洲精品成人免费 | 亚洲国产精品一区二区三区 | 亚洲一区电影 | 久久成人国产精品 | 成人片免费看 | 国产 亚洲 网红 主播 | 欧美专区在线 | 国产成人短视频在线观看 | 免费人成在线观看网站 | 亚洲精品国产电影 | a级片在线观看 | 黄色片网此 |