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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1655|回復: 0
打印 上一主題 下一主題
收起左側

這個單片機程序如何只通過P2.0口輸出穩定的觸發信號?

[復制鏈接]
回帖獎勵 20 黑幣 回復本帖可獲得 20 黑幣獎勵! 每人限 2 次
跳轉到指定樓層
樓主
ID:614734 發表于 2021-4-29 01:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這個程序原本是通過P2.0~P2.5輸出6個相差30°的波形,導致輸出波形在示波器上的波形不穩定,現要求它能夠透過P2.0輸出穩定的波形,且只收P3.3輸入信號的控制。求大佬幫忙指導改一下

單片機源程序如下:
  1. #include "reg52.h"
  2. #include"ADC0808.h"
  3. #include "lcd.h"

  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. sbit VT1=P2^0;
  7. sbit VT2=P2^1;
  8. sbit VT3=P2^2;
  9. sbit VT4=P2^3;
  10. sbit VT5=P2^4;
  11. sbit VT6=P2^5;
  12. uchar count;
  13. uchar AD_num,angle_num;//采樣AD的值和導通的角度
  14. uchar AD_signal,achieve_signal;
  15. uint delay_num=0;//延時的時間

  16. void Delay10ms()                //@12MHz
  17. {
  18.         unsigned char i, j, k;

  19.         _nop_();
  20.         _nop_();
  21.         i = 5;
  22.         j = 154;
  23.         k = 1;
  24.         do
  25.         {
  26.                 do
  27.                 {
  28.                         while (--k);
  29.                 } while (--j);
  30.         } while (--i);
  31. }

  32. void SCRTrg(uchar Num)     //  脈沖寬度30°  
  33. {        
  34. ;
  35.                 switch(Num)            // 觸發相位
  36.         {
  37.                 case 1:
  38.                          VT1 = 1          // 開通
  39.                     VT6 = 1;
  40.                         break;
  41.                 case 2:
  42.                         VT1 = 0;            // 關斷
  43.                     VT6 = 0;
  44.                         break;
  45.                 case 3:
  46.                         VT2 = 1;
  47.                     VT1 = 1;
  48.                         break;
  49.                 case 4:
  50.                     VT1 = 0;
  51.                     VT2 = 0;
  52.                         break;        
  53.                 case 5:
  54.                     VT3 = 1;
  55.             VT2 = 1;
  56.                         break;
  57.           case 6:
  58.                         VT3 = 0;
  59.                     VT2 = 0;
  60.                         break;
  61.                 case 7:
  62.                         VT3 = 1;
  63.                     VT4 = 1;
  64.                         break;
  65.                 case 8:
  66.                         VT3 = 0;
  67.                     VT4 = 0;
  68.                         break;
  69.                 case 9:
  70.                         VT5 = 1;
  71.                     VT4 = 1;
  72.                         break;
  73.                 case 10:
  74.                     VT5 = 0;
  75.                         VT4 = 0;
  76.                         break;        
  77.                 case 11:
  78.                         VT5 = 1;
  79.                     VT6 = 1;
  80.                         break;
  81.           case 12:
  82.                         VT5 = 0;
  83.                     VT6 = 0;
  84.                         break;
  85.                 default:
  86.                         break;
  87.         }*/
  88. }
  89. //定時器和外部中斷初始化
  90. void Timer_Init(void)
  91. {
  92.         TMOD=0x11;
  93.         TH1=0xF9;        
  94.         TL1= 0x7F;
  95.         ET0=1;
  96.         ET1=1;
  97.         IT0 = 1;        // 下降沿觸發
  98.         PX0=1;//外部中斷0定義為高優先級
  99.         EX0=1;
  100. }
  101. void main(void)
  102. {
  103.     Timer_Init();
  104.         VT1=0;
  105.         VT2=0;
  106.         VT3=0;
  107.         VT4=0;
  108.         VT5=0;
  109.         VT6=0;
  110.     LcdInit();
  111.         AD_num=ADCInit();
  112.         angle_num=(uint)((255-AD_num)/255.0*180);
  113.         delay_num=(uint)(angle_num*10000/180.0);
  114.         LcdPrintf(0,"angle:");
  115.         LcdDisplayI(6,angle_num);
  116.         EA=1;
  117.         while(1)
  118.         {
  119.                 if(AD_signal==1)
  120.                 {
  121.                         AD_signal=0;
  122.                     if(AD_num!=ADCInit())
  123.                         {
  124.                                 TR0=0;
  125.                                 TR1=0;
  126.                                 AD_num=ADCInit();
  127.                                 angle_num=(uint)((255-AD_num)/255.0*180);
  128.                     delay_num=(uint)(angle_num*10000/180.0);
  129.                                 LcdDisplayI(6,angle_num);
  130.                                 achieve_signal=1;
  131.                                 EX0=1;
  132.                                 
  133.                         }                                
  134.                 }
  135.         }
  136. }
  137. void exint0() interrupt 0
  138. {
  139.         Delay10ms();
  140.         count=1;
  141. //        if(angle_num<60)
  142. //                count=1;
  143. //        else if(angle_num<120)
  144. //                count=11;
  145. //        else
  146. //                count=9;
  147.         TH0=(65536-delay_num)/256;
  148.         TL0=(65536-delay_num)%256;
  149.         TR0=1;
  150.         EX0=0;//關外部中斷
  151. }
  152. void Time0Int()  interrupt 1
  153. {
  154.         TH0=(65536-delay_num)/256;
  155.         TL0=(65536-delay_num)%256;
  156.         TH1=0xF9;        
  157.         TL1= 0x82;
  158.         TR0=0;
  159.         TR1=1;
  160. }
  161. void Time1Int()  interrupt 3
  162. {
  163.         TH1=0xF9;        
  164.         TL1= 0x82;
  165.         SCRTrg(count++);
  166.         if(count==6)
  167.                 AD_signal=1;
  168.         if(count>12)
  169.         {
  170.                 count=1;
  171.         }
  172. }

復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品久久 | 亚洲精久 | 国产成人午夜精品影院游乐网 | 99久久99| 免费v片在线观看 | 一本大道久久a久久精二百 欧洲一区二区三区 | 粉嫩一区二区三区性色av | 亚洲一级av毛片 | 国产精品18久久久久久白浆动漫 | 亚洲国内精品 | 在线观看成人小视频 | 欧美日韩在线视频一区 | 精品日韩 | 狠狠操天天干 | 久久成人免费 | 国产一区二区 | 午夜久久av | 国外激情av | 日韩中文一区二区三区 | 国产精品久久精品 | 日韩激情免费 | 国产一级淫片免费视频 | 久久久久久久久久久久久九 | 91免费版在线观看 | 国产欧美在线视频 | 亚洲国产二区 | 国产精品精品 | 最新中文字幕第一页视频 | 成人av在线网站 | 在线观看深夜视频 | 久久久久久久久久久久久9999 | 国产精品久久网 | xx视频在线 | 国产精品区二区三区日本 | 久久精品二区亚洲w码 | 欧美成人一区二区三区 | 久久久视 | 国产区第一页 | 国产精品久久久久久久久久免费 | 欧美日韩亚洲国产综合 | 美女视频一区二区三区 |