wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

基于MSP430簡易示波器的設(shè)計(jì)電路與程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:422488 發(fā)表于 2018-11-7 17:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
  • 硬件設(shè)計(jì)
1.1 單片機(jī)
選用MSP430G2553單片機(jī),該單片機(jī)具有低功耗的特點(diǎn),內(nèi)部自帶8路10位AD轉(zhuǎn)換器(ADC10),最高主頻可達(dá)16Mhz,對(duì)于一個(gè)簡易示波器來說這些特點(diǎn)足夠我們使用。
1.2 程控放大電路
程控放大電路的作用是對(duì)大信號(hào)進(jìn)行衰減,對(duì)小信號(hào)進(jìn)行放大,保證輸入到A/D轉(zhuǎn)換器的信號(hào)幅度在要求的輸入電壓范圍內(nèi),以達(dá)到最好的測(cè)量與觀察效果。采用模擬開關(guān)CD4051,配合精密電位器實(shí)現(xiàn)多擋垂直分辨率。在MSP430單片機(jī)中使用寄存器模塊設(shè)置通道號(hào),通過寫入通道號(hào)控制模擬開關(guān)選通不同的反饋電阻,從而實(shí)現(xiàn)不同的放大倍數(shù),對(duì)信號(hào)進(jìn)行不同程度的放大(衰減)。電路圖如下:
1.3 簡易調(diào)理電路
由于示波器觀察信號(hào)大多是正負(fù)電壓信號(hào),考慮到ADC10一般使用的是單極性參考電壓(也可以使用寄存器設(shè)置雙極性參考電壓,這樣就不需要調(diào)理電路了,但最好加一級(jí)緩沖)。為了采樣到信號(hào)的負(fù)電壓,就需要給該信號(hào)疊加直流量,將負(fù)電壓部分信號(hào)抬高至零電平以上,因此采用信號(hào)調(diào)理電路。電路圖如下:
1.4 LCD顯示電路和按鍵電路
利用LCD的SPI通信模式與MSP430單片機(jī)連接,這樣可以得到不錯(cuò)的通信速度,并且可以盡可能的減少M(fèi)SP430引腳的占用,具體電路這里就不給出了。(按照spi連接)
利用簡單獨(dú)立按鍵實(shí)現(xiàn)放大倍數(shù)調(diào)節(jié),采樣頻率設(shè)置等功能即可。
2.軟件設(shè)計(jì)
2.1 單片機(jī)初始化
對(duì)P2口初始化,打開P2口的中斷;將通信方式設(shè)置為硬件spi通信模式(注意spi通信在上升沿還是在下降沿開始)。
  1.                             WDTCTL=WDTPW+WDTHOLD; //關(guān)看門狗

  2.                             P1OUT = 0x00;                             // P1 setup for LED & reset output
  3.                 P1DIR |= BIT0 + BIT2 + BIT3 + BIT4 + BIT5;
  4.                 P1SEL = BIT1 + BIT2 + BIT4;
  5.                 P1SEL2 = BIT1 + BIT2 + BIT4;
  6.                 P2REN |= 0x38;
  7.                   P2DIR = 0x07;
  8.                   P2OUT = 0;
  9.                   P2IE |= 0x38;                             // P1.4 interrupt enabled
  10.                   P2IFG &= ~0x38;
  11.                   will=0;
  12.                 UCA0CTL0 |= UCCKPL + UCMSB + UCMST + UCSYNC + UCCKPH ;  // 3-pin, 8-bit SPI master
  13.                 UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  14.                 UCA0BR0 |= 0x04;                          // /2
  15.                 UCA0BR1 = 0;                              //
  16.                 UCA0MCTL = 0;                             // No modulation
  17.                 UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  18.                 P1OUT &= ~BIT5;                           // Now with SPI signals initialized,
  19.                 P1OUT |= BIT5;                            // reset slave
  20. ADC10初始化,開啟參考源和中斷。
  21.               ADC10CTL0 = ADC10SHT_0 + REFON + ADC10ON + ADC10IE;
  22.               ADC10CTL1 = INCH_6;
  23. ADC10AE0 |= 0x40;  
  24. 顯示初始化,對(duì)LCD的界面顯示初始化。
  25. Initial_ILI9340C();
  26.                             Delay_ms(300);
  27.                             LCD_TEST_SingleColor(Black);
  28.                             LCD_TEST_SingleColor(Black);
  29.                             LCD_TEST_PartColor(Blue);
  30.                             for(wh=22; wh<220 ;wh+=10)
  31.                             {
  32.                                           LCD_draw_Line(wh,39,White);
  33.                                           LCD_draw_Line(wh,79,White);
  34.                                           LCD_draw_Line(wh,119,White);
  35.                                           LCD_draw_Line(wh,159,White);
  36.                                           LCD_draw_Line(wh,199,White);
  37.                                           LCD_draw_Line(wh,239,White);
  38.                                           LCD_draw_Line(wh,279,White);
  39.                             }
  40.                             Delay_ms(100);
  41.                             for(co=2; co<320 ;co+=10)
  42.                             {
  43.                                           LCD_draw_Col(69,co,White);
  44.                                           LCD_draw_Col(119,co,White);
  45.                                           LCD_draw_Col(169,co,White);
  46.                             }
  47.                             Delay_ms(100);
復(fù)制代碼

2.2 程控選擇程序
根據(jù)按鍵的次數(shù),在P2口中斷改變will的值,并通過P2口輸出給CD4051的ABC開關(guān)選擇端,對(duì)放大倍數(shù)進(jìn)行選擇。
  1.               #pragma vector=PORT2_VECTOR
  2. __interrupt void Port_2(void)
  3. {
  4.               if(P2IFG & 0x10)
  5.               {
  6.                             while(0x10 & P2IN);
  7.                             will++;
  8.                             if(will==8)
  9.                             {
  10.                                           will=7;
  11.                             }
  12.               }
  13.               if(P2IFG & 0x20)
  14.               {
  15.                             while(0x20 & P2IN);
  16.                             will--;
  17.                             if(will==255)
  18.                             {
  19.                                           will=0;
  20.                             }
  21.               }
  22.               if(P2IFG & 0x08)
  23.               {
  24.                             while(0x08 & P2IN);
  25.                             chan++;
  26.                             if(chan==4)
  27.                                           chan=0;
  28.               }
  29.     P2IFG &= ~0x38;
  30.     P2OUT=will;
  31. }
復(fù)制代碼

2.3 采樣頻率設(shè)置
通過改變ADC10CTL1,通過按鍵次數(shù)對(duì)應(yīng)值不同改變ADC10時(shí)鐘的頻率來調(diào)節(jié)電路的采樣頻率。
  1.   switch(chan)
  2.                                                            {
  3.                                                                       case 0: ADC10CTL1 = INCH_6; break;
  4.                                                                       case 1: ADC10CTL1 |= ADC10DIV0 + ADC10DIV1; break;
  5.                                                                       case 2: ADC10CTL1 |= ADC10DIV0 + ADC10DIV2; break;
  6.                                                                       case 3: ADC10CTL1 |= ADC10DIV0 + ADC10DIV1 + ADC10DIV2;                                                                       break;
  7.                                                         }
復(fù)制代碼

2.4 軟件觸發(fā)程序
只有在一定條件下才使lcd刷新,保證每次采集到的波形都從一點(diǎn)開始顯示,防止由于每次采集到的點(diǎn)不同導(dǎo)致波形一直移動(dòng)。
ADC10CTL0 |= ENC + ADC10SC;         
  // Sampling and conversion start
                                                        __bis_SR_register(CPUOFF + GIE);      
                                                        if(cir==0) key1 = ADC10MEM/5;
                                                        if(cir==1) key2 = ADC10MEM/5;
                                                        if(cir==2) key3 = ADC10MEM/5;
                                                        if(cir>2 && key1>key2 && key2>key3)  //((key1-100)/2)>=(key2-100)
                                                        {
                                                                      temp[0]=key1;
                                                                      temp[1]=key2;
                                                                      temp[2]=key3;
                                                                      temp[cir]=ADC10MEM/5;
                                                        }
                                          ADC10CTL0 &= ~ENC;
2.5 顯示刷新程序
示波器是一個(gè)動(dòng)態(tài)顯示過程,因此在過程中可能會(huì)引起初始界面被部分覆蓋,以此需要定時(shí)刷新初始界面。
trig++;

                                          if(trig%20==0)
                                          {
                                                        for(wh=22; wh<220 ;wh+=10)
                                                        {
                                                                      LCD_draw_Line(wh,39,White);
                                                                      LCD_draw_Line(wh,79,White);
                                                                      LCD_draw_Line(wh,119,White);
                                                                      LCD_draw_Line(wh,159,White);
                                                                      LCD_draw_Line(wh,199,White);
                                                                      LCD_draw_Line(wh,239,White);
                                                                      LCD_draw_Line(wh,279,White);
                                                        }
                                                        Delay_ms(300);
                                                        for(co=2; co<320 ;co+=10)
                                                        {
                                                                      LCD_draw_Col(69,co,White);
                                                                      LCD_draw_Col(119,co,White);
                                                                      LCD_draw_Col(169,co,White);
                                                        }
                                                        Delay_ms(300);
                                          }
附:源程序

  1. #include "msp430g2553.h" //STC12單片機(jī)頭文件

  2. //顏色定義
  3. #define Blue                             0x001f
  4. #define Yellow                            0xffe0
  5. #define Green                             0x07e0
  6. #define Black                            0x0000
  7. #define White                            0xffff
  8. #define Red                                          0xf800

  9. //引腳定義
  10. #define              R_ESET1 P1OUT|=BIT5; //液晶RESET引腳,接單片機(jī)IO引腳
  11. #define R_ESET0 P1OUT&=~BIT5;
  12. #define              C_D1              P1OUT|=BIT3;//液晶D/CX引腳,數(shù)據(jù)/命令控制,接單片機(jī)IO引腳
  13. #define              C_D0                 P1OUT&=~BIT3;
  14. #define              C_S1                 P1OUT|=BIT0;//液晶片選CS,P1.4為單片機(jī)SPI總線的SS引腳,通過MSTR位配置為IO模式
  15. #define              C_S0                 P1OUT&=~BIT0;

  16. unsigned char MST_Data, SLV_Data, wh, temp[320], trig=0, key1, key2 ,key3 ,will ,chan=0;
  17. unsigned int co,cir;


  18. void delay(void)
  19. {
  20. unsigned int j;
  21.   for(j=100;j>0;j--);
  22. }
  23. void Delay_us(int value)////延時(shí)函數(shù)_us
  24.               {
  25.               while (value)
  26.               value--;
  27.               }

  28. void Delay_ms(int value)////延時(shí)函數(shù)_ms
  29.               {
  30.               while (value){
  31.                             Delay_us(999);
  32.                             value--;
  33.                             }
  34.               }

  35. void LCD_Writ_Bus(char a){   //數(shù)據(jù)寫入函數(shù) 8位
  36.       C_S0;
  37.       UCA0TXBUF = a;
  38.       __delay_cycles(50);
  39.       while (!(IFG2 & UCA0TXIFG));
  40.       C_S1;

  41. }

  42. void LCD_WRITE_CMD(char cmd){//8 bit
  43.       C_D0;
  44.       LCD_Writ_Bus(cmd);
  45. }

  46. void LCD_WRITE_COM_DATA(char com_data){//8 bit
  47.       C_D1;
  48.       LCD_Writ_Bus(com_data);
  49. }

  50. void LCD_WRITE_DATA(int a){//16位數(shù)據(jù),分兩次,每次送8位
  51.       C_D1;
  52.       LCD_Writ_Bus(a>>8);
  53.                 LCD_Writ_Bus(a);
  54. }

  55. //設(shè)置繪點(diǎn)窗口,x=0~239,y=0~319
  56. void Address_set(unsigned int x1,unsigned int x2,unsigned int y1,unsigned int y2)
  57. {
  58.                    LCD_WRITE_CMD(0x2a);               //x軸
  59.                    LCD_WRITE_DATA(x1);
  60.                    LCD_WRITE_DATA(x2);
  61.                   LCD_WRITE_CMD(0x2b);               //y軸
  62.                   LCD_WRITE_DATA(y1);
  63.                    LCD_WRITE_DATA(y2);
  64.                    LCD_WRITE_CMD(0x2c);
  65. }

  66. void LCD_TEST_SingleColor(int Discolor){
  67.                    int i,j;
  68.                             Address_set(0,239,0,319);

  69.                             for (i=0;i<320;i++){
  70.                                           for (j=0;j<240;j++){
  71.                                                         LCD_WRITE_DATA(Discolor);
  72.                                                         }
  73.                             }
  74. }

  75. void LCD_TEST_PartColor(int Discolor){
  76.                    int i,j;
  77.                             Address_set(0,19,0,319);

  78.                             for (i=0;i<320;i++){
  79.                                           for (j=0;j<20;j++){
  80.                                                         LCD_WRITE_DATA(Discolor);
  81.                                                         }
  82.                             }
  83.                             Address_set(220,239,0,319);

  84.                             for (i=0;i<320;i++){
  85.                                           for (j=220;j<240;j++){
  86.                                                         LCD_WRITE_DATA(Discolor);
  87.                                                         }
  88.                             }
  89. }

  90. //畫一條橫線
  91. void LCD_draw_Line(unsigned int x,unsigned int y,unsigned int color)
  92. {                            int i;
  93.                             Address_set(x,x+4,y,y);
  94.                             for (i=0;i<5;i++){
  95.                                           LCD_WRITE_DATA(color);
  96.                                           }
  97. }

  98. void LCD_draw_Col(unsigned int x,unsigned int y,unsigned int color)
  99. {                            int i;
  100.                             Address_set(x,x,y,y+4);
  101.                             for (i=0;i<5;i++){
  102.                                           LCD_WRITE_DATA(color);
  103.                                           }
  104. }

  105. //液晶主控初始化
  106. void Initial_ILI9340C(void)
  107. {
  108.         LCD_WRITE_CMD(0xCB);
  109.         LCD_WRITE_COM_DATA(0x39);
  110.         LCD_WRITE_COM_DATA(0x2C);
  111.         LCD_WRITE_COM_DATA(0x00);
  112.         LCD_WRITE_COM_DATA(0x34);
  113.         LCD_WRITE_COM_DATA(0x02);

  114.         LCD_WRITE_CMD(0xCF);
  115.         LCD_WRITE_COM_DATA(0x00);
  116.         LCD_WRITE_COM_DATA(0XC1);
  117.         LCD_WRITE_COM_DATA(0X30);

  118.         LCD_WRITE_CMD(0xE8);
  119.         LCD_WRITE_COM_DATA(0x85);
  120.         LCD_WRITE_COM_DATA(0x00);
  121.         LCD_WRITE_COM_DATA(0x78);

  122.         LCD_WRITE_CMD(0xEA);
  123.         LCD_WRITE_COM_DATA(0x00);
  124.         LCD_WRITE_COM_DATA(0x00);

  125.         LCD_WRITE_CMD(0xED);
  126.         LCD_WRITE_COM_DATA(0x64);
  127.         LCD_WRITE_COM_DATA(0x03);
  128.         LCD_WRITE_COM_DATA(0X12);
  129.         LCD_WRITE_COM_DATA(0X81);

  130.         LCD_WRITE_CMD(0xF7);
  131.         LCD_WRITE_COM_DATA(0x20);

  132.         LCD_WRITE_CMD(0xC0);    //Power control
  133.         LCD_WRITE_COM_DATA(0x23);   //VRH[5:0]

  134.         LCD_WRITE_CMD(0xC1);    //Power control
  135.         LCD_WRITE_COM_DATA(0x10);   //SAP[2:0];BT[3:0]

  136.         LCD_WRITE_CMD(0xC5);    //VCM control
  137.         LCD_WRITE_COM_DATA(0x3e); //對(duì)比度調(diào)節(jié)
  138.         LCD_WRITE_COM_DATA(0x28);

  139.         LCD_WRITE_CMD(0xC7);    //VCM control2
  140.         LCD_WRITE_COM_DATA(0x86);  //--

  141.         LCD_WRITE_CMD(0x36);    // Memory Access Control
  142.         LCD_WRITE_COM_DATA(0xC8);

  143.         LCD_WRITE_CMD(0x3A);
  144.         LCD_WRITE_COM_DATA(0x55);

  145.         LCD_WRITE_CMD(0xB1);
  146.         LCD_WRITE_COM_DATA(0x00);
  147.         LCD_WRITE_COM_DATA(0x18);

  148.         LCD_WRITE_CMD(0xB6);    // Display Function Control
  149.         LCD_WRITE_COM_DATA(0x08);
  150.         LCD_WRITE_COM_DATA(0x82);
  151.         LCD_WRITE_COM_DATA(0x27);

  152.         LCD_WRITE_CMD(0xF2);    // 3Gamma Function Disable
  153.         LCD_WRITE_COM_DATA(0x00);

  154.         LCD_WRITE_CMD(0x26);    //Gamma curve selected
  155.         LCD_WRITE_COM_DATA(0x01);

  156.         LCD_WRITE_CMD(0xE0);    //Set Gamma
  157.         LCD_WRITE_COM_DATA(0x0F);
  158.         LCD_WRITE_COM_DATA(0x31);
  159.         LCD_WRITE_COM_DATA(0x2B);
  160.         LCD_WRITE_COM_DATA(0x0C);
  161.         LCD_WRITE_COM_DATA(0x0E);
  162.         LCD_WRITE_COM_DATA(0x08);
  163.         LCD_WRITE_COM_DATA(0x4E);
  164.         LCD_WRITE_COM_DATA(0xF1);
  165.         LCD_WRITE_COM_DATA(0x37);
  166.         LCD_WRITE_COM_DATA(0x07);
  167.         LCD_WRITE_COM_DATA(0x10);
  168.         LCD_WRITE_COM_DATA(0x03);
  169.         LCD_WRITE_COM_DATA(0x0E);
  170.         LCD_WRITE_COM_DATA(0x09);
  171.         LCD_WRITE_COM_DATA(0x00);

  172.         LCD_WRITE_CMD(0XE1);    //Set Gamma
  173.         LCD_WRITE_COM_DATA(0x00);
  174.         LCD_WRITE_COM_DATA(0x0E);
  175.         LCD_WRITE_COM_DATA(0x14);
  176.         LCD_WRITE_COM_DATA(0x03);
  177.         LCD_WRITE_COM_DATA(0x11);
  178.         LCD_WRITE_COM_DATA(0x07);
  179.         LCD_WRITE_COM_DATA(0x31);
  180.         LCD_WRITE_COM_DATA(0xC1);
  181.         LCD_WRITE_COM_DATA(0x48);
  182.         LCD_WRITE_COM_DATA(0x08);
  183.         LCD_WRITE_COM_DATA(0x0F);
  184.         LCD_WRITE_COM_DATA(0x0C);
  185.         LCD_WRITE_COM_DATA(0x31);
  186.         LCD_WRITE_COM_DATA(0x36);
  187.         LCD_WRITE_COM_DATA(0x0F);

  188.         LCD_WRITE_CMD(0x11);    //Exit Sleep
  189.         Delay_ms(120);

  190.         LCD_WRITE_CMD(0x29);    //Display on
  191.         LCD_WRITE_CMD(0x2c);

  192. }

  193. //LCD進(jìn)入休眠狀態(tài)
  194. void LCD_Sleep_ILI9340C(void)
  195. {
  196.   LCD_WRITE_CMD(0x28);//Display off
  197.   Delay_ms(20);
  198.   LCD_WRITE_CMD(0x10);//Enter Sleep mode
  199. }
  200. //LCD退出休眠狀態(tài)
  201. void LCD_ExitSleep_ILI9340C(void)
  202. {
  203.   LCD_WRITE_CMD(0x11);//Exit Sleep
  204.   Delay_ms(120);
  205.   LCD_WRITE_CMD(0x29);//Display on
  206.   LCD_WRITE_CMD(0x2c);
  207. }

  208. void main()
  209. {
  210.                             WDTCTL=WDTPW+WDTHOLD; //關(guān)看門狗


  211.                             P1OUT = 0x00;                             // P1 setup for LED & reset output
  212.                 P1DIR |= BIT0 + BIT2 + BIT3 + BIT4 + BIT5;
  213.                 P1SEL = BIT1 + BIT2 + BIT4;
  214.                 P1SEL2 = BIT1 + BIT2 + BIT4;
  215.                 P2REN |= 0x38;
  216.                   P2DIR = 0x07;
  217.                   P2OUT = 0;
  218.                   P2IE |= 0x38;                             // P1.4 interrupt enabled
  219.                   P2IFG &= ~0x38;
  220.                   will=0;
  221.                 UCA0CTL0 |= UCCKPL + UCMSB + UCMST + UCSYNC + UCCKPH ;  // 3-pin, 8-bit SPI master
  222.                 UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  223.                 UCA0BR0 |= 0x04;                          // /2
  224.                 UCA0BR1 = 0;                              //
  225.                 UCA0MCTL = 0;                             // No modulation
  226.                 UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  227.                 P1OUT &= ~BIT5;                           // Now with SPI signals initialized,
  228.                 P1OUT |= BIT5;                            // reset slave

  229.                 __delay_cycles(75);                 // Wait for slave to initialize

  230.                             Initial_ILI9340C();
  231.                             Delay_ms(300);
  232.                             LCD_TEST_SingleColor(Black);
  233.                             LCD_TEST_SingleColor(Black);
  234.                             LCD_TEST_PartColor(Blue);
  235.                             for(wh=22; wh<220 ;wh+=10)
  236.                             {
  237.                                           LCD_draw_Line(wh,39,White);
  238.                                           LCD_draw_Line(wh,79,White);
  239.                                           LCD_draw_Line(wh,119,White);
  240.                                           LCD_draw_Line(wh,159,White);
  241.                                           LCD_draw_Line(wh,199,White);
  242.                                           LCD_draw_Line(wh,239,White);
  243.                                           LCD_draw_Line(wh,279,White);
  244.                             }
  245.                             Delay_ms(100);
  246.                             for(co=2; co<320 ;co+=10)
  247.                             {
  248.                                           LCD_draw_Col(69,co,White);
  249.                                           LCD_draw_Col(119,co,White);
  250.                                           LCD_draw_Col(169,co,White);
  251.                             }
  252.                             Delay_ms(100);

  253.                             ADC10CTL0 = ADC10SHT_0 + REFON + ADC10ON + ADC10IE;
  254.                  ADC10CTL1 = INCH_6;
  255.                  ADC10AE0 |= 0x40;                         // PA.1 ADC option select

  256.                             while(1)
  257.                             {
  258.                                           for(cir=0;cir<320;cir++)
  259.                                           {
  260.                                                         ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start
  261.                                                         __bis_SR_register(CPUOFF + GIE);        // LPM0, ADC10_ISR will force exi
  262.                                                         if(cir==0) key1 = ADC10MEM/5;
  263.                                                         if(cir==1) key2 = ADC10MEM/5;
  264.                                                         if(cir==2) key3 = ADC10MEM/5;
  265.                                                         if(cir>2 && key1>key2 && key2>key3)  //((key1-100)/2)>=(key2-100)
  266.                                                         {
  267.                                                                       temp[0]=key1;
  268.                                                                       temp[1]=key2;
  269.                                                                       temp[2]=key3;
  270.                                                                       temp[cir]=ADC10MEM/5;
  271.                                                         }
  272.                                                         ADC10CTL0 &= ~ENC;
  273.                                                         switch(chan)
  274.                                                         {
  275.                                                                       case 0: ADC10CTL1 = INCH_6; break;
  276.                                                                       case 1: ADC10CTL1 |= ADC10DIV0 + ADC10DIV1; break;
  277.                                                                       case 2: ADC10CTL1 |= ADC10DIV0 + ADC10DIV2; break;
  278.                                                                       case 3: ADC10CTL1 |= ADC10DIV0 + ADC10DIV1 + ADC10DIV2; break;
  279.                                                         }
  280.                                           }

  281.                                                         for(cir=0;cir<320;cir++)
  282.                                                         {
  283.                                                                       Address_set(20+temp[cir],20+temp[cir],cir,cir);
  284.                                                                       LCD_WRITE_DATA(Yellow);
  285.                                                         }
  286.                                                         Delay_ms(300);
  287.                                                         for(cir=0;cir<320;cir++)
  288.                                                         {
  289.                                                                       Address_set(20+temp[cir],20+temp[cir],cir,cir);
  290.                                                                       LCD_WRITE_DATA(Yellow);
  291.                                                         }
  292.                                                         Delay_ms(300);
  293.                                                         for(cir=0;cir<320;cir++)
  294.                                                         {
  295.                                                                       Address_set(20+temp[cir],20+temp[cir],cir,cir);
  296.                                                                       LCD_WRITE_DATA(Yellow);
  297.                                                         }
  298.                                                         Delay_ms(300);
  299.                                                         for(cir=0;cir<320;cir++)
  300.                                                         {
  301.                                                                       Address_set(20+temp[cir],20+temp[cir],cir,cir);
  302.                                                                       LCD_WRITE_DATA(Yellow);
  303.                                                         }
  304.                                                         Delay_ms(300);
  305.                                                         for(cir=0;cir<320;cir++)
  306.                                                         {
  307.                                                                       Address_set(20+temp[cir],20+temp[cir],cir,cir);
  308.                                                                       LCD_WRITE_DATA(Black);
  309.                                                         }

  310.                                           trig++;

  311.                                           if(trig%20==0)
  312.                                           {
  313.                                                         for(wh=22; wh<220 ;wh+=10)
  314.                                                         {
  315.                                                                       LCD_draw_Line(wh,39,White);
  316.                                                                       LCD_draw_Line(wh,79,White);
  317.                                                                       LCD_draw_Line(wh,119,White);
  318.                                                                       LCD_draw_Line(wh,159,White);
  319.                                                                       LCD_draw_Line(wh,199,White);
  320.                                                                       LCD_draw_Line(wh,239,White);
  321.                                                                       LCD_draw_Line(wh,279,White);
  322.                                                         }
  323.                                                         Delay_ms(300);
  324.                                                         for(co=2; co<320 ;co+=10)
  325.                                                         {
  326.                                                                       LCD_draw_Col(69,co,White);
  327.                                                                       LCD_draw_Col(119,co,White);
  328.                                                                       LCD_draw_Col(169,co,White);
  329.                                                         }
  330.                                                         Delay_ms(300);
  331.                                           }
  332.                             }
  333. }
  334. // ADC10 interrupt service routine
  335. #pragma vector=ADC10_VECTOR
  336. __interrupt void ADC10_ISR (void)
  337. {
  338.               __bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 0(SR)
  339. }
  340. #pragma vector=PORT2_VECTOR
  341. __interrupt void Port_2(void)
  342. {
  343.               if(P2IFG & 0x10)
  344.               {
  345.                             while(0x10 & P2IN);
  346.                             will++;
  347.                             if(will==8)
  348.                             {
  349.                                           will=7;
  350.                             }
  351.               }
  352.               if(P2IFG & 0x20)
  353.               {
  354.                             while(0x20 & P2IN);
  355.                             will--;
  356.                             if(will==255)
  357.                             {
  358.                                           will=0;
  359.                             }
  360.               }
  361.               if(P2IFG & 0x08)
  362.               {
  363.                             while(0x08 & P2IN);
  364.                             chan++;
  365.                             if(chan==4)
  366.                                           chan=0;
  367.               }
  368.     P2IFG &= ~0x38;
  369.     P2OUT=will;
  370. }
復(fù)制代碼

完整的Word格式文檔51黑下載地址:
基于MSP430簡易示波器的設(shè)計(jì).doc (222 KB, 下載次數(shù): 40)


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

使用道具 舉報(bào)

無效樓層,該帖已經(jīng)被刪除
沙發(fā)
ID:272534 發(fā)表于 2018-11-13 08:34 | 只看該作者
收藏待用,感謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
中文精品电影| 国产三级按摩推拿按摩| 国产精品入口麻豆完整版| av在线看片| 国产视频久久| 制服丝袜亚洲精品中文字幕| 不卡视频一区| 全黄一级裸体片| 91专区视频| 亚洲一区二区三区在线免费| 国产欧美日本一区视频| 久久久久久国产精品美女| 国产理论在线播放| 亚洲日本香蕉视频| 亚洲永久av| 不卡av免费在线观看| 久久精品成人欧美大片| 亚洲男人天堂色| 天天操天天干天天干| 一区二区三区短视频| 成人av电影免费观看| 精品综合久久久久久97| 亚洲在线观看网站| 国产1区2区| 加勒比久久高清| 亚洲综合男人的天堂| 成人综合国产精品| 九九热久久免费视频| 国产专区中文字幕| 日韩欧美不卡| 欧美人与禽zozo性伦| 性欧美videosex高清少妇| 亚洲图片在线视频| 毛片在线播放a| 国产在线麻豆精品观看| 色噜噜狠狠色综合网图区| 男女视频一区二区三区| 中文字幕在线永久在线视频2020| 国产精品第一国产精品| 国产精品日韩精品欧美在线| 国产美女久久精品| 羞羞在线观看视频| 国产精品视频流白浆免费视频| 日本精品在线一区| 久久夜色精品国产欧美乱极品| 97人人模人人爽人人喊中文字| 亚洲综合中文网| 色的视频在线观看免费播放| 久久99国内| 日本道免费精品一区二区三区| 免费久久一级欧美特大黄| 亚洲大片免费观看| sm国产在线调教视频| 国产乱理伦片在线观看夜一区| 九九精品视频在线| 大黑人交xxx极品hd| 波多野结衣在线中文| 欧美福利网址| 亚洲精品mp4| 亚洲九九九在线观看| 日韩中文字幕二区| 思思99精品视频在线观看| 视频成人永久免费视频| 亚洲成人一区二区| 天堂av一区二区| 国产免费久久久| 在线一区视频观看| 亚洲综合男人的天堂| 麻豆精品传媒视频| 国产手机精品视频| 亚洲免费资源| 日韩欧美国产激情| 强开小嫩苞一区二区三区网站| 黄色国产在线播放| 在线视频1区| 日本不卡一区二区| 欧美精品在线观看| 第一次破处视频| 欧美一区二区三区少妇| 国产剧情av麻豆香蕉精品| 538国产精品视频一区二区| 午夜剧场免费在线观看| 日本视频在线免费观看| 久久综合色婷婷| www 成人av com| 国产精品污视频| 日韩三级久久| 欧美高清视频不卡网| 日韩中文字幕组| 可以在线看的av| 丰乳肥臀在线| wwww国产精品欧美| 国产精品v欧美精品∨日韩| 在线免费观看中文字幕| 欧美性aaa| 日本国产一区二区| 成人毛片视频网站| 高清wwwwxxxx| 日日摸夜夜添夜夜添精品视频| 91黑丝高跟在线| 国产精品白浆一区二小说| 国产福利片在线观看| 亚洲一区二区三区自拍| 久久福利一区二区| 日日摸夜夜夜夜夜添| 伊人影院久久| 久久久爽爽爽美女图片| 久久久久久免费观看| 91福利在线免费| 亚洲五月六月丁香激情| 国产免费裸体视频| 美女被人操网站| 狂野欧美性猛交xxxx巴西| 青草成人免费视频| 波多野结衣电影在线播放| 成人黄色理论片| 欧美一级视频精品观看| 丰满人妻一区二区三区大胸| 亚亚洲欧洲精品| 久久久久亚洲蜜桃| 亚洲国产成人不卡| 国产馆av播放| 久久看片网站| 国产精品99一区| 精品成人a区在线观看| 黑鬼大战白妞高潮喷白浆| 成人伊人222| 韩日欧美一区二区三区| 91欧美激情另类亚洲| 精品二区在线观看| av在线不卡顿| 精品国模在线视频| 免费在线视频一区二区| 亚洲天堂免费电影| 欧美日精品一区视频| 涩多多在线观看| 国产午夜视频在线观看| 最新久久zyz资源站| av高清在线免费观看| 午夜大尺度福利视频| 国产91在线观看| 欧美一区免费视频| 国产精品一区二三区| 久久精品亚洲一区二区| 亚洲综合自拍一区| 久久7799| 老司机免费视频久久| 亚洲一区二区久久久久久| 香蕉视频成人在线| 99成人在线| 91久热免费在线视频| 亚洲色图影院| aa亚洲婷婷| 亚洲一区二区三区四区在线播放| 性xxxxbbbb| 亚洲精品韩国| 成人在线免费观看视视频| 先锋影音av男人站| 香蕉成人久久| 亚洲综合视频1区| 欧美最猛黑人猛交69| 久久香蕉精品| 国内精品二区| 中国xxxx视频播放50| 国产精品白丝av| 在线电影院国产精品| 天天操狠狠操夜夜操| 午夜在线视频播放| 亚洲一区中文日韩| 黄色片久久久久| 999国产在线视频| 欧美日韩人人澡狠狠躁视频| 一级全黄裸体片| 成人免费一区二区三区牛牛| 欧美一区二区三区免费观看视频| 99久久99久久精品免费| 一级欧美视频| 色噜噜狠狠色综合网图区| 精品一区二三区| 亚洲影视一区二区三区| 成人a视频在线观看| 欧美另类黑人巨大videos| 国内外成人在线| 一区在线电影| 福利资源在线久| 亚洲一卡二卡三卡四卡| 日本性生活一级片| 吞精囗交69激情欧美| 国产亚洲精品91在线| 午夜一级黄色片| 亚洲性人人天天夜夜摸| 国产精品区二区三区日本| 黄色网页免费看| 欧美经典一区二区| 日本三级黄色网址| bl在线肉h视频大尺度| 精品国产网站在线观看| 日韩免费黄色片| 天天天综合网| 成人av电影免费| www怡红院| 最新高清无码专区| 妖精视频一区二区| 欧美极品在线| 九九九久久国产免费| 五月婷婷丁香六月| 麻豆传媒一区二区三区| 樱空桃在线播放| 国产三级电影在线| 91精品国产色综合久久不卡电影| 看片网站在线观看| 日韩大片在线播放| 国产成人免费观看| 成人性生交大片免费看视频r| 亚洲激情五月婷婷| 中文字幕免费高| 中文字幕av在线播放| 色悠久久久久综合欧美99| 一区二区三区在线观看免费视频| 菁菁伊人国产精品| 国产精品永久免费观看| 九九热免费视频| 亚洲精品久久久蜜桃| 亚洲精品成人无码| 日韩在线你懂的| 96精品久久久久中文字幕| 天天爽夜夜爽| 粉嫩av一区二区三区免费野| 日韩一区二区不卡视频| 91成人看片| 欧美污视频久久久| 国产在线观看黄| 亚洲国产日韩精品在线| www.五月婷婷| 粉嫩一区二区三区在线看| 亚洲一区在线不卡| 成人午夜sm精品久久久久久久| 国内精品久久久久久久| 91网站观看| 一区二区三区丝袜| 91香蕉视频在线播放| 忘忧草精品久久久久久久高清| 欧美精品中文字幕一区二区| 日韩有码电影| 日韩精品999| 亚洲欧美强伦一区二区| www.66久久| 成人免费网站在线看| 很黄很色的网站| 欧美日韩亚洲系列| 国产亚洲成人av| 亚洲一区二区三区高清| 免费国产黄色网址| 欧洲一级精品| 日本91av在线播放| 一菊综合网成人综合网| 91国产精品成人| 天堂网视频在线| 久久66热re国产| 欧美一级xxxx| 卡通动漫精品一区二区三区| 官网99热精品| 成人在线播放视频| 日韩中文字幕视频| 国产浪潮av性色av小说| 亚洲国产视频网站| 日本五十熟hd丰满| 美女网站视频久久| 91精产国品一二三产区别沈先生| 91成人精品在线| 亚洲精品综合一区二区三区| 国产成人午夜精品影院观看视频 | 美女福利视频在线观看| 99视频精品免费观看| 极品美女扒开粉嫩小泬| 色999韩欧美国产综合俺来也| 国产综合视频在线观看| 亚洲高清国产精品| 伊人久久久久久久久久| 国产丝袜控视频在线观看| 欧美日韩午夜剧场| 中文字幕在线观看精品| 99国产精品一区| 久久视频精品在线观看| 国产精品亚洲欧美| 手机av在线网| 经典一区二区| 四虎4hu永久免费入口| 日韩漫画puputoon| 欧美中文一区二区三区| 蜜臀99久久精品久久久久小说| 韩国欧美一区二区| 波多野结衣加勒比| 欧美激情日韩| 欧美亚洲一二三区| av成人资源| 亚洲欧美日韩不卡一区二区三区| aaa在线播放视频| 国产精品亚洲精品| av小片在线| 97国产suv精品一区二区62| 米奇.777.com| 亚洲系列中文字幕| 狠狠色噜噜狠狠狠888奇米| 日韩一区二区在线观看视频| 日本18中文字幕| 欧美视频中文在线看| www.色视频| 午夜激情一区二区三区| 99精品视频免费看| 亚洲欧美视频在线观看| 午夜精品久久久久久久蜜桃| 久久久久久久久岛国免费| 久久一级黄色片| 不卡电影免费在线播放一区| 黄视频网站免费看| 国产精品中文有码| 91动漫免费网站| 国产乱淫av一区二区三区| 天天摸日日摸狠狠添| 日韩av网站免费在线| 精品黑人一区二区三区观看时间| 夜夜嗨av一区二区三区网站四季av| 99精品视频国产| 精品69视频一区二区三区Q| 999久久久精品视频| 亚洲香蕉网站| 在线观看一区二区三区四区| 亚洲人成久久| 日韩av手机在线播放| 久久午夜影视| 日韩中文字幕a| 国模吧精品人体gogo| 欧美激情视频给我| 黄页免费在线观看| 欧美激情奇米色| 女人天堂在线| 欧美性视频网站| 1769在线观看| 成人黄色中文字幕| 999av小视频在线| 精品福利影视| 日韩欧国产精品一区综合无码| 亚洲精品乱码久久久久久蜜桃91| 日韩激情综合| 久久艹国产精品| 精品国产日韩欧美| 艹b视频在线观看| 亚洲电影在线| 全黄一级裸体片| 成人午夜私人影院| 国产超碰人人爽人人做人人爱| 国产精品国产三级国产有无不卡| 伊人亚洲综合网| 婷婷丁香激情综合| 免费男女羞羞的视频网站中文子暮| 制服.丝袜.亚洲.中文.综合| 特黄三级视频| 在线观看国产欧美| 校园春色欧美| 国产精品揄拍一区二区| 免费h视频在线观看| 欧美午夜精品理论片a级大开眼界| 97成人在线| 亚洲精品高清无码视频| av不卡在线看| 精品在线观看一区| 久久精品视频网| 99久久夜色精品国产亚洲| 在线观看精品一区| 天干天干啦夜天干天2019| 搡老女人一区二区三区视频tv| 天天av综合网| 91精品国产综合久久香蕉最新版 | 很很鲁在线视频播放影院| 亚洲视频免费一区| 李宗瑞系列合集久久| 国产999在线观看| 欧美少妇精品| 热这里只有精品| 日韩中文首页| 熟女人妻在线视频| 不卡的看片网站| 91 中文字幕| 91.com视频| 亚洲jjzzjjzz在线观看| 97视频人免费观看| 国产va在线视频| 日韩精品福利片午夜免费观看| 久久久久久久久久久9不雅视频 | 夜夜爽夜夜操| 美女扒开尿口让男人操亚洲视频网站| 女女色综合影院| 日本精品一区二区三区视频 | 欧美男女视频| 国产在线观看福利| 很黄很色网站| 久久亚洲欧美日韩精品专区| seseavlu视频在线| 久久99精品久久久久久三级|