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

正文內(nèi)容

c語言單片機(jī)實(shí)例-展示頁

2025-01-16 11:40本頁面
  

【正文】 入 include,文件 中包含了 51 芯片所有特殊功能寄存器的名稱定義和相對應(yīng)的地址值; 2. 單片機(jī)程序單步順序執(zhí)行,先執(zhí)行主函數(shù),在主函數(shù)可以調(diào)用分函數(shù),分函數(shù)可以調(diào)用分函數(shù),但分函數(shù)不能調(diào)用主函數(shù),程序執(zhí)行一條命令再執(zhí)行下一條,單片機(jī)等待的過程是執(zhí)行了一個(gè)循環(huán)命令或一個(gè)浪費(fèi)時(shí)間的程序,實(shí)際執(zhí)行過程永遠(yuǎn)不會結(jié)束。 } void main(void) //主函數(shù) { while(1) { LED = ~LED。j 1000。ix。 void delay(unsigned char x) //延時(shí)函數(shù) { unsigned char i,j。 // 輸出高電平, LED 亮 void delay(100)。 // 輸出低電平, LED 滅 void delay(100)。j++)。i++) for(j = 0。 for(i = 0。 // LED 接 。在沒有實(shí)驗(yàn)板的情況下,可以利用 proteus 軟件仿真調(diào)試,也可以檢驗(yàn)?zāi)愕某绦蛟O(shè)計(jì)結(jié)果。 ( 6)程序燒寫并試運(yùn)行。運(yùn)行 projectoption for‘ target 1’ output窗口下 點(diǎn)擊 create HEX file。 ( 4)設(shè)置編譯器,是編譯過程中能生成“ .hex”文件。利用 keil C菜單欄中 projectnew project 創(chuàng)建,項(xiàng)目的名字為你編程的主題,如本案例可以用“ ”或“一個(gè) LED閃爍實(shí)驗(yàn) .uv2” ,存放目錄為你的主題目錄下; ( 2)創(chuàng)建建一個(gè)文件,然后以“ .c”后綴名,文件存放在你的主題目錄下; ( 3) 把 c文件添加在你的項(xiàng)目中,在 project workspace窗口利用 add file to group?實(shí)現(xiàn)。 表 311 電路 元件表 元件名稱 序號 標(biāo)稱 規(guī)格(封裝,功率電壓等參數(shù)) 作用 單片機(jī) IC STC89C51 DIP40 核心芯片 電容器 C1 30PF 獨(dú)石 振蕩 電容器 C2 30PF 獨(dú)石 振蕩 電容器 C3 10μ F 點(diǎn)解電容器 復(fù)位 晶振 CY 12MHz S 型 振蕩 電阻 R1 1K? 1/4W,金屬膜 電容器 C3 放電電阻 電阻 R2 1K? 1/4W,金屬膜 端口電位上拉電阻 電阻 R3 1K? 1/4W,金屬膜 限流 電阻 發(fā)光二極管 LED1 ? 5 紅色高亮 顯示 發(fā)光二極管 LED2 ? 5 紅色高亮 顯示 二、程序設(shè)計(jì) 程序設(shè)計(jì)采用 keil C 軟件,為了養(yǎng)成一個(gè)良好的文件管理習(xí)慣,建議:編程前,在計(jì)算機(jī)的某個(gè)硬盤分區(qū)下建立一個(gè)目錄,目錄的名字為你編寫程序的主題,然后把 keil C產(chǎn)生的所有文件都放在該目錄下。時(shí)鐘頻率主要由晶體 CY 決定, C C2 為獨(dú)石電容,用于微小調(diào)整單片機(jī)時(shí)鐘的振蕩頻率; R1 和 C3 組成加電復(fù)位電路, C3 為電解電容器;整個(gè)電路由 +5V 電壓供電。圖 331 中的 R3 為限流電阻,限制 LED2 的工作電流。 利用單片機(jī)的 I/O 口驅(qū)動 LED 利用單片機(jī)的 端口驅(qū)動 1 只 LED 閃爍 編程的目的是利用 C 語言控制單片機(jī) I/O 端口按要求輸出矩形波脈沖信號,信號的周期由延時(shí)函數(shù)決定。第三章 單片機(jī) C 語言編程基礎(chǔ) 本章主要學(xué)習(xí) 51 單片機(jī)的外部引腳和內(nèi)部結(jié)構(gòu)等,敘述一下。本書任務(wù)驅(qū)動教學(xué),引入案例有淺變深,循序漸進(jìn),給讀者留下思考和發(fā)揮空間。 一、電路原理 STC89C51 單片機(jī)的 P0 口采用為 OD 門輸出,不存在拉出電流,因此利用 P0 驅(qū)動負(fù)載時(shí)有兩種接法:一種是加上拉電阻 R2,見圖 311,既用 1K? 電阻接電源正極,此時(shí) P0口輸出高電平時(shí) LED 亮;另一種電路為 低電平驅(qū)動有效,在 輸出低電平時(shí),STC89C51 端口灌入電流達(dá) 20mA,可直接驅(qū)動小負(fù)載。 P 1 . 0P 1 . 1P 1 . 2P 1 . 3P 1 . 4P 1 . 5P 1 . 62345678P 0 . 0 / A D 0P 0 . 1 / A D 1P 0 . 2 / A D 2P 0 . 3 / A D 3P 0 . 4 / A D 4P 0 . 5 / A D 5P 0 . 6 / A D 6P 0 . 7 / A D 7P 2 . 7 / A 1 5P 2 . 6 / A 1 4P 2 . 5 / A 1 3P 2 . 4 / A 1 2P 2 . 3 / A 1 1P 2 . 2 / A 1 0P 2 . 1 / A 9P 2 . 0 / A 8R E S E TX T A L 2X T A L 1E AA L EP S E N3 93 83 73 63 53 43 33 23 13 02 92 82 72 62 52 42 32 22 1P 3 . 0 / R X DP 3 . 1 / T X DP 3 . 2 / I N T 0P 3 . 3 / I N T 1P 3 . 4 / T 0P 3 . 5 / T 1P 3 . 6 / W RP 3 . 7 / R D1 01 11 21 31 41 51 61 7P 1 . 711 91 89C 1 3 0 PC 2 3 0 PC Y 1 2 M H zR 1 1 KC 3 1 0μI C S T C 8 9 C 5 1V C CR 2 1 KL E D 1V C C ( + 5 V )R 3 1 KL E D 2 圖 311 驅(qū)動 LED 電路原理 單片機(jī)的最小系統(tǒng)包括晶體振蕩電路,加電復(fù)位電路,同時(shí)要求單片機(jī)的 31 引腳 EA 接高電平。電路 使用的元件參數(shù)見表 。程序設(shè)計(jì)步驟如下: ( 1)運(yùn)行 keil C,創(chuàng)建一個(gè)項(xiàng)目。如果軟件界面不顯示這個(gè)窗口,運(yùn)行 keil C菜單欄中的 viewproject window。默認(rèn)文件名與主題名字相同。 ( 5)在編程區(qū)域?qū)懩愕某绦?,結(jié)束后存儲文件并編譯,要做檢查,盡量避免警告出現(xiàn),直到程序編譯無誤為止。這個(gè)過程稱為軟件和硬件聯(lián)合調(diào)試,如果實(shí)驗(yàn)板無誤,程序編譯通過,但在硬件上運(yùn)行不成功是常用的事情,需要對程序進(jìn)行多次調(diào)試。 ( 1)利用 LED 閃爍,高電平有效 /*****************************************************************************/ include //包含頭文件 sbit LED = P0^0。在 kell C51 軟件中,定義 為 P0^0, void delay(unsigned char x) //延時(shí)函數(shù) { unsigned char i,j。i x。j 200。 } void main(void) //主函數(shù) { While(1) //程序死循環(huán) { LED = 0。 //調(diào)用延時(shí)函數(shù),延時(shí)一段時(shí)間,約 秒,不精確 LED = 1。 } } /*****************************************************************************/ ( 2)利用 端口驅(qū)動 LED 閃爍,低電平有效 /*****************************************************************************/ include //包含頭文件,程序?yàn)樾?5 號字 sbit LED = P0^7。 for(i = 0。i++) for(j = 0。j++)。 //LED 初始狀態(tài)為滅,執(zhí)行一次, LED 改變一次狀態(tài) void delay(100)。 delay()為函數(shù)延,單片機(jī)在執(zhí)行此函數(shù)相關(guān)指令時(shí)占用的時(shí)間過長,在執(zhí)行過程中,如果沒有中斷,單片機(jī)只能忙這一件事情。延時(shí)函數(shù)還可以利用下面的函數(shù)實(shí)現(xiàn)。 } /**************************/ 3. 利用位定義命令讓 LED 等價(jià)于 或 ,等于先 sbit P0_0 = P0^0,然后 defined LED P0_0,也在程序前面不做此類定義,在程序里面直接寫成 P0^0 = 1 或 P0^0 = 0,先定義是為了增加程序的可讀性。 4. 單片機(jī) C 語言程序設(shè)計(jì)需要的 C 語言關(guān)鍵字不多,并且在 keil C 中 用到的關(guān)鍵字是獨(dú)有的,因此對于沒有學(xué)習(xí)過 C 語言的人學(xué)習(xí)單片機(jī) C 語言程序設(shè)計(jì)困難并不是很大,主要掌握單片機(jī) C 語言書寫格式,怎樣用 C 語言控制單片機(jī)的硬件資源,另外在編程時(shí),還要有清晰的邏輯思維頭腦和認(rèn)真實(shí)踐,由淺逐步深入學(xué)習(xí),當(dāng)你堅(jiān)持到最后時(shí),單片機(jī) C語言程序設(shè)計(jì)實(shí)際上很簡單。一般情況下,函數(shù)的字符左行距為 0,其下每條語句前留一個(gè)“ tab”鍵空。 利用 P0 口驅(qū)動 8 個(gè) LED,產(chǎn)生跑馬燈或流水燈效果 一、參考電路 實(shí)驗(yàn)電路見圖 332 所示,在單片機(jī)的最小系統(tǒng)的基礎(chǔ)上, P0 口依次接入 8 個(gè) LED,P0 口的上拉電阻可以使用 8 個(gè) 1K?電阻。單片機(jī)最小系 統(tǒng)在單片機(jī)元件放置后已經(jīng)默認(rèn),即 C C C CY、 R1 可以省略。 表 312 電路 Proteus 軟件元件表 元件名稱 ponent 總 類 Category 分類 Sub Category 結(jié)果 Results 模型 Model type 單片機(jī) Micoroprocessor IC 8051 Family 80C51 電阻排 Resistor Resistor Pack RESPACK8 ANALOG 發(fā)光二極管 Optoelectronics LEDs ledred DIGITAL 二、參考程序 /*****************************************************************************/ include void delay(void) { unsigned char i,j。i 255。j 255。 } void main(void) { unsigned char j = 0x01。 if(j == 0x00) j = 0x01。 delay()。如果 P0 口驅(qū)動 8 個(gè) LED 低電平有效,如下修該: /**********************/ void main(void) { unsigned char j = 0xfe。 if(j = 0xff) j = 0xfe。 delay()。 利用 P0 口驅(qū)動一個(gè)數(shù)碼管,顯示 0 – 9,并循環(huán) 一、參考電路 實(shí)驗(yàn)電路在單片機(jī)的最小系統(tǒng)基礎(chǔ)上, P0 口接一只共陽數(shù)碼管,見圖 313。如果數(shù)碼管內(nèi)部的 8 只 LED 的正極接在一起,負(fù)極分別引出,引腳依次命名為 a、 b、 c、 d、 e、 f、g 和 dot,稱為帶小數(shù)點(diǎn)的 7 段共陽極性數(shù)碼管。對于共陰數(shù)碼管,也有相應(yīng)的編碼要求。 由于 P0 每個(gè)端口的灌電流達(dá) 20mA,數(shù)碼管每段 LED 正常顯示 5mA 即可,因此需要R2~9 用來限制數(shù)碼管每一段電流,以防止驅(qū)動電流過大而燒毀器件。 二、參考程序 /*****************************************************************************/ include code unsigned char seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 for (i = 0。i++) for (j = 0。j++)。 /* 變量 i 用來儲存 0~9 */ /*無窮循環(huán) */ while (1) { for (i = 0。 i++) { P0 = seven_seg[i]。 /*調(diào)用時(shí)間延遲函數(shù) delay*/ } } } /*****************************************************************************/ 三、程序說明 1. 當(dāng)程序中使用常量數(shù)據(jù)時(shí),可以把數(shù)據(jù)存儲在單片機(jī)的程序存儲器中,對此類數(shù)據(jù)聲明時(shí),前面需要加上關(guān)鍵字 code 或 const,如本實(shí)驗(yàn)中的共陽數(shù)碼管數(shù)字顯示需要的
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1