|
1. Nokia5110顯示屏顯示波形 , U8GLIB_PCD8544 u8g(3, 4, 99, 5, 6); // SPI Com: SCK = 3, MOSI = 4, CS = 永遠(yuǎn)接地, dc = 5, Reset = 6
2. A0信號(hào)輸入。
3. D9輸出自帶10khz方波信號(hào),D9與A0相接可以自測(cè)方波波形。
4. Buffer[x] = 47-(Buffer[x]>>2); //計(jì)算縱坐標(biāo)值47大小可以改變水平軸上下移動(dòng)
5. ADC.H庫(kù)和u8glib庫(kù)附件
Arduino源程序如下:
- #include <U8glib.h> //聲明庫(kù)
- #include<ADC.h>
- //Nokia5110示波器演示
- U8GLIB_PCD8544 u8g(3, 4, 99, 5, 6); // SPI Com: SCK = 3, MOSI = 4, CS = 永遠(yuǎn)接地, dc = 5, Reset = 6
- int Input = A0; //聲明輸入引腳
- int x,y; //繪點(diǎn)坐標(biāo)
- float Vpp;
- int Buffer[84]; //緩存值儲(chǔ)存數(shù)組
- int Buf,Bu;
- void setup( )
- {
- ADMUX=0xe0; //測(cè)量通道0
- ADCSRA=0xe2;
- u8g.setFont(u8g_font_5x7);
- u8g.firstPage();
- analogReference(INTERNAL); //ADC使用單片機(jī)內(nèi)部1.1V基準(zhǔn)
- u8g.setContrast(110);//設(shè)置對(duì)比度0-255
-
- // 下面的等值于 OC1A = 輸出用于定時(shí)器1的CTC模式
- pinMode(9, OUTPUT); // 設(shè)置默認(rèn)關(guān)聯(lián)了D9(查表得知)為輸出,方波輸出A10
- TCCR1B=0; // 只是個(gè)復(fù)位的習(xí)慣可以不要
- TCCR1A=_BV(COM1A0); // 要是困擾的話你也可以寫(xiě)成 TCCR1A = 0b01000000;
- //這里和上一個(gè)表示了 = CTC 模式, 開(kāi)啟比較器(默認(rèn)輸出), prescaler = 1
- TCCR1B = _BV(WGM12)|_BV(CS10) ; // 這里等值于 TCCR1B = 0b00001001;
- // 最有意思的了,16位的玩意來(lái)確定要一個(gè)怎樣的頻率
- OCR1A = 800; // 計(jì)算為:F_CPU/2/Need_HZ-1 來(lái)得到你想要的,遺憾的是四舍五入來(lái)截取頻率800相當(dāng)于10khz
- }
- //采樣
- void sample( )
- {
- for(x = 0;x < 84;x++)
- // Buffer[x] = analogRead(A0); //信號(hào)采樣
- // Buf= analogRead(A1);
- // Buf = ADCH;
- Buffer[x] = ADC_8bit(0);//0表示A0輸入
- for(x = 0;x < 84;x++)
- Buffer[x] = 47-(Buffer[x]>>2); //計(jì)算縱坐標(biāo)值47大小可以改變水平軸上下移動(dòng)
- }
- //顯示
- void draw( )
- {
- for(x = 0;x < 83;x++)
-
- /* u8g.drawStr(40,7,"V");
- u8g.setPrintPos(10,7);
- u8g.print(Buf);
- u8g.setPrintPos(10,15);
- u8g.print(Bu);*/
-
- for(x = 0;x < 83;x++)
- for(x = 0;x < 83;x++)
- u8g.drawLine(x,Buffer[x],x,Buffer[x+1]); //畫(huà)相鄰兩點(diǎn)連線
-
- for(x = 0;x < 83;x++)
- u8g.drawLine(42,0,42,47); // 畫(huà)x坐標(biāo)軸
- u8g.drawLine(0,24,84,24); // 畫(huà)y坐標(biāo)軸
- for(x=2;x<84;x+=8) //畫(huà)x坐標(biāo)軸刻度
- u8g.drawLine(x,23,x,25);
- for(x=0;x<48;x+=8) //畫(huà)y坐標(biāo)軸刻度
- u8g.drawLine(41,x,43,x);
- u8g.drawFrame(0,0,84,48); //畫(huà)邊框
-
- }
- void loop( )
- {
- sample(); //采樣
- u8g.firstPage(); //清屏
- do draw( ); //顯示
- while( u8g.nextPage( ));
- }
復(fù)制代碼
所有資料51hei提供下載:
ADC_8bit_1_.rar
(1.46 KB, 下載次數(shù): 27)
2019-5-19 14:58 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
ADC.rar
(969 Bytes, 下載次數(shù): 29)
2019-5-19 15:01 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
U8Glib.7z
(550.41 KB, 下載次數(shù): 13)
2019-5-20 01:28 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|