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

正文內(nèi)容

基于at89c51單片機(jī)的信號發(fā)生器的制作-資料下載頁

2024-12-06 01:24本頁面

【導(dǎo)讀】是一種常用的信號源,廣泛地應(yīng)用于電子電路、自動控制系統(tǒng)和教學(xué)實(shí)驗(yàn)等領(lǐng)域。信號發(fā)生器大部分是函數(shù)信號發(fā)生器,且特殊波形發(fā)生器的價格昂貴。線路簡單、結(jié)構(gòu)緊湊等優(yōu)點(diǎn)。

  

【正文】 競賽單片機(jī)應(yīng)用技能精解 [M].北京 :電子工業(yè)出版社, 2021. [10] 唐繼賢 .51單片機(jī)工程應(yīng)用實(shí)例 [M].北京:北京航空航天大學(xué)出版社, 2021. [11] Tierney, J. Rader, ., and Gold, B. A Digital Frequency Synthesizer, IEEE Transactions on Audio and Electroacoustics AU19:1, March 1971. [12]Goldberg, BarGiora, Digital Techniques in Frequency Synthesis, New York: McGrawHill, 1996. 信號發(fā)生器的制作 22 附錄 1 硬件電路圖 : 附錄 2 程序清單: include define uchar unsigned char define uint unsigned int define DAdata P0 //DA 數(shù)據(jù)端口 sbit DA_S1= P2^0。 // 控制 DAC0832 的 8位輸入寄存器,僅當(dāng)都為 0時,可以輸入數(shù)據(jù) (處于直通狀態(tài) ),否則,輸入將被鎖存 sbit DA_S2= P2^1。 // 控制 DAC0832 的 8位 DAC 寄存器,僅當(dāng)都為 0時,可以輸出數(shù)據(jù) (處于直通狀態(tài) ),否則,輸出將被鎖存 sbit key= P3^2。 uchar wavecount。 //39。抽點(diǎn) 39。計(jì)數(shù) uchar THtemp,TLtemp。//傳遞頻率的中間變量 uchar judge=1。 //在方波輸出函數(shù)中用于簡單判別作用 uchar waveform。 //當(dāng)其為 0、 2 時,分別代表三種波 uchar code freq_unit[3]={10,50,200}。 //三種波的頻率單位 uchar idata wavefreq[3]={1,1,1}。 //給每種波定義一個數(shù)組單元,用于存放單位頻率的個數(shù) 信號發(fā)生器的制作 23 uchar code lcd_hang1[]={Sine Wave Triangle Wave Square Wave Select Wave: press key! }。 uchar idata lcd_hang2[16]={f= Hz }。 uchar code waveTH[]={ 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe}。 uchar code waveTL[]={ 0x06,0x8a,0x10,0x4e,0x78,0x93,0xa8,0xb3,0xbe,0xc6, 0xac,0xde,0x48,0x7a,0x99,0xaf,0xbb,0xc8,0xd0,0xde, 0x88,0x50,0x90,0x32,0x34,0xbe,0x4a,0xa3,0xe5,0x2c}。 //頻率調(diào)整中間值 uchar code triangle_tab[]={ //每隔數(shù)字 8,采取一次 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78, 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,0xff, 0xf8,0xf0,0xe8,0xe0,0xd8,0xd0,0xc8,0xc0,0xb8,0xb0,0xa8,0xa0,0x98,0x90,0x88,0x80, 0x78,0x70,0x68,0x60,0x58,0x50,0x48,0x40,0x38,0x30,0x28,0x20,0x18,0x10,0x08,0x00}。 uchar code sine_tab[256]={ //輸出電壓從 0 到最大值(正弦波 1/4 部分) 0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc, 0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec, 0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, //輸出電壓從最大值到 0(正弦波 1/4 部分) 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef, 0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2, 0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 信號發(fā)生器的制作 24 //輸出電壓從 0 到最小值(正弦波 1/4 部分) 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43, 0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13, 0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, //輸出電壓從最小值到 0(正弦波 1/4 部分) 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10, 0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d, 0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80}。 void delay(uchar z) { uint x,y。 for(x=z。x0。x) for(y=110。y0。y)。 } void triangle_out() //三角波輸出 { DAdata=triangle_tab[wavecount++]。 if(wavecount64) wavecount=0。 DA_S1=0。 //打開 8 位輸入寄存器 DA_S1=1。 //關(guān)閉 8 位輸入寄存器 } void sine_out() //正弦波輸出 { DAdata=sine_tab[wavecount++]。 DA_S1=0。 //打開 8 位輸入寄存器 DA_S1=1。 //關(guān)閉 8 位輸入寄存器 } 信號發(fā)生器的制作 25 void square_out() //方波輸出 { judge=~judge。 if(judge==1) DAdata=0xff。 else DAdata=0x00。 DA_S1=0。 //打開 8 位輸入寄存器 DA_S1=1。 //關(guān)閉 8 位輸入寄存器 } /************1602 液晶的相關(guān)函數(shù) *************/ define lcd_ports P1 sbit rs=P2^2。 sbit rw=P2^3。 sbit lcden=P2^4。 void write_(uchar ) { rs=0。 //置零,表示寫指令 lcden=0。 lcd_ports=。 delay(5)。 lcden=1。 delay(5)。 lcden=0。 } void write_date(uchar date) { rs=1。 //置 1,表示寫數(shù)據(jù)(在指令所指的地方寫數(shù)據(jù)) lcden=0。 lcd_ports=date。 delay(5)。 lcden=1。 delay(5)。 lcden=0。 } 信號發(fā)生器的制作 26 void disp_lcd(uchar addr,uchar *temp1) { uchar num。 write_(addr)。 delay(1)。 for(num=0。num16。num++) { write_date(temp1[num])。 delay(1)。 } } void init_lcd() { lcden=0。 rw=0。 //初始化設(shè)置為零,表示寫數(shù)據(jù) write_(0x38)。 //使液晶顯示點(diǎn)陣,為下面做準(zhǔn)備 write_(0x0c)。 //初始設(shè)置 write_(0x06)。 //初始設(shè)置 write_(0x01)。 //清零 write_(0x80)。 //使指針指向第一行第一格 disp_lcd(0x80,amp。lcd_hang1[3*16])。 //在第一行顯示 disp_lcd(0xc0,amp。lcd_hang1[4*16])。 //在第二行顯示 for(num=0。num16。num++) { write_date(table[num])。 delay(5)。 } write_(0x80+0x40)。 //給指針重新賦值,使之指向第二行第一格 for(num=0。num16。num++) { write_date(table1[num])。 delay(5)。 } */ TMOD=0x01。 //選用定時方式 1 TH0=(6553650000)/256。 //賦初值 信號發(fā)生器的制作 27 TL0=(6553650000)%256。 EA=1。 //開總中斷 ET0=1。 //開定時器中斷 TR0=1。 //啟動定時器 */ } void main() { uchar i=0。 DA_S2=0。 //使 DAC 寄存器處于直通狀態(tài) DAdata=0。 DA_S1=1。 //關(guān)閉 8位輸入寄存器 init_lcd()。 waveform=0。 TMOD=0x01。 //設(shè)置定時器 0 為 16 位工作方式 IT0=1。 //設(shè)置外部中斷 0為下降沿觸發(fā) ET0=1。 //開定時器中斷 EX0=1。 EA=1。 while(1) { } } void timer0() interrupt 1 { TH0=THtemp。 TL0=TLtemp。 if(waveform==0) sine_out()。 else if(waveform==1) triangle_out()。 else if(waveform==2) square_out()。 } void key_int0() interrupt 0 { 信號發(fā)生器的制作 28 uchar k
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1