freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)字式相位差測量系統(tǒng)基于51單片機(jī)資料(文件)

2025-07-10 14:41 上一頁面

下一頁面
 

【正文】 至此,一個N點的離散傅里葉變換就被分解成了兩個點的離散傅里葉變換(DFT),依此類推,兩個點的DFT變換可以分解成四個點的DFT變換,最終可以分解成個兩點的DFT變換。以1024點的傅里葉變換為例,DFT算法需要消耗=1048576次復(fù)數(shù)乘法運算,需要消耗次復(fù)數(shù)加減法運算。而位倒序數(shù)的下面一個數(shù)是上面一個數(shù)最高位加1并向低位進(jìn)位得到的。 冒泡排序法實現(xiàn)冒泡排序法(Bubble sort)是計算機(jī)科學(xué)領(lǐng)域比較簡單的一種排序方法,它重復(fù)走訪要排列的序列,一次比較兩個序列,如果它們順序錯誤,就把它們交換過來,走訪數(shù)列的工作重復(fù)進(jìn)行,直到?jīng)]有可以交換的序列為止,也就是說該數(shù)列已經(jīng)排序完成,其C語言函數(shù)原型為void Bubble(int *value,uint num),形參int *value是待排序的整數(shù)序列,uint num是待排序的整數(shù)個數(shù)。上電復(fù)位后P1口為弱上拉型I/O口,用戶還可以通過軟件設(shè)置將任何一路設(shè)置為AD轉(zhuǎn)換,不需作為AD轉(zhuǎn)換的口可繼續(xù)做IO口使用。例如:,其他的作為普通IO口,則將P1ASF設(shè)置為0X01。首先,通過CH0:CH2可以選擇AD轉(zhuǎn)換的通道。AD的轉(zhuǎn)換精度可配置成10位或者8位,默認(rèn)為 10位,8位轉(zhuǎn)換精度太低,所以我們直接使用默認(rèn)的10位精度,增加兩位精度對轉(zhuǎn)換速率影響并不大。圖3 ADC轉(zhuǎn)換模塊的構(gòu)成示意圖 定時器的使用STC12C5A60S2單片機(jī)與89C51單片機(jī)的定時器類似,不同的是它的定時器時鐘信號可以是是單片機(jī)的震蕩周期,也可以是其12分頻(與普通的89C51單片機(jī)相同),在本設(shè)計中采用定時器0,使其工作在方式1,時鐘信號為震蕩周期的12分頻。當(dāng)RS=1,RW=0時,12864認(rèn)為當(dāng)前寫入的是數(shù)據(jù),數(shù)據(jù)寫入以后,通過IO口操作,在EN引腳產(chǎn)生一個上升沿來告訴12864數(shù)據(jù)已經(jīng)發(fā)出,讓12864采樣當(dāng)前接口的數(shù)據(jù)。通過一定的算法,可以將在屏幕的固定區(qū)域?qū)懭胱址蛯懭胱址@兩個功能封裝,得到兩個函數(shù)原型如下:void display_12864(uchar x,uchar y,uchar *str)void dischar_12864(uchar x,uchar y,uchar zifu)圖4 12864液晶屏漢字區(qū)分布示意圖 軟件設(shè)計部分總結(jié)可移植性一直是評價程序好壞的一個很重要的標(biāo)準(zhǔn),該項目所用到的三個算法全部由個人完成,在算法復(fù)雜度盡可能低的情況下,把算法的可移植性做好。電壓跟隨器可以采用集成運放,也可以采用三極管構(gòu)成的共集放大電路,考慮到現(xiàn)在的集成運放價格非常低,所以這兩種方法的成本是差不多的,顯然,采用集成運放構(gòu)成的電壓跟隨器具有更高的穩(wěn)定性,所以在本設(shè)計中采用了集成運算放大器構(gòu)成的電壓跟隨器作為移相電路和加法電路的隔離電路。 實用電路設(shè)計由于STC12C5A60S2單片機(jī)的片內(nèi)AD只能測05V的模擬信號,所以如果直接把信號接到單片機(jī)的AD輸入通道上,信號負(fù)半波是測不到的,所以考慮先把該交流信號與一個直流信號相加,使得該正弦信號的電壓值在任何時刻都大于0,再用單片機(jī)AD進(jìn)行采樣,最終結(jié)果在減去直流信號。通過集成運放的虛短和虛斷效應(yīng)可以推導(dǎo)出輸出信號與輸入信號的關(guān)系為 其中, ,將圖中數(shù)據(jù)帶入公式可得圖6 加法器電路圖 電源電路 電源電路由變壓器,單相全橋整流電路,濾波電路和穩(wěn)壓模塊構(gòu)成,首先通過變壓器將220V交流電編程12V交流電,然后利用單相全橋整流電路將交流信號整成直流信號,再通過濾波電路,利用電容的充放電使得電壓信號波動較小,最后通過穩(wěn)壓芯片輸出穩(wěn)定的電壓信號。 單相全橋整流電路圖7 單相全波整流電路橋式整流電路的工作原理如圖11所示。 這樣就在負(fù)載RL上得到一個與全波整流相同的電壓波形,其電流的計算與全波整流相同,即    如果想要提高測量精度,可以換更高端的MCU或者擴(kuò)展存儲器,采用128或者256點的FFT運算,可以大大提高相位差測量的精度。 while (n) { x = 5000。 //清除結(jié)果寄存器 ADC_CONTR = ADC_POWER | ADC_SPEEDHH。 _nop_()。 while (!(ADC_CONTR amp。 //Close ADC adcresult=ADC_RES*4+(ADC_RESLamp。 while(n) { x=0。 while(x)。 LCD_RS = 0。 delay5us(12)。 return(result)。 LCD_RW = 0。 P0 = cmd。 //NOP()。 *//* *//*******************************************************************/void lcd_wdat(uchar dat){ while(lcd_busy())。 P0 = dat。 //NOP()。 //并口方式 LCD_RST = 0。 lcd_wcmd(0x34)。 lcd_wcmd(0x0C)。}/********************************************************** ** 圖形顯示 ** **********************************************************/void photodisplay(uchar *bmp) { uchar i,j。i++) { lcd_wcmd(0x80+i)。j++) //再寫入兩個8位元的數(shù)據(jù) lcd_wdat(*bmp++)。i++) { lcd_wcmd(0x80+i)。j++) lcd_wdat(*bmp++)。 delayms_12864(400)。 delayms_12864(400)。 delayms_12864(200)。 delayms_12864(5)。 //基本指令操作 delayms_12864(5)。 if (X==1) {X=0x80。} pos = X+Y 。\039。 //液晶讀/寫控制sbit LCD_EN = P2^2。void delayms_12864(uint n)。void lcd12864_init()。void lcd_pos(uchar X,uchar Y)。int xdata advalue[FFT_N]。//待進(jìn)行FFT運算的數(shù)據(jù) struct px xdata s2[FFT_N]。 return c。 shi=value%100/10。.39。}void daoxufun(struct px *value,int num)//FFT運算倒序函數(shù){uint i,k,j=0。i++) { if(ij) {t=value[j]。 while(k=j) {j=jk。// uint l=0。//控制不同蝶形結(jié)計算 uint j=0。// struct px w。l++)。//旋轉(zhuǎn)因子相同的蝶形結(jié)之間的距離 lei=le/2。// =sin(PI/lei)。jnum1。 value[ip].imag=value[j].。//改變旋轉(zhuǎn)因子 } } }void Bubble(int *value,uint num)//冒跑排序法{uint i,j。i++) {for(j=i+1。 value[i]=t。 EX1=1。 ET0=1。 uchar xdata n。 display_12864(1,2,通道1)。 display_12864(4,0,二次:)。 for(n=0。 max1=advalue[0]。n32。 min2=advalue[31]。n++) {s1[n].real=s1[n].realzhongzhi1。n++) {s2[n].real=s2[n].realzhongzhi2。 daoxufun(s2,32)。n++) advalue[n]=sqrt(s1[n].real*s1[n].real+s1[n].imag*s1[n].imag)/16。 delayms_12864(50)。n3。 disfigure(3,6,fabs(advalue[1]*))。 EA=1。 TL0=(65536625)%256。 } else {flag=1。 二:硬件原理圖及PCB圖 s2[sum].real=GetADCResult(1)。 } } }void isr_timer0() interrupt 1{ static int sum=0。 disfigure(4,6,fabs(advalue[2]*))。 disfigure(2,6,fabs(advalue[0]*))。 delayms_12864(50)。 delayms_12864(50)。 for(n=0。 } daoxufun(s1,32)。 } for(n=0。 for(n=0。 Bubble(advalue,32)。 zhongzhi1=(max1+min1)/2。n++) advalue[n]=s1[n].real。//開定時器 EA=1。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1