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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MSP430單片機俄羅斯方塊游戲程序設計

[復制鏈接]
跳轉到指定樓層
樓主
MSP430單片機游戲程序,俄羅斯方塊,采用TI公司官方MSP430F5529開發板.TI公司的官方開發板,原理圖網上都有,TI官網也有下的



源碼:
  1. /*基于MSP430F5529俄羅斯方塊游戲程序*/
  2. //作者:        詹磊
  3. //功能:        基于MSP430F5529俄羅斯方塊游戲程序
  4. //說明:        運行環境:TI官方MSP-EXP5529開發板(外接4個帶上拉電阻獨立按鍵)
  5. //                非原創,思路是從51單片機上移植過來的
  6. //                底層液晶驅動是TI官方提供的LCD API
  7. //                游戲算法部分的底層程序多處已經修改,與原版會有較大的差別
  8. //版本:        測試版 V1.0(基本能流暢運行,但需要進一步的美化和優化)
  9. #include "MSP430F5529.h"
  10. #include "LCD_102x64.h"
  11. #include "main.h"
  12. #include "Key.h"
  13. #define MAXHANG 20                                                //游戲顯示行數
  14. #define MAXLIE  16                                                //游戲顯示列數
  15. #define MapWide        48                                                //地圖寬
  16. #define MapHigh        60                                                //地圖高
  17. #define ON                0
  18. #define OFF                1

  19. #define BIT(n)                (1<<(n))
  20. volatile uint cubeMap[MAXHANG];                           //地圖顯示存存
  21. typedef struct{
  22.                uchar const * box;                   //方塊圖形字模數據指針
  23.                            uchar cube : 4;                           //方塊形態(占用4個位域)
  24.                            uchar state : 4;                           //方塊狀態(占用4個位域)
  25.                            char row;                                   //方塊所在行
  26.                            char column;                                   //方塊所在列
  27.                            } block;
  28. block this;
  29. uchar liang=1;
  30. uchar Speed=1,Score=0;
  31. uint timeA=0;
  32. uchar downflag=0;
  33. uchar randomNumber=0;
  34. const uchar cube[]=
  35. {
  36. /* ■
  37.   ■■■
  38. */
  39. 0,4,0xe,0,  0,2,6,2,     0,7,2,0,     4,6,4,0,

  40. /*■
  41.   ■■■
  42. */
  43. 0,8,0xe,0,  0,4,4,0xc,   0,0,0xe,2,   0,6,4,4,
  44. /*■■■
  45.   ■
  46. */
  47. 0,0xe,8,0,  0,4,4,6,     0,1,7,0,     6,2,2,0,
  48. /*■■
  49.     ■■
  50. */
  51. 0,0xc,6,0,  0,2,6,4,     0,6,3,0,     2,6,4,0,
  52. /*  ■■
  53.   ■■
  54. */
  55. 0,6,0xc,0,  0,4,6,2,     0,3,6,0,     4,6,2,0,
  56. /*■■■■
  57. */
  58. 0,0xf,0,0,  4,4,4,4,     0,0,0xf,0,   2,2,2,2,
  59. /*■■
  60.   ■■
  61. */
  62. 0,6,6,0,    0,6,6,0,     0,6,6,0,     0,6,6,0
  63. };
  64. void delay_ms(uint z)//毫秒級延時函數
  65. {
  66.         uint i,m;
  67.         for(i=z;i>0;i--)
  68.                 for(m=4500;m>0;m--)
  69.                 {
  70.                         _NOP();
  71.                 }
  72. }
  73. //-------------------------------------------//
  74. //函數名:八位LED燈控制函數
  75. //入口:Number:Number哪位為一則哪位LED點亮
  76. //出口:Void
  77. //功能:
  78. //-------------------------------------------//
  79. void DigitalLedControl(uchar Number)
  80. {
  81.         if(Number&BIT7)
  82.                 P1OUT|=BIT0;
  83.         else
  84.                 P1OUT&=~BIT0;
  85.         if(Number&BIT6)
  86.                 P8OUT|=BIT1;
  87.         else
  88.                 P8OUT&=~BIT1;
  89.         if(Number&BIT5)
  90.                 P8OUT|=BIT2;
  91.         else
  92.                 P8OUT&=~BIT2;
  93.         if(Number&BIT4)
  94.                 P1OUT|=BIT1;
  95.         else
  96.                 P1OUT&=~BIT1;
  97.         if(Number&BIT3)
  98.                 P1OUT|=BIT2;
  99.         else
  100.                 P1OUT&=~BIT2;
  101.         if(Number&BIT2)
  102.                 P1OUT|=BIT3;
  103.         else
  104.                 P1OUT&=~BIT3;
  105.         if(Number&BIT1)
  106.                 P1OUT|=BIT4;
  107.         else
  108.                 P1OUT&=~BIT4;
  109.         if(Number&BIT0)
  110.                 P1OUT|=BIT5;
  111.         else
  112.                 P1OUT&=~BIT5;
  113. }
  114. //-------------------------------------------//
  115. //函數名:顯存清空函數
  116. //入口:Void
  117. //出口:Void
  118. //功能:清空顯存
  119. //-------------------------------------------//
  120. void DisplayRamClear()
  121. {
  122.         uchar i;
  123.         for(i=0;i<20;i++)
  124.         {
  125.                 cubeMap[i]=0x0;
  126.         }
  127. }
  128. //-------------------------------------------//
  129. //函數名:兩位十進制數字顯示函數
  130. //入口:        Row:顯示的行數
  131. //                Column:顯示的列數
  132. //                Number:需要顯示的數字<100 && >=0
  133. //出口:Void
  134. //功能:
  135. //-------------------------------------------//
  136. void Number2BitDisplay(uchar Row,uchar Column,uchar Number)
  137. {
  138.         uchar tempShi,tempGe;
  139.         tempShi=Number/10;
  140.         tempGe=Number%10;
  141.         Dogs102x6_charDraw(Row, Column,tempShi+'0',ON);
  142.         Dogs102x6_charDraw(Row, Column+6,tempGe+'0',ON);
  143. }
  144. //-------------------------------------------//
  145. //函數名:游戲背景函數
  146. //入口:Void
  147. //出口:Void
  148. //功能:繪制游戲背景地圖
  149. //-------------------------------------------//
  150. void GameBackground()
  151. {
  152.         uchar i;
  153.         for(i=0;i<MapHigh+1;i++)
  154.         {
  155.                 Dogs102x6_pixelDraw(0, i, ON);
  156.                 Dogs102x6_pixelDraw(MapWide+1, i, ON);
  157.         }
  158.         for(i=0;i<MapWide+2;i++)
  159.         {
  160.                 Dogs102x6_pixelDraw(i, 0, ON);
  161.                 Dogs102x6_pixelDraw(i, MapHigh+1, ON);
  162.         }
  163.         DisplayRamClear();
  164.         Dogs102x6_stringDraw(3, 10, "START",ON);
  165.         Dogs102x6_stringDraw(1, 51, "NEXT:",ON);
  166.         Dogs102x6_stringDraw(3, 51, "SPEED:--",ON);
  167.         Dogs102x6_stringDraw(5, 51, "SCORE:--",ON);
  168.         Number2BitDisplay(3,87,Speed);
  169.         Number2BitDisplay(5,87,Score);
  170. }
  171. //-------------------------------------------//
  172. //函數名:游戲Map清空
  173. //入口:Void
  174. //出口:Void
  175. //功能:清空游戲背景地圖(不清空顯存)
  176. //-------------------------------------------//
  177. void GameMapClear()
  178. {
  179.         uchar i,j;
  180.         for(i=0;i<MapHigh;i++)
  181.         {
  182.                 for(j=0;j<MapWide;j++)
  183.                 {
  184.                         Dogs102x6_pixelDraw(j+1, i+1, OFF);
  185.                 }
  186.         }
  187. }
  188. //-------------------------------------------//
  189. //函數名:系統初始化
  190. //入口:Void
  191. //出口:Void
  192. //功能:
  193. //-------------------------------------------//
  194. void SystemInit()
  195. {
  196.         WDTCTL = WDTPW + WDTHOLD;
  197.         P8DIR|=BIT1+BIT2;
  198.         P8OUT|=BIT1+BIT2;
  199.         P1DIR|=BIT0+BIT1+BIT2+BIT3+BIT4+BIT5;
  200.         P1OUT|=BIT0+BIT1+BIT2+BIT3+BIT4+BIT5;
  201.         InitKey();

  202.         UCSCTL3 = SELREF_2;                       // Set DCO FLL reference = REFO
  203.         UCSCTL4 |= SELA_2;                        // Set ACLK = REFO

  204.         __bis_SR_register(SCG0);                  // Disable the FLL control loop
  205.         UCSCTL0 = 0x0000;                         // Set lowest possible DCOx, MODx
  206.         UCSCTL1 = DCORSEL_7;                      // Select DCO range 50MHz operation
  207.         UCSCTL2 = FLLD_1 + 609;                   // Set DCO Multiplier for 25MHz(這里設置為20MHz適應液晶的SPI通信)
  208.                                                   // (N + 1) * FLLRef = Fdco
  209.                                                   // (762 + 1) * 32768 = 25MHz
  210.                                                   // Set FLL Div = fDCOCLK/2
  211.         __bic_SR_register(SCG0);                  // Enable the FLL control loop
  212.         TA1CCTL0 = CCIE;                          // CCR0 interrupt enabled
  213.         TA1CCR0 = 328-1;
  214.         TA1CTL = TASSEL_1 + MC_1 + TACLR;         // ACLK, upmode, clear TAR
  215.         _BIS_SR(GIE);
  216.         Dogs102x6_init();
  217.         Dogs102x6_clearScreen();
  218.         Dogs102x6_backlightInit();
  219.         Dogs102x6_setContrast(11);
  220.         Dogs102x6_setBacklight(liang);
  221. }
  222. //-------------------------------------------//
  223. //函數名:3x3點顯示函數
  224. //入口:        x:x軸坐標
  225. //                y:y軸坐標
  226. //                mode:ON 打點;OFF 消點
  227. //出口:Void
  228. //功能:
  229. //-------------------------------------------//
  230. void Display3x3Pixels(uchar x,uchar y,uchar mode)
  231. {
  232.         x=3*x+1;
  233.         y=3*y+1;
  234.         Dogs102x6_pixelDraw(x, y, mode);
  235.         Dogs102x6_pixelDraw(x+1, y, mode);
  236.         Dogs102x6_pixelDraw(x+2, y, mode);
  237.         Dogs102x6_pixelDraw(x, y+1, mode);
  238.         Dogs102x6_pixelDraw(x+1, y+1, mode);
  239.         Dogs102x6_pixelDraw(x+2, y+1, mode);
  240.         Dogs102x6_pixelDraw(x, y+2, mode);
  241.         Dogs102x6_pixelDraw(x+1, y+2, mode);
  242.         Dogs102x6_pixelDraw(x+2, y+2, mode);
  243. }
  244. //-------------------------------------------//
  245. //函數名:顯示像素點更改函數
  246. //入口:        Row:行數
  247. //                Column:列數
  248. //                mode:ON 打點;OFF 消點
  249. //出口:Void
  250. //功能:
  251. //-------------------------------------------//
  252. void ChangeRamBit(uchar Row,uchar Column,uchar mode)
  253. {
  254.         uint tempData;
  255.         tempData=(0x8000>>(Column%16));
  256.         if(mode==ON)
  257.                 cubeMap[Row]|=tempData;
  258.         else
  259.                 cubeMap[Row]&=~tempData;
  260. }
  261. //-------------------------------------------//
  262. //函數名:讀取某個顯示像素點位值函數
  263. //入口:        Row:行數
  264. //                Column:列數
  265. //出口:uchar 1:所選點位1,0:所選的點位0
  266. //功能:
  267. //-------------------------------------------//
  268. uchar ReadDisplayRamBit(uchar Row,uchar Column)
  269. {
  270.         uint tempData;
  271.         tempData=(0x8000>>(Column%16));
  272.         if(cubeMap[Row]&tempData)
  273.                 return 1;
  274.         else
  275.                 return 0;
  276. }
  277. //-------------------------------------------//
  278. //函數名:下一個方塊顯示函數
  279. //入口:        x:x軸坐標
  280. //                y:y軸坐標
  281. //                *p:圖形字模數據指針
  282. //出口:Void
  283. //功能:
  284. //-------------------------------------------//
  285. void showNextCube(uchar const * p,uchar x,uchar y)
  286. #define NexPoinX        27                                                        //下一個圖形顯示的X坐標
  287. #define NexPoinY        2                                                        //下一個圖形顯示的Y坐標
  288. {
  289. uchar i,j,temp;
  290.   for(i=0;i<4;i++)
  291.    {
  292.       temp=0x08;
  293.       for(j=0;j<4;j++)
  294.       {
  295.         if(p[i] & temp)
  296.                 Display3x3Pixels(x+j,y+i,ON);
  297.         else
  298.                 Display3x3Pixels(x+j,y+i,OFF);
  299.         temp>>=1;
  300.       }
  301.    }
  302. }
  303. //-------------------------------------------//
  304. //函數名:顯示函數
  305. //入口:Void
  306. //出口:Void
  307. //功能:將顯存的內容寫入顯示器顯示
  308. //-------------------------------------------//
  309. void showCubeMap(void)
  310. {
  311. uchar hang,lie;
  312. for(hang=0;hang<MAXHANG;hang++)
  313.   {
  314.    if(cubeMap[hang]!=0)                                                        //跳過某行全為零的地方
  315.    for(lie=0;lie<MAXLIE;lie++)
  316.     {
  317.            if(cubeMap[hang]&(0x8000>>(lie%16)))
  318.                    Display3x3Pixels(lie,hang,ON);
  319.     }
  320.   }
  321. }
  322. //-------------------------------------------//
  323. //函數名:產生新方塊函數
  324. //入口:Void
  325. //出口:Void
  326. //功能:
  327. //-------------------------------------------//
  328. void createCube(void)
  329. {
  330.   static uchar next=0;
  331.   this.cube=next;
  332.   next=randomNumber%7;                                                          //產生隨機數
  333.   this.row=0;                                                                          //初始行為0
  334.   this.column=6;                                                                  //初始列為6
  335.   this.state=0;                                                                          //初始狀態為0
  336.   this.box=cube+16*this.cube;                                          //設定方塊指針起始地址
  337.   showNextCube(cube+16*next,NexPoinX,NexPoinY);        //提示區顯示下一個方塊
  338.   timeA=0;
  339.   downflag=0;
  340. }
  341. //-------------------------------------------//
  342. //函數名:寫顯存函數
  343. //入口:mode:ON 打點;OFF 消點
  344. //出口:Void
  345. //功能:將數據寫入顯存,同時寫入顯示器顯示
  346. //-------------------------------------------//
  347. void writeCubeToMap(uchar mode)
  348. {
  349.         uchar tempData,tempRow,tempColumn,i,j,k=0;
  350.         for(i=0;i<4;i++)
  351.         {
  352.                 tempData=this.box[i];
  353.                 if(tempData==0)
  354.                         continue;
  355.                 for(j=0;j<4;j++)
  356.                 {
  357.                         if(tempData&0x08)
  358.                         {
  359.                                 tempRow=this.row+k;
  360.                                 tempColumn=this.column+j;
  361.                                 ChangeRamBit(tempRow,tempColumn,mode);
  362.                                 Display3x3Pixels(tempColumn,tempRow,mode);
  363.                         }
  364.                         tempData<<=1;
  365.                 }
  366.                 k++;
  367.         }
  368. }
  369. //-------------------------------------------//
  370. //函數名:方塊邊沿檢測函數
  371. //入口:Void
  372. //出口:uchar 0:可以繼續移動        1:到底,停止移動
  373. //功能:
  374. //-------------------------------------------//
  375. uchar checkClask(void)
  376. {
  377.         uchar tempData,tempRow,tempColumn,i,j,k=0;
  378.         for(i=0;i<4;i++)
  379.         {
  380.                 tempData=this.box[i];
  381.                 if(tempData==0)                                                                                        //跳過全為零的行
  382.                         continue;
  383.                 for(j=0;j<4;j++)
  384.                 {
  385.                         if(tempData&0x08)
  386.                         {
  387.                                 tempRow=this.row+k;
  388.                                 tempColumn=this.column+j;
  389.                                 if        (
  390.                                                 ReadDisplayRamBit(tempRow,tempColumn)        //與邊上的方塊接觸
  391.                                                 ||(tempRow>=MAXHANG)                                        //到了最底部
  392.                                                 ||(tempColumn>=MAXLIE)                                        //到了最右邊
  393.                                                 ||(tempColumn==255)                                                //到了最左邊
  394.                                         )
  395.                                         return 1;                                                                        //返回1,停止移動
  396.                         }
  397.                         tempData<<=1;
  398.                 }
  399.                 k++;
  400.         }
  401.         return 0;                                                                                                //返回0,可以繼續移動
  402. }
  403. //-------------------------------------------//
  404. //函數名:地圖檢測函數
  405. //入口:Void
  406. //出口:Void
  407. //功能:檢測地圖中是否有滿行,有的話就消行,加分,一定分后加速,同時刷一次屏
  408. //-------------------------------------------//
  409. void CheckMap()
  410. {
  411.         uchar fullFlag=0;
  412.         static uchar tempScore=0,tempSpeed=0;
  413.         char i,j;
  414.         for(i=MAXHANG-1;i>0;i--)
  415.         {
  416.                 if(cubeMap[i]==0xffff)
  417.                 {
  418.                         fullFlag++;
  419.                         for(j=i;j>0;j--)
  420.                         {
  421.                                 if(j>0)
  422.                                         cubeMap[j]=cubeMap[j-1];
  423.                                 else
  424.                                         cubeMap[j]=0;
  425.                         }
  426.                         i++;
  427.                 }
  428.         }
  429.         tempScore=Score;
  430.         tempSpeed=Speed;
  431.         switch(fullFlag)
  432.         {
  433.         case 1:Score++;break;
  434.         case 2:Score+=2;break;
  435.         case 3:Score+=4;break;
  436.         case 4:Score+=6;break;
  437.         default:break;
  438.         }
  439.         if(Score>99)
  440.         {
  441.                 Speed++;
  442.                 if(Speed>9)
  443.                         Speed=1;
  444.                 Score=0;
  445.         }
  446.         if(tempScore!=Score)
  447.                 Number2BitDisplay(5,87,Score);
  448.         if(tempSpeed!=Speed)
  449.                 Number2BitDisplay(3,87,Speed);
  450.         if(fullFlag)
  451.         {
  452.                 GameMapClear();
  453.                 showCubeMap();
  454.         }
  455. }
  456. //-------------------------------------------//
  457. //函數名:方塊左移函數
  458. //入口:Void
  459. //出口:Void
  460. //功能:
  461. //-------------------------------------------//
  462. void moveLeft(void)
  463. {
  464.         writeCubeToMap(OFF);
  465.           this.column--;
  466.           if(checkClask())
  467.                   this.column++;
  468.           writeCubeToMap(ON);
  469. }
  470. //-------------------------------------------//
  471. //函數名:方塊右移函數
  472. //入口:Void
  473. //出口:Void
  474. //功能:
  475. //-------------------------------------------//
  476. void moveRigh(void)
  477. {
  478.         writeCubeToMap(OFF);
  479.         this.column++;
  480.         if(checkClask())
  481.                 this.column--;
  482.         writeCubeToMap(ON);
  483. }
  484. //-------------------------------------------//
  485. //函數名:方塊下移函數
  486. //入口:Void
  487. //出口:uchar 到底返回1,否則返回0;
  488. //功能:
  489. //-------------------------------------------//
  490. uchar moveDown(void)
  491. {
  492.         writeCubeToMap(OFF);
  493.         this.row++;
  494.         if(checkClask())                                //到底
  495.         {
  496.                 this.row--;
  497.                 writeCubeToMap(ON);
  498.                 CheckMap();                                        //是否消行
  499.                 return 1;
  500.         }
  501.         else
  502.         {
  503.                 writeCubeToMap(ON);
  504.                 return 0;
  505.         }
  506. }
  507. //-------------------------------------------//
  508. //函數名:方塊翻轉函數
  509. //入口:Void
  510. //出口:Void
  511. //功能:
  512. //-------------------------------------------//
  513. void cubeRotation(void)
  514. {
  515.         uchar temp;
  516.         temp=this.state;
  517.         writeCubeToMap(OFF);
  518.         this.state=++this.state%4;
  519.         this.box=cube+16*this.cube+4*this.state;
  520.         if(checkClask())
  521.         {
  522.                 this.state=temp;
  523.                 this.box=cube+16*this.cube+4*this.state;
  524.         }
  525.         writeCubeToMap(ON);
  526. }
  527. //-------------------------------------------//
  528. //函數名:俄羅斯方塊結束界面函數
  529. //入口:Void
  530. //出口:Void
  531. //功能:
  532. //-------------------------------------------//
  533. void TetrisGameOver()
  534. {
  535.         DisplayRamClear();
  536.         GameMapClear();
  537.         Score=0;
  538.         Speed=1;
  539.         Number2BitDisplay(5,87,Score);
  540.         Number2BitDisplay(3,87,Speed);
  541.         Dogs102x6_stringDraw(3, 13, "GAME",ON);
  542.         Dogs102x6_stringDraw(4, 13, "OVER",ON);
  543. }
  544. //-------------------------------------------//
  545. //函數名:俄羅斯方塊游戲運行函數
  546. //入口:Void
  547. //出口:Void
  548. //功能:不阻塞CPU
  549. //-------------------------------------------//
  550. void TetrisGame()
  551. {
  552.         uchar temp=0;
  553.         static uchar Flag=0;
  554.         if(Flag==0)
  555.         {
  556.                 createCube();
  557.                 if(checkClask())
  558.                 {
  559.                         TetrisGameOver();
  560.                         delay_ms(1000);
  561.                         GameMapClear();
  562.                 }
  563.                 else
  564.                         writeCubeToMap(ON);
  565.                 Flag=1;
  566.         }
  567.         if(downflag&&Flag)
  568.         {
  569.                 downflag=0;
  570.                 if(moveDown())
  571.                 {
  572.                         Flag=0;
  573.                 }
  574.         }
  575.         temp=GetKey();
  576.         switch(temp)
  577.         {
  578.                 case KeyUP:cubeRotation();DigitalLedControl(0);
  579.                         break;
  580.                 case KeyDOWN:while(moveDown()==0);Flag=0;DigitalLedControl(1);
  581.                         break;
  582.                 case KeyLEFT:moveLeft();DigitalLedControl(2);
  583.                         break;
  584.                 case KeyRIGHT:moveRigh();DigitalLedControl(3);
  585.                         break;
  586.                 case KeyBACK:DigitalLedControl(4);liang=++liang%12;Dogs102x6_setBacklight(liang);
  587.                         break;
  588.                 case KeyMEU:DigitalLedControl(5);
  589.                         break;
  590.                 case 0:
  591.                         break;
  592.                 default:
  593.                         break;
  594.         }
  595. }
  596. void main(void)
  597. {
  598.         SystemInit();
  599.         GameBackground();
  600.         DisplayRamClear();
  601.         GameMapClear();
  602.         showCubeMap();
  603.         while(1)
  604.         {
  605.                 TetrisGame();
  606.         }
  607. }
  608. #pragma vector=TIMER1_A0_VECTOR
  609. __interrupt void TIMER1_A0_ISR(void)
  610. {
  611.         randomNumber=++randomNumber%100;
  612.         if(downflag==0)
  613.                 timeA++;
  614.         if(timeA==(10-Speed)*10)
  615.         {
  616.                 timeA=0;
  617.                 downflag=1;
  618.         }
  619. }
復制代碼




全部源碼打包下載:
俄羅斯方塊游戲.rar (75.65 KB, 下載次數: 86)


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

使用道具 舉報

沙發
ID:445441 發表于 2018-12-13 21:54 | 只看該作者
這個我拿來用不了啊 一直顯示文件路徑有問題
program “make” not found in PATH
回復

使用道具 舉報

板凳
ID:189966 發表于 2020-3-30 15:58 | 只看該作者
你好,電路圖怎么找、
回復

使用道具 舉報

地板
ID:1016682 發表于 2022-4-8 12:05 | 只看該作者
四個獨立按鍵怎么裝呀
回復

使用道具 舉報

5#
ID:1092538 發表于 2023-9-3 16:20 | 只看該作者
15538053902 發表于 2020-3-30 15:58
你好,電路圖怎么找、

電路圖可以在德州儀器的單片機上找產品信息
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 自拍偷拍第一页 | 亚洲精品自在在线观看 | 中文字幕第一页在线 | 中文字幕一区二区三区四区五区 | 久久精品国产一区二区三区不卡 | 国产欧美精品一区二区色综合 | 91av在线免费 | 亚洲精品国产电影 | 久久精品日产第一区二区三区 | 91在线精品一区二区 | 久久久综合网 | 欧美嘿咻 | 一区二区三区视频播放 | 日韩在线视频网址 | 欧美一区二区另类 | 91高清在线 | 中文字幕在线观看 | 国产在线观看一区二区 | 日韩成人在线播放 | 国产视频观看 | 国产精品久久久久久久三级 | 天天摸天天干 | 成人精品一区二区三区中文字幕 | 中文字幕一区二区三区在线观看 | 亚洲欧洲一区 | 九九亚洲| 精品国产一区二区国模嫣然 | 日韩精品在线网站 | 日韩中文久久 | 国产日韩欧美激情 | 欧美日韩国产中文 | 国产精品精品3d动漫 | 国产精品综合 | 亚洲成人自拍 | 欧美电影免费观看高清 | 成人午夜免费视频 | 成人亚洲| 麻豆久久久| 精品无码久久久久久国产 | 亚洲3级 | 91文字幕巨乱亚洲香蕉 |