国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 3886|回復: 1
打印 上一主題 下一主題

單片機 C51 編程要點總結

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2017-8-21 11:13:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機 C51 編程要點總結
1、頭文件:#include
2、預定義:sbit LED = P1^0  // 定義 P1 口的 0 位為 LED  
注:“P1^0”這個寫法,與 A51 不同(A51 P1.0)P1 是一組端口,端口號范圍 0~7
2sbit 用于定義 SFR(特殊功能寄存器)的位變量,上例中 LED 作為全局變量進行定義
3:以下寫法是錯誤的:
sbit code table[ ] = {P1^0, P1^1, P1^2, P1^3};  // 想用 table 指定不同的引腳,但這么做會報錯
sbit table[ ] = {P1^0, P1^1, P1^2, P1^3};            // 考慮到上面可能是 code 關鍵字使用錯誤,使用標準 C 數組寫法,但這同樣是錯的
3、主函數寫法:void main (void)
4、數值的表示:
P1 = 1111 1111       // 二進制
P1 = 0xff 或者 P1 = 0xFF   // 十六進制,0x 開頭,且數值不分大小寫
P1 = 255          // 十進制
5、定義小數值時,可以使用 unsigned char i,這樣 i 的范圍為 0~255,作為循環變量比較好用
6、左右移位:
P1 <<= 2 等價于 P1 = P1 << 2  // P1 左移 2 位,左移一位相當于乘以 2
P1 >>= 3 等價于 P1 = P1 >> 3  // P1 右移 3 位,右移一位相當于除以 2
注:左右移位默認為邏輯移位,即無論左移還是右移,空位都補 0
7、按位與或:
P1 = P1 & 0x01
P1 = P1 | 0x01
8、定義 ROM 表格(就是數據為常量的數組)
unsigned char code table[ ] = {0xff, 0xff, 0xff, 0xff};
使用:P1 = table
注:table[ ] 定義為全局變量,上例中 i 的范圍為 0~3
2code 定義的常量存于代碼區,即 ROM 區,可以節省 RAM 空間
9、在使用數碼管編程時,假如你正在使用 temp 代表某一個顯示字符,突然想顯示小數點,可以使用 temp | 0x80,通過運算實現加上小數點……
10、如果你用 Keil C51 進行編譯,記住一點:它不區分大小寫!!!臥槽,今天編程序那個調錯啊,就因為一個數組名和一個變量名完全一樣,只是大小寫不一樣罷了,標準 C 我怎么記得這樣可以啊……上網一查,臥槽,Keil C51 不區分大小寫,準確的說是連接的時候不區分大小寫,更準確一點就是具有外部連接的變量區分大小寫,內部連接 static 區分大小寫”……至少 Keil uVision2 是這樣,不知道別的版本是不是,待驗證……
11、沒有 unsigned float x !float 型變量從來沒有前邊加 unsigned 的語法!
12Keil 編譯的程序,main 函數執行完不會停止,會循環執行 main 函數,何解?
結論 1:如果主程序中沒有 while(1) 這個無限循環,程序走到最后會再次從頭開始執行。
結論 2:如果主程序有 while(1) 這個無限循環,程序走到最后會一直在這個死循環中運行,不會出現再從頭執行的情況。
這應該屬于 Keil 編譯器的 bug,有網友做過實驗,表示 Keil 編譯后期產生的匯編代碼中,結尾有一條 LJMP main,意思就是跳到 main 函數重復執行……還有一種說法是 PC 指針溢出,溢出后的地址指向開頭,造成繼續執行的效果……(博主覺得還是 Keil 的問題,要是 Keil 編譯器不產生 LJMP main 這種語句,也不會產生循環效應……)
不管怎么說,在程序結尾加上 while(1) 能夠解決循環執行 main 函數的 bug……

沙發
發表于 2020-3-2 14:10:22 | 只看該作者
謝謝分享!
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 真正全免费视频a毛片 | 妈妈的朋友3线完整视频免费观看 | 欧美成人一区二区三区不卡视频 | 色丁香在线视频 | 草久久免费视频 | 日本国产欧美 | 久久久国产99久久国产一 | 青青草精品在线 | 视频一区中文字幕 | 免费福利在线看黄网站 | 欧美xxxxbb| 国产日韩亚洲欧美 | 国产伦精品一区二区三区 | 成人精品一区二区www | 亚洲国产欧美在线不卡中文 | 国产三级小视频在线观看 | 一级做性色a爰片久久毛片 一级做性色a爱片久久片 | 黑人一区二区三区中文字幕 | 亚洲 欧洲 自拍 另类 校园 | 中文在线免费不卡视频 | 色视频网站大全免费 | 99国产在线视频 | 2021国产精品视频 | 色综合天天综合网站中国 | 日本在线亚州精品视频在线 | aaa毛片手机在线现看 | 黑人巨大15p| 99久久99久久精品国产 | 福利院肉动漫视频在线观看 | 四虎在线视频 | 亚洲国产精品一区二区久久 | 天天操好逼 | 欧美ww| 国产一区二区三区免费观看 | 亚洲性久久久影院 | 天堂在线观看免费观看 | 在线看日韩 | 久久久久女人精品毛片 | 免费观看成人久久网免费观看 | 精品视频在线免费看 | 日韩国产免费一区二区三区 |