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

正文內(nèi)容

單片機(jī)c語言學(xué)習(xí)心得(存儲(chǔ)版)

2024-10-21 08:15上一頁面

下一頁面
  

【正文】 這么一個(gè)工具。我花了160大樣買了個(gè)編程器(很不幸的是,這個(gè)編程器更本用不了,一燒芯片,芯片就燒壞了)把我給氣的,這個(gè)編程器,現(xiàn)在還躺在我的抽屜里呢不過,現(xiàn)在想想,唯一讓我覺得欣慰的是,那個(gè)老板每次能解答我的問題,連那種超級(jí)幼稚的問題,他也能不嫌麻煩地盡量幫我解答!這點(diǎn)讓我很感動(dòng)!第三,想學(xué)單片機(jī)的必需品PC?;蚴悄憧炊速Y料上某個(gè)相似的程序,你自己卻寫不出來。//低電平有效,如果把LED反過來接那么就是高電平有效}}就那么簡(jiǎn)單,我們就把接在單片機(jī)P1_0上的LED點(diǎn)亮了,當(dāng)然LED是低電平,才能點(diǎn)亮。點(diǎn)亮了幾個(gè)LED后,是不是讓我們聯(lián)想到了繁華的街區(qū)上流動(dòng)的彩燈。sbit P1_4 = P1 ^ 4。//一個(gè)。P1_2 = 0。P1_4 = 1。Delay(250)。while(a!= 0){for(i = 0。b = P1。,關(guān)閉對(duì)話框。若在12M晶體下,定時(shí)5000微秒,即為5毫秒;但是如果不是在12M下,那又該怎么計(jì)算了呢??還記不記得,我們前面講過的機(jī)器周期和時(shí)鐘周期的概念? ^_^忘了,還是看看前面吧!呵呵!沒事,學(xué)習(xí)嘛,忘了再翻翻書,看看就可以了!其實(shí)上訴的5000 = 1 * C 很顯然C=5000,那么5000 = * C,則C就為5000 / = ? 具體多少,大家自己去算算吧?同理TL0也是一樣的!但是,細(xì)心的朋友會(huì)發(fā)現(xiàn)網(wǎng)上或者是資料上的TH0,TL0并不是和上面一樣的,而是直接TH0 = 0XEC;TL0 = 0X78 是不是和上面的一樣的,別忘了單片機(jī)也是計(jì)算機(jī)的一種哦。如果在12M的晶體下,?那么我們讓他每50毫秒中斷一次好了!這樣我們就20次搞定一秒的時(shí)間了!j++)。P2_1 = 0。P2_3 = 0。P2_5 = 0。min = 0。}/******************************************************************************************/ void main(void)//主函數(shù) {Timer0Init()。count++。但是鍵盤的是怎么工作的呢?一般有2種方式:(1)掃描法,不斷掃描鍵盤的狀態(tài),送CPU判斷并處理。if(P1!=0xf0)return 1。0xf0。break。P1 = 0xF0。col = colamp。//等待鍵松開}}switch(b){case 1: P2_0 = 0xFE。解決方法大致有如下2種:,在中斷里查詢延時(shí)的標(biāo)志位。//定義按鍵的I/Ovoid P_key(void){ char new_value,old_value。//...add your other code }當(dāng)然在實(shí)際過程當(dāng)中,并不是如此簡(jiǎn)單簡(jiǎn)潔的,還希望大家能夠舉一反三哦...^_^。y=10。/*將P0口的口地址定義為80H,*/ 二》數(shù)據(jù)存貯類型━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━ 數(shù)據(jù)存貯類型 ┃ 與存貯空間的對(duì)應(yīng)關(guān)系━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━ data ┃ 直接尋址片內(nèi)數(shù)據(jù)存貯區(qū),訪速度快 bdata ┃ 可位尋址片內(nèi)數(shù)據(jù)存貯區(qū),允許位與字節(jié)混合訪問 idata ┃ 間接尋址片內(nèi)數(shù)據(jù)存貯區(qū),可訪問片內(nèi)全部RAM地址空間pdata ┃ 分頁尋址片外數(shù)據(jù)存貯區(qū)(256字節(jié))由MOVX R0訪問 xdata ┃ 片外數(shù)據(jù)存貯區(qū)(64K),由MOVX DPTR訪問 code ┃ 代碼存貯區(qū)(64K),由MOVC DPTR訪問━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━ 變量的存貯類型定義: char data var /*字符變量var被定義為data存貯類型,C51編譯器將把該變量定位在51單片機(jī)片內(nèi)數(shù)據(jù)區(qū)存貯區(qū)中*/ bit bdata flag /*位變量flag被定義為bdata存貯類型,C51編譯器將把該變量定位在51單片機(jī)片內(nèi)數(shù)據(jù)區(qū)存貯區(qū)(RAM)中的位尋址區(qū):20H2FH*/三》typedef:重新定義數(shù)據(jù)類型typedef 已有數(shù)據(jù)類型 新的數(shù)據(jù)類型 typedef int word。TL0=(1000%256)。TR0=1。(見下)變量 全局變量(global): 外部變量靜態(tài)變量(static): 寄存器變量例: include int_power(m,e)int m。} main(){ ?? }三、函數(shù)的參數(shù)和局部變量的存儲(chǔ)器模式: 三種存儲(chǔ)器模式:small,pact, small:內(nèi)部ram pact, large:外部RAM 函數(shù)類型 函數(shù)名(形式參數(shù)表)[存儲(chǔ)器模式] 例:pragma large /*默認(rèn)存儲(chǔ)器模式為large*/ extern int calc(char I,int b)small。而且在兩個(gè)函數(shù)中定義的數(shù)組類型必須一致,如果類型不一致將導(dǎo)致編譯出錯(cuò)。float aver,sum=array[0]。主要來自于隨機(jī)干擾,下面就各種干擾的方法給出簡(jiǎn)單的去除方法:白噪聲:最重要的統(tǒng)計(jì)特性為平均值為0,可采取每路數(shù)據(jù)采集幾次求平均的方法;隨機(jī)干擾:該點(diǎn)明顯高于或低于附近正常采樣值,故采取中值濾波法,即對(duì)被測(cè)信號(hào)連續(xù)采樣M次,進(jìn)行大小排序,取大小居中的1/3個(gè)采樣值進(jìn)行算術(shù)平均;電源干擾:特點(diǎn)是有固定周期,故可采用定時(shí)采樣求平均的方法。ADC0809具有8個(gè)模擬量輸入通道,采用中斷方式,在中斷函數(shù)中讀取8個(gè)通道的A/D轉(zhuǎn)換值,分別存儲(chǔ)在外部RAM的1000H~1007H單元。void main(){ ADC=0x00f0。/*等待8個(gè)通道A/D轉(zhuǎn)換完*/ } void int1()interrupt 2 { unsigned char tmp。void main(){ I=8。/*讀取A/D轉(zhuǎn)換結(jié)果*/ i。return(ps)。} int strlen(char *s){ char *p=s。/*等待8個(gè)通道轉(zhuǎn)換完畢*/ } void int1()interrupt2 { unsigned char tmp。/*啟動(dòng)下一個(gè)模擬輸入通道A/D轉(zhuǎn)換*/ } 除了用指針變量來實(shí)現(xiàn)對(duì)內(nèi)存地址的直接操作外,c51編譯器還提供一組宏,該宏定義文件為:“”,利用它可十分方便地實(shí)現(xiàn)對(duì)任何內(nèi)存空間的直接操作,改寫上面的程序: include include /*包含絕對(duì)地址操作預(yù)定義頭文件*/ define ADC 0x00f0。/*開中斷*/ *ADC=I。/*定義ADC0809端口指針*/ unsigned int xdata *ADCdata。因此為指針選擇存貯器的方法可以省掉,以這些指針的長(zhǎng)度可為1個(gè)字節(jié)(idata *,data *,pdata *)或2個(gè)這節(jié)(code *,xdata *)。}單片機(jī)C語言之六_____________________________________________________________________________________ 軟件法去干擾:工程上我們?cè)诓杉瘮?shù)據(jù)時(shí)一般要求精度達(dá)到5%%,大于這個(gè)值將認(rèn)為無效。float array[ ]。將實(shí)際參數(shù)數(shù)組首地址傳遞給被調(diào)函數(shù)中的形式參數(shù)數(shù)組,這樣一來兩個(gè)數(shù)組就占有同一段內(nèi)存單元。e)temp*=m。寄存器變量(register):速度最快。EA=1。void timer0(void)interrupt 1 using 1{ P1_0=!P1_0。myv!=1)/*假定其值必為0或1*/ error myv must be 1 or 0/*出錯(cuò)時(shí)顯示*/ endifpragma:用于在程序中向編譯器傳送各種編譯控制命令 pragma 編譯命令序列/*例: c51 debug cod large可用:*/pragma DB CD LA pragma disable /*禁止中斷*/單片機(jī)C語言之二_____________________________________________________________________________________ 一》數(shù)據(jù)類型:char int long 1:unsinged 0~255 0~65535 0~4294967295 2:signed128~12732768~327672147483648~2147483647 指針:* 3字節(jié) 位標(biāo)量: sbit 特殊功能寄存器:sfr 16位特殊功能寄存器:sfr16 占2個(gè)內(nèi)存單元,0~65535 可尋址位:sbit利用他可訪問51單片機(jī)的內(nèi)部RAM中的可尋址位或特殊功能寄存器中的可尋址位 sfr P0=0x80。當(dāng)然單片機(jī)和外部其他的芯片還有很多,比如數(shù)字溫度傳感器DS18B20,實(shí)時(shí)時(shí)鐘芯片DS1302,還有比如訪問AT24CXX的EEPROM存儲(chǔ)器等,更多的電路,還要靠大家在平時(shí)的學(xué)習(xí)過程當(dāng)中,慢慢掌握。//...add your other code here.} old_value = new_value。//...add your other code here }Delay函數(shù)具體延時(shí)多長(zhǎng)時(shí)間,就要看你設(shè)定的T0定時(shí)器中斷和Delaytime的乘積,比如你的定時(shí)器中斷為50MS,Delaytime為20的話,那么50MS*20=1S。再看Delay函數(shù),完全讓CPU執(zhí)行(;空語句),所以在做大的產(chǎn)品或者代碼時(shí),這個(gè)是非常耗費(fèi)單片機(jī)內(nèi)部資源的。if(b == N)//N為鍵的功能數(shù)目{b = 0。col = P1amp。Delayt(50)。break。for(j=0。i/******************************************************************************/ bit pkey(void)//判斷鍵的否被按下,通過返回值確定 {P1=0xf0。(這里比如我們10小時(shí)快1秒)那么可以通過以下語句if(hour % 10 = 0){sec。TH0 +=(_TH0_TL0_ + 9)/ 256 +(char)CY。ET0 = 1。sec = 0。P1 = SEG_TAB_B[ sec % 10 ]。P1 =S EG_TAB_A[ min % 10 ]。P1 = SEG_TAB_A[ hou % 10 ]。while(a!= 0){for(j = 0。若為0則表示關(guān)閉!這樣我們,就初始化定時(shí)器T0和中斷了,也就是定時(shí)器滿5毫秒后,產(chǎn)生一次中斷。//載入高8位初值TL0 =(655365000)/ 256。) 1右擊Source Group 1Add Files to Group 39。i 8。(三)上面我們講了如何使LED產(chǎn)生流動(dòng),但是你是否發(fā)現(xiàn)一個(gè)問題:寫的太冗長(zhǎng)了!能不能再簡(jiǎn)單點(diǎn)呢?可以!。P1_6 = 1。P1_4 = 0。Delay(250)。i 125。sbit P1_2 = P1 ^ 2。如果我們要試著點(diǎn)亮其他的LED,也類似上述語句。//在Keil安裝文件夾中,找到相應(yīng)的文件,比較一下便知!sbit P1_0 = P1 ^ 0。你一定會(huì)遇到很多很多的問題。嘿嘿。于是,我最終還是決定學(xué)C51,畢竟C51和我們課上講的C語言,有些類似,編程的思想可以說是相通的。不過這一切都沒什么關(guān)系,因?yàn)槲遥ó?dāng)然也包括任何人)都是從不知道轉(zhuǎn)變成知道的,再轉(zhuǎn)變成精通的。 a[1][3]等價(jià),指向a[1][3]的地址;*(*(p+1)+3)與a[1][3]等價(jià),表示a[1][3]的值; 一般的:對(duì)于數(shù)組a[i][j]來講,有*(p+i)+j相當(dāng)于amp。(1)app+I
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1