新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)c語言教程:C51常量

單片機(jī)c語言教程:C51常量

作者: 時(shí)間:2012-09-11 來源:網(wǎng)絡(luò) 收藏

程序中的花樣數(shù)據(jù)能自以去定義,因這里我們的 LED 要 AT89c51 的 P1 引腳為低電平才 會點(diǎn)亮,所以我們要向 P1 口的各引腳寫數(shù)據(jù) O 對應(yīng)連接的 LED 才會被點(diǎn)亮,P1 口的八個(gè)引 腳剛好對應(yīng) P1 口特殊寄存器的八個(gè)二進(jìn)位,如向 P1 口定數(shù)據(jù) 0xFE,轉(zhuǎn)成二進(jìn)制就是

11111110,最低位 D0 為 0 這里 P1.0 引腳輸出低電平,LED1 被點(diǎn)亮。如此類推,大家不難算 出自己想要做的效果了。大家編譯燒寫看看,效果就出來,顯示的速度您能根據(jù)需要調(diào)整 延時(shí) a 的值,不要超過變量類型的值域就很行了。哦,您還沒有實(shí)驗(yàn)板?那如何能知道程 序運(yùn)行的結(jié)果呢?呵,不用急,這就來說說用 KEIL uVision2 的軟件仿真來調(diào)試 IO 口輸出輸入程序。


點(diǎn)擊瀏覽下一頁

圖 4-1 八路跑馬燈電路 編譯運(yùn)行上面的程序,然后按外部設(shè)備菜單 Peripherals-I/O Ports-Port1 就打開

Port1 的調(diào)試窗口了,如圖 4-3 中的 2。這個(gè)時(shí)候程序運(yùn)行了,但我們并不能在 Port1 調(diào)試窗口 上看到有會什么效果,這個(gè)時(shí)候能用鼠標(biāo)左擊圖 4-3 中 1 旁邊綠色的方條,點(diǎn)一下就有一個(gè) 小紅方格再點(diǎn)一下又沒有了,哪一句語句前有小方格程序運(yùn)行到那一句時(shí)就停止了,就是設(shè) 置調(diào)試斷點(diǎn),同樣圖 4-2 中的 1 也是同樣功能,分別是增加/移除斷點(diǎn)、移除所有斷點(diǎn)、允 許/禁止斷點(diǎn)、禁止所有斷點(diǎn),菜單也有一樣的功能,另外菜單中還有 Breakpoints 可打開 斷點(diǎn)設(shè)置窗口它的功能更強(qiáng)大,不過這里先不用它。在“P1 = design[b];”這一句設(shè)置一 個(gè)斷點(diǎn)這個(gè)時(shí)候程序運(yùn)行到這里就停住了,再留意一下 Port1 調(diào)試窗口,再按圖 5-2 中的 2 的運(yùn) 行鍵,程序又運(yùn)行到設(shè)置斷點(diǎn)的地方停住了,這個(gè)時(shí)候 Port1 調(diào)試窗口的狀態(tài)又不一樣了。也就是說 Port1 調(diào)試窗口模擬了 P1 口的電平狀態(tài),打勾為高電平,不打勾則為低電平,窗口中 P1

為 P1 寄存器的狀態(tài),Pins 為引腳的狀態(tài),注意的是如果是讀引腳值之前必須把引腳對應(yīng)的 寄存器置 1 才能正確讀取。圖 4-2 中 2 旁邊的{}樣的按鈕分別為單步入,步越,步出和 執(zhí)行到當(dāng)前行。圖中 3 為顯示下一句將要執(zhí)行的語句。圖 4-3 中的 3 是 Watches 窗口可查 看各變量的當(dāng)前值,數(shù)組和字串是顯示其頭一個(gè)地址,如本例中的 design 數(shù)組是保存在 code 存儲區(qū)的首地址為 D:0x08,能在圖中 4 Memory 存儲器查看窗口中的 Address 地址中打入 D:0x08 就能查看到 design 各數(shù)據(jù)和存放地址了。如果你的 uVision2 沒有顯示這些窗口, 能在 View 菜單中打開在圖 4-2 中 3 后面一欄的查看窗口快捷欄中打開。


點(diǎn)擊瀏覽下一頁

圖 4-2 調(diào)試用快捷菜單欄

點(diǎn)擊瀏覽下一頁

圖 4-3 各調(diào)試窗口

51單片機(jī)相關(guān)文章:51單片機(jī)教程


c語言相關(guān)文章:c語言教程


激光器相關(guān)文章:激光器原理

上一頁 1 2 下一頁

關(guān)鍵詞: 常量 C51 教程 單片機(jī) 語言

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉