<C8051F040.h> 串口例程 TX0線為P0.0,RX0線為P0.1,TX0采用T2為波特率產生源,RX0采用T1為波特率產生源///////
上傳時間: 2013-12-30
上傳用戶:cc1
工業領域串口通信速度慢是個比較突出的問題, 而 F T 2 4 5 B M 能夠進行 US B和并行 I / O口之間的 協議轉換, 在一些條件下能夠取代串口. 介紹 F T 2 4 5 B M 芯片的工作原理和功能, 并給出基于 F T2 4 5 B M 的 US B接口電路的應用設計和基于 8 9 c 5 2的匯編及 c 5 1 單片機源程序.
上傳時間: 2017-05-27
上傳用戶:kytqcool
ex5_1 I-型線性相位FIR濾波器 ex5_2 II-型線性相位FIR濾波器 ex5_3 III-型線性相位FIR濾波器 ex5_4 IV-型線性相位FIR濾波器 ex5_5 矩形窗頻響 ex5_6 希爾伯特變換器設計-漢寧窗 ex5_7 低通濾波器設計-漢明窗 ex5_8 帶通濾波器設計-布萊克曼窗 ex5_9 低通濾波器設計-凱塞窗 ex5_11 頻率采樣技術:低通,樸素法 ex5_12 頻率采樣技術:低通, 最優法T1 & T2 ex5_13 頻率采樣技術:帶通, 最優法T1 & T2 ex5_14 頻率采樣技術:高通, 最優法T1 ex5_15 頻率采樣技術:差分器 ex5_16 頻率采樣技術: 希爾伯特變換器 ex5_17 利用Parks-McClella算法設計低通濾波器 ex5_18 用PM算法進行的帶通濾波器設計 ex5_19 用PM算法進行的高通濾波器設計 ex5_20 用PM算法進行的階梯濾波器設計 ex5_21 用PM算法進行的差分器設計 ex5_22 用PM算法進行的希爾伯特變換器設計
上傳時間: 2017-05-29
上傳用戶:13160677563
樹是由n(n≥0)個結點組成的有限集合T。n=0的樹稱為空樹;對n>0的樹,有:(1)僅有一個特殊的結點稱為根結點,根結點沒有前驅結點;(2)當n>1時,除根結點外其余的結點分為m(m>0)個互不相交的有限集合T1,T2,…,Tm,其中每個集合Ti本身又是一棵結構和樹類似的子樹。
上傳時間: 2014-01-01
上傳用戶:lgnf
Usage: void CRC(int*,int*,int,int) Input: XAR0:coded data(InputData) XAR1:decoded CRC bits(CrcPoly) T0: Length of coded data(CodeOutlen) T1: Length of CRC bits(CrcPolylen) Return: NO Altered Registers: AC0-AC2,T2 Others: 8 bits of AC0 LSB is CRCcheck bit
上傳時間: 2017-06-24
上傳用戶:ywqaxiwang
TRX51 多任務實時操作系統,在AT89C52上成功移植的實例,每個任務都是用counter計數器來表示,比較完整,非常值得學習。本人自己編寫的,由于小弟編程,對ATC89C52的T2定時中斷沒有理解透,所以T2定時中斷有點不成功,希望那位大俠看后,能夠給予指點,互相交流,謝謝,聯系方式:lgp_my@163.com
上傳時間: 2017-07-13
上傳用戶:zhoujunzhen
在MSC-51的定時中T0和T1最常用,但像89s52中的T2卻不怎么會用,本例子用T2實現精確1秒定時。
上傳時間: 2013-12-25
上傳用戶:gundan
實驗目的 通過上機實習,加深對語法制導翻譯原理的理解,掌握將語法分析所識別的語法成分變換為中間代碼的語義翻譯方法. 實驗要求 采用遞歸下降語法制導翻譯法,對算術表達式、賦值語句進行語義分析并生成四元式序列。 實驗的輸入和輸出 輸入是語法分析提供的正確的單詞串,輸出為三地址指令形式的四元式序列。 例如:對于語句串 begin a:=2+3*4 x:=(a+b)/c end# 輸出的三地址指令如下: (1) t1=3*4 (2) T2=2+t1 (3) a=T2 (4) t3=a+b (5) t4=t3/c (6) x=t4
上傳時間: 2017-09-27
上傳用戶:hjshhyy
在本課中,我們要用一個按鍵來實現跑馬燈的 10 級調速。這又會涉及到鍵的去抖的問 題。 本課的試驗結果是,每按一次按鍵,跑馬速度就降低一級,共 10 級。 這里我們又增加了一個變量 speedlever,來保存當前的速度檔次。 在按鍵里的處理中,多了當前檔次的延時值的設置。 請看程序: ―――――――――――――――― #define uchar unsigned char //定義一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一個 52 標準內核的頭文件 sbit P10 = P1^0; //頭文件中沒有定義的 IO 就要自己來定義了 sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit K1= P3^2; bit ldelay=0; //長定時溢出標記,預置是 0 uchar speed=10; //設置一個變量保存默認的跑馬燈的移動速度 uchar speedlever=0; //保存當前的速度檔次 char code dx516[3] _at_ 0x003b;//這是為了仿真設置的 //一個按鍵控制的 10 級變速跑馬燈試驗 void main(void) // 主程序 { uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//預定的寫入 P1 的值 uchar ledi; //用來指示顯示順序 uint n; RCAP2H =0x10; //賦 T2 的預置值 0x1000,溢出 30 次就是 1 秒鐘 RCAP2L =0x00; TR2=1; //啟動定時器 ET2=1; //打開定時器 2 中斷 EA=1; //打開總中斷 while(1) //主程序循環 { if(ldelay) //發現有時間溢出標記,進入處理 { ldelay=0; //清除標記 P1=ledp[ledi]; //讀出一個值送到 P1 口 ledi++; //指向下一個 if(ledi==4) { ledi=0; //到了最后一個燈就換到第一個 } } if(!K1) //如果讀到 K1 為 0 { for(n=0;n<1000;n++); //等待按鍵穩定 while(!K1); //等待按鍵松開 for(n=0;n<1000;n++); //等待按鍵穩定松開 speedlever++; if(speedlever==10)speedlever=0; speed=speedlever*3; //檔次和延時之間的預算法則,也可以用查表方法,做出 不規則的法則 } } } //定時器 2 中斷 timer2() interrupt 5 { static uchar t; TF2=0; t++; if((t==speed)||(t>30)) //比較一個變化的數值,以實現變化的時間溢出,同時限制了最慢速 度為 1 秒 { t=0; ldelay=1;//每次長時間的溢出,就置一個標記,以便主程序處理 } } ―――――――――――――――――――――― 請打開 lesson11 目錄的工程,編譯,運行,看結果: 按 K1,速度則降低一次,總共 10 個檔次。
上傳時間: 2017-11-06
上傳用戶:szcyclone
LED 一般是恒流操作的,如何改變 LED 的亮度呢?答案就是 PWM 控制。在一定的 頻率的方波中,調整高電平和低電平的占空比,即可實現。比如我們用低電平點亮一個 LED 燈,我們假設把一個頻率周期分為 10 個時間等份,如果方波中的高低電平占空比是 9:1, 這是就是一個比較暗的亮度,如果方波中高低電平占空比是 10:0,這時,全部是高電平, 燈是滅的。如果占空比是 5:5,就是一個中間亮度,如果高低比是 1:9,是一個比較亮的 亮度,如果高低是 0:10,這時全部是低電平,就是最亮的。 實際上應用中,電視屏幕墻中的幾十百萬 LED 象素都是這樣控制的,而且每一個象素 都有紅綠藍 3 個 LED,每個 LED 可以變化的亮度是幾百到幾萬或者更多的級別,以實現真 彩色的顯示。還有在您的手機中,背光燈的亮度如果是可以變化的,也應該是這種工作方式。 目前的城市彩燈也有很多都使用了 LED,需要控制亮度是也是 PWM 控制。 下面來分析我們的例程,在這個例程中,我們將定時器 2 溢出定為 1/1200 秒。每 10 次脈沖輸出一個 120HZ 頻率。這每 10 次脈沖再用來控制高低電平的 10 個比值。這樣,在 每個 1/120 秒的方波周期中,我們都可以改變方波的輸出占空比,從而控制 LED 燈的 10 個 級別的亮度。 為什么輸出方波的頻率要 120HZ 這么高?因為如果頻率太低,人眼就會看到閃爍感 覺。一般起碼要在 60HZ 以上才感覺好點,120HZ 就基本上看不到閃爍,只能看到亮度的變 化了。 下面請看程序,程序中有比較多的注釋: ――――――――――――――――――――――― #define uchar unsigned char //定義一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一個 52 標準內核的頭文件 sbit P10 = P1^0; //要控制的 LED 燈 sbit K1= P3^2; //按鍵 K1 uchar scale;//用于保存占空比的輸出 0 的時間份額,總共 10 份 char code dx516[3] _at_ 0x003b;//這是為了仿真設置的 //模擬 PWM 輸出控制燈的 10 個亮度級別 void main(void) // 主程序 { uint n; RCAP2H =0xF3; //賦 T2 的預置值,溢出 1 次是 1/1200 秒鐘 RCAP2L =0x98; TR2=1; //啟動定時器 ET2=1; //打開定時器 2 中斷 EA=1; //打開總中斷 while(1) //程序循環 { ;//主程序在這里就不斷自循環,實際應用中,這里是做主要工作 for(n=0;n<50000;n++); //每過一會兒就自動加一個檔次的亮度 scale++; if(scale==10)scale=0; } } //1/1200 秒定時器 2 中斷 timer2() interrupt 5 { static uchar tt; //tt 用來保存當前時間在一秒中的比例位置 TF2=0; tt++; if(tt==10) //每 1/120 秒整開始輸出低電平 { tt=0; if(scale!=0) //這里加這一句是為了消除滅燈狀態產生的鬼影 P10=0; } if(scale==tt) //按照當前占空比切換輸出高電平 P10=1; } ―――――――――――――――――― 在主程序中,每延時一段時間,就自動換一個占空比,以使亮度自動變化,方便觀察。 編譯,運行,看結果。 可以看到,LED 的亮度以每種亮度 1 秒左右不斷變化,共有 10 個級別。
上傳時間: 2017-11-06
上傳用戶:szcyclone