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

正文內(nèi)容

單片機(jī)c語言學(xué)習(xí)心得-預(yù)覽頁

2024-11-15 23:55 上一頁面

下一頁面
 

【正文】 ,并不需要你用實驗板和仿真器了,直接在你的PC上完成,但是軟件畢竟是軟件,從某個特定的意義上來說是并不能代替硬件的),即使你每天捧著本書,把那本書翻爛,也永遠(yuǎn)學(xué)不會單片機(jī)的!剛接觸單片機(jī)的朋友,看了資料,一定會對以下幾個詞見的比較多,但是具體的概念還是比較模糊,現(xiàn)作如下說明:(1)編程器編程器是用來燒單片機(jī)芯片的,是把HEX或者BIN文件燒到單片機(jī)ROM里的。這樣以來,可以省去了來回插拔芯片帶來的不必要麻煩?,F(xiàn)在想想實在是又氣又笑。如果你能上網(wǎng)通過論壇或者,問題就很快得到解決。比如為了讓單片機(jī)實現(xiàn)某個功能,你可能不知道怎么去寫某個程序。一般只須連接晶體、VCC、GND、RST即可,一般情況下,AT89C51的31腳須接高電平。void main(void){while(1){P1_0 = 0。類似與C語言中的賦值語句,即把 0 賦給單片機(jī)的P1_0引腳,讓它輸出相應(yīng)的電平。這里就不再講了。硬件連接,在P1_1P1_7上再接7個LED即可。sbit P1_3 = P1 ^ 3。sbit P1_7 = P1 ^ 7。i++)。Delay(250)。P1_1 = 1。P1_3 = 0。Delay(250)。P1_5 = 1。P1_7 = 0。main函數(shù)調(diào)用Delay()函數(shù)。函數(shù)unsigned char _crol_(unsigned char a, unsigned char n)可以使變量a循環(huán)左移n位,如果我們先給P1口賦0000 0001那么當(dāng)n為1時,便會產(chǎn)生和上面一樣的效果!includeincludevoid Delay(unsigned char a){unsigned char i。}}void main(void){unsigned char b, i。i++){P1 = char _crol_(b, 1)。流水燈的花樣很多,我還寫過那種拉幕式的流動等,程序很簡單,有興趣的朋友,可以自己試著寫寫!對了,講了那么多,有些朋友一定還不知道編譯軟件怎么用?這里給大家介紹幾個吧?WAVE(偉福)大家一定聽說過吧!還有一個就是KEIL2,我用的就是KEIL2,下面就來講講如何使用KEIL2這個編譯軟件!,這個應(yīng)該不用再講了吧!,啟動KEIL軟件左擊ProjectNew Project輸入文件名選擇我們所以使用的芯片(這里我們一般用到Atmel的AT89C51或AT89C2051,點確定。Source Group 139。Target 139。//載入高8位初值。//設(shè)置定時器0 工作方式0TH0 =(655365000)% 256。產(chǎn)生中斷后,我們怎么處理呢?嘿嘿!仔細(xì)想想?^_^ 每次中斷后,我們可以讓一個變量自加1,那么200次中斷后,不就是1秒的時間了嗎?比起上面我們說的延時來出來是不是更加精確多了呢?那是肯定的!但是想想1秒種的時間就讓單片機(jī)產(chǎn)生那么多次的中斷,單片機(jī)會不會累著呢?恩,那么不好。unsigned char SEG_TAB_B[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。j 125。Delay(5)。Delay(5)。Delay(5)。Delay(5)。Delay(5)。Delay(5)。if(count == M){count = 0。if(min == 60){hou++。TH0 = HI。EA = 1。中斷和定時/記數(shù)器器,是個很重要的東西,幾乎用到單片機(jī)的地方都會涉及到中斷和定時!所以大家要好好掌握哦!^_^哈哈,趕緊編譯HEX文件,搭好硬件,燒入單片機(jī),上電看看效果先!呵呵,現(xiàn)在你應(yīng)該有成就感了吧,想不到一個時鐘居然那么簡單,嘿嘿!但是問題來了!時鐘雖然做出來了,但是他的精度怎么樣呢?一兩個小時,或許看不出什么誤差,但是一天或者一年呢?暈,我的天呀,要是按年來算的話,那這個時鐘根本沒有實用價值!人家都說用C寫不出,精度高的時鐘程序來的?。∈遣皇怯悬c后悔了,去學(xué)匯編吧!但是既然選擇了C,那么就不要后悔!嘿嘿,想想C的高級語言,怎么會輸給匯編呢 ^_^ 呵呵!看下面這段代碼:static unsigned char count = 0。TR0 = 1。先關(guān)閉定時器T0,然后重新給TH0和TL0 賦值,再開啟 TR0 = 1。} 來彌補(bǔ)!這樣可能會出現(xiàn)這樣的現(xiàn)象:秒直接跳變!我們可以再通過細(xì)分來實現(xiàn),不要10小時那么大,小些的就行!具體的操作還是留給朋友們吧?。ㄆ撸┻@回我們來講講鍵盤,大家肯定見過銀行柜員機(jī)吧,取錢輸入密碼就要用到鍵盤,超市購物取回寄存物品要輸入密碼,還有你現(xiàn)在在用的PC機(jī)的鍵盤。//0到F的16個鍵植/******************************************************************************/ void Delayt(unsigned char t)//延時函數(shù) {unsigned char i。if(P1!=0xf0){Delayt(25)。}/******************************************************************************/ void main(void)//主函數(shù) {unsigned char key,j,k,s。j{s=P1amp。case 0xd0: key=4*j+1。case 0x70: key=4*j+3。}//for}//if//if((P1amp。}//while }還有一種就是線反轉(zhuǎn)法,實現(xiàn)如下:,把列線置低電平,行置高,讀行狀態(tài) ,把行置低,列置高,讀列狀態(tài),則為2次所讀狀態(tài)的結(jié)果即為鍵所在的位置,這樣2次輸出和2次讀入可以完成鍵的識別!!子函數(shù)如下:unsigned char key_vscan(void){unsigned char row, col。row = rowamp。0x0F。}下面我們再來介紹介紹一鍵多能的程序,即按下一個鍵,可以執(zhí)行不同的命令!void main(void){unsigned char b = 0。}while(P3_2 == 0)。//..............add your code here!}} }(八)/ /以上的文字寫于2005年5月,由于時間關(guān)系,一直未能將此完成,最近閑著無聊又接著寫了些文字,以下寫于2006年6月5日!在這里我想對上面一點,作個簡單的說明,如果你是剛學(xué)單片機(jī),那么你寫的代碼是VERY GOOD的,但是如果把上面的代碼應(yīng)用于產(chǎn)品的話,那么我可以告訴你,上面所寫的按鍵識別代碼全部是垃圾代碼,^_^,這下傻了吧,呵呵。有什么辦法嗎?呵呵,那是肯定的。void Delay(unsigned char Delaytime)// { while(Delaytime!=0)。EX2:define Press_key = P2 ^ 7。amp。}void Timer0_interrupt(void)interrupt 1 using 2 { P_key()。這是對我寫怎么多文字最好的回答。第五篇:單片機(jī)C語言學(xué)習(xí)單片機(jī)C語言之一___________________________________________________________________ _____________________ 預(yù)處理 一》宏定義:不帶參數(shù):define 標(biāo)識符 常量表達(dá)式/*define是宏定義命令,宏名(標(biāo)識符)好習(xí)慣用大寫*/ define NIL 0x80帶參數(shù):/*相當(dāng)于小函數(shù)*/ define 宏名(參數(shù)表)字符串/*不僅要時行字任串替換還要進(jìn)行參數(shù)的替換,在宏定義時,宏名與帶參數(shù)的括弧之間不應(yīng)該加空格,否則將空格以后的字符串都作為替代字符串的一部分,這可是很容易出錯的*/ 如:define SQ(a,b)a*b 使用:x=12。*/ if、elif、else、endif、ifdef、ifndef /*選擇不同的編譯范圍,產(chǎn)生不同的代碼,提供通用性。sbit P0_1=P0^1。 ┃ | ┃ ^ ┃ ━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━━━━╋━━━━━━按位取反┃ 按位與 ┃ 按位或 ┃ 按位異或 ┃ 左移 ┃ 右移━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━━━━┻━━━━━━對移位:如邏輯表達(dá)式? 表達(dá)式1:表達(dá)式2 六》指針與地址運(yùn)算符: *取內(nèi)容 amp。TH0=(1000/256)。TMOD=0X01。ET0=1。(, 恢復(fù)浮點寄存器的狀態(tài)函數(shù)為fprestore)如果在中斷函數(shù)中調(diào)用了其他函數(shù),則被調(diào)函數(shù)所使用的工作寄存器組與中斷函數(shù)的一致!*/單片機(jī)C語言之四_____________________________________________________________________________________一、局部變量與全局變量(外部變量):全局變量若不在開頭定義則加extern全局變量會使代碼長,占用內(nèi)存多二、存儲方式:自動變量(auto):缺省,函數(shù)調(diào)用存在,退出消失。通常只給編譯器一個建議,由編譯器根 據(jù)實際情況確定。temp=1。return(temp)。}利用存儲器混合模式編程,充分利用有限的存儲空間,還可加快程序的執(zhí)行速度!單片機(jī)C語言之五_____________________________________________________________________________________ 數(shù)組 1初始化數(shù)組: unsigned char a[5]={0x11,0x22,0x33,0x44,0x55} 或unsigned char a[ ] ={0x11,0x22,0x33,0x44,0x55,0x66} 3數(shù)組作為函數(shù)的參數(shù):不但可以由變量作為函數(shù)的參數(shù)外,還可以用數(shù)組名作為函數(shù)的參數(shù)。見下圖:a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 起始地址1000 b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] b[8] b[9] 用數(shù)組名作為函數(shù)的參數(shù),應(yīng)該在主調(diào)函數(shù)和被調(diào)函數(shù)中分別進(jìn)行數(shù)組定義而不能只在一方定義數(shù)組。定義型參數(shù)組時可以不指定長度,只在數(shù)組名后面跟一個方括號[]。{ int I。float pot_2[3]={11,22,}。我在實際應(yīng)用中采用8535對32路數(shù)據(jù)進(jìn)行采集(8535帶10位AD,帶看門狗),發(fā)現(xiàn)數(shù)據(jù)跳動有時達(dá)7%%,這是由于各種干擾造成的。在實際中我們采用每路猜9個值,排序,取中間3個,求平均。char xdata *address。在中斷服務(wù)函數(shù)int1()中通過temp=*ADC和*ADCdata=temp。/*定義ADC0809數(shù)據(jù)緩沖器指針*/ unsigned char I。/* ADC0809有8個模擬輸入通道*/ EA=1。/*啟動ADC0809*/ WHILE(I)。/*結(jié)果值存到數(shù)據(jù)緩沖區(qū)*/ ADCdata++。/*定義ADC0809端口地址*/ define ADCdata 0X1000 /*定義數(shù)據(jù)緩沖器地址*/ unsigned char I。it1=1。tmp=XBYTE[ADC]。/*啟動下一個模擬輸入通道A/D轉(zhuǎn)換*/ } 兩指針相減計算字符串的長度 include main(){char *s=”abcdef”。while(*p!=’’)p++。Void
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1