基于51單片機(jī)的三角波發(fā)生器_第1頁
基于51單片機(jī)的三角波發(fā)生器_第2頁
基于51單片機(jī)的三角波發(fā)生器_第3頁
基于51單片機(jī)的三角波發(fā)生器_第4頁
基于51單片機(jī)的三角波發(fā)生器_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、#包括/振幅05可調(diào)頻率1001000#包括#包括#定義uchar無符號字符#定義uint無符號整數(shù)#定義dac1 _ h x字節(jié)0x 7 fff/1230的高地址#定義dac1 _ l x字節(jié)0x3fff/1230的低位地址,并開始轉(zhuǎn)換sbit cs 7221=p11;/7221芯片選擇sbit din 7221=p10;/7221的數(shù)據(jù)端sbit clk 7221=p12;/7221的時鐘端子uchar DISPBUF8=0,1,2,3,4,5,6,7 ;/顯示緩沖區(qū)斯比特so=p15;/165的數(shù)據(jù)輸出斯比特sh=p14;/轉(zhuǎn)移165的班次結(jié)束斯比特clk=p13;/165的時鐘端子#定

2、義fosc12 /晶體頻率uint idata time0 _ 0/臨時變量,用于計算計時uint time0/定時時間長度uint呂品=100;/默認(rèn)頻率為100位TIME 1=0;/用于計時標(biāo)記比特石開=0;/用于計時標(biāo)記無效延遲(uint n);/延遲子程序初始無效7221(無效);/MAX7221初始化無效WR7221(uchar地址,uchar數(shù)據(jù));/MAX7221編寫程序void max 7221 display(uchar *緩沖區(qū));/MAX7221顯示程序void time 2 ms(void);/定時器0初始化程序void time 0 _ int(void);/定時器0

3、中斷服務(wù)程序無效發(fā)送(uchar高,uchar低);/DAC1230輸出轉(zhuǎn)換開始無效DAC1230(無效);/輸出三角波uchar scankey(無效);/鍵盤掃描無效鍵(void);/鍵盤處理無效顯示(void);/顯示頻率main()initial 7221();/初始化MAX7221max 7221 display(DISPBUF0);/顯示01234567延遲(10000);/延遲disp();/顯示頻率時間2毫秒();/定時器初始化而(1)鍵();/鍵盤處理如果(石開=1)/允許三角波輸出DAC 1230();/輸出三角波無效發(fā)送(uchar高,uchar低)/數(shù)模轉(zhuǎn)換器1230輸

4、出轉(zhuǎn)換開始DAC1_h=(高4)|(低4);/高8位輸出DAC1 _ l=(low 4);/低4位輸出開始轉(zhuǎn)換Void DAC1230(void)/輸出三角波uchar i,k;對于(k=0;k=15K )/上升高字節(jié)的調(diào)整對于(I=0;I=5;I )/低字節(jié)在一個周期內(nèi)調(diào)整16*6=96個輸出發(fā)送(k,I * 51);/DAC1230輸出做;同時(TIME1!=1);/等到時間到了時間1=0;/清除時間標(biāo)記對于(k=0;k=15K )/下降高字節(jié)調(diào)整對于(I=0;I=5;I )/低字節(jié)調(diào)整發(fā)送(15-k,255-I * 51);做;同時(TIME1!=1);/等到時間到了時間1=0;/清除時

5、間標(biāo)記/-掃描鍵盤,當(dāng)沒有按鍵時,返回鍵值i=(0-7) j=0f。uchar scankey(無效)uchar i=0,j=0x0fsh=0;/收集和加載延遲(1);sh=1;/你可以移動延遲(100);對于(I=0;i8;I )/8位密鑰讀取clk=0;/先讀第一個數(shù)字如果(so=0)/如果按下相應(yīng)的鍵,則為0,否則為1返回(I);/返回密鑰號clk=1;/上升沿偏移返回(j);/沒有按鍵時返回0f無效鍵(無效)uchar k;uint pinlv0/臨時頻率號pinlv0=呂品;k=scan key();/讀取關(guān)鍵數(shù)字如果(k=0) /是否按下了頻率調(diào)整按鈕延遲(1000);/延遲去抖k

6、=scan key();如果(k=0) /按下按鈕調(diào)整頻率 do k=scan key(); while(k=0);/等待按鈕被釋放對于(;(k=scan key();添加if(k=1)/延遲(1000);/延遲去抖k=scan key();添加if(k=1)/ do k=scan key();同時(k=1);/等待按鈕被釋放pinlv0當(dāng)頻率超過1000赫茲時,如果(引腳0=1001) /設(shè)置為100pinlv0=100否則,如果(k=2)/減延遲(1000);/延遲去抖k=scan key();如果(k=2)/減 do k=scan key();而(k=2);/等待按鈕被釋放pin LV

7、0-;當(dāng)頻率低于100赫茲時,如果(pinlv0=99) /設(shè)置為1000pinlv0=1000否則,如果(k=3)/確認(rèn)鍵延遲(1000);/延遲去抖k=scan key();如果(k=3)/確認(rèn)鍵 do k=scan key();同時(k=3);/等待按鈕被釋放呂品=pinlv0時間2毫秒();/改變時間、時間和頻率disp();/顯示變化頻率打破;/返回否則,如果(k=4)/取消鍵延遲(1000);/延遲去抖k=scan key();如果(k=4)/取消鍵 do k=scan key();而(k=4);/等待按鈕被釋放打破;/返回否則,如果(k=5)(石開=0)/是否按下了三角波輸出按鈕

8、延遲(1000);/延遲去抖k=scan key();if(k=5) do k=scan key();而(k=5);/等待按鈕被釋放石開=1;/輸出三角波否則,如果(k=6)(石開=1)/停止輸出三角波的按鈕被按下延遲(1000);/延遲去抖k=scan key();if(k=6) do k=scan key();而(k=5);/等待按鈕被釋放石開=0;/停止輸出三角波Void time2ms(void) /T0定時器初始化TMOD=0x 01;/T0工作模式1/*定時設(shè)置*/時間0=1000000/呂品/96;/每次數(shù)模轉(zhuǎn)換的時間時間0 _ 0=65536-時間0 * fosc/12;/計算

9、初始值TH0=(時間0 _ 0/256);/加載定時器0的初始值TL0=(時間0 _ 0% 6);TR0=1;/啟動定時器0ET0=1;/打開定時器0中斷EA=1;/打開總中斷/*定時器0中斷服務(wù)子程序,*/void time0_int(void)中斷1TH0=(時間0 _ 0/256);/重新加載定時器0的初始值TL0=(時間0 _ 0% 6);時間1=1;/標(biāo)志位時間無效延遲(uint n) /延遲程序uint i1,J1;對于(i1=0;i1i)?1:0;/依次從高位置到低位置開始_ nop _();_ nop _();CLK 7221=1;/時鐘高上升邊沿鎖定數(shù)據(jù)_ nop _();_

10、 nop _();對于(I=0;i8;I) /寫入8位數(shù)據(jù)CLK 7221=0;/時鐘低DIN7221=(數(shù)據(jù)(0x80i)?1:0;/依次從高位置到低位置開始_ nop _();_ nop _();CLK 7221=1;/時鐘高上升邊沿鎖定數(shù)據(jù)_ nop _();_ nop _();cs 7221=1;/芯片選擇無效Void Initial7221(void)/MAX7221初始化WR7221(0x0A,0x0A);/亮度地址0AH,0x000x0F,0x0F是最亮的WR7221(0x0B,0x 07);/掃描發(fā)光二極管編號地址0BH,0x000x07,最多掃描8個數(shù)碼管WR7221(0x0C,0x 01);/工作模式地址0x0C.0x003360關(guān)閉;0x01:正常WR7221(0x09,0xff);/編碼模式地址0x09。0x000xFF:哪個位為1,哪個位支持編碼無效max7221顯示(uchar *緩沖區(qū))/max7221顯示子程序uchar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論