国产毛片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
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 第一福利影院 | 韩国福利影视一区二区三区 | 五月婷婷在线免费观看 | 四虎影视免费在线 | 成人二级片 | 国产首页精品 | 香蕉视频在线免费 | 黄色影视在线免费观看 | 狠狠综合久久久久综 | 国内在线亚洲精品第一线 | 国产麻豆精品免费视频 | 香蕉视频网址 | 青青国产视频 | 八戒八戒在线播放免费观看5 | 国产成人欧美视频在线 | 亚洲欧美一区二区久久 | 四虎永久成人免费 | 插入综合网 | 国产亚洲欧美在线观看的 | 干干日日 | 久久996re热这里只有精品 | 男女做www免费高清视频 | 成人黄激情免费视频 | 操好逼| 午夜精品视频 | 一级片a| 日本无遮挡吸乳视频 | 赘婿动画在线观看免费完整版 | 黄色高清视频在线观看 | 亚洲国产m3u8在线观看 | 日本h在线精品免费观看 | 欧美一区二区三区在线视频 | 国产精品盗摄在线观看 | 欧美性视频一区二区三区 | 一级片免费看 | 欧美日韩在线视频观看 | 欧美视频在线免费播放 | 香蕉视频观看 | 男人j桶进女人p无遮挡 | 免费一级毛片在线播放 | 国产成人精品亚洲2020 |