久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6223|回復(fù): 0
收起左側(cè)

sdcc下c51單片機(jī)通用頭文件 寄存器詳解

[復(fù)制鏈接]
ID:338578 發(fā)表于 2018-5-26 11:58 | 顯示全部樓層 |閱讀模式
一、前言

之前花了一點(diǎn)時間閱讀了編譯器sdcc的man文檔,算是對這款交叉編譯器有了基本的了解。但要寫重新寫單片機(jī)程序,還要對相應(yīng)的知識做進(jìn)一步的復(fù)習(xí)。下面我將閱讀芯片的datasheet和application guide,結(jié)合一些實(shí)際的應(yīng)用,對單片機(jī)的知識進(jìn)行復(fù)習(xí)。我開發(fā)板上的芯片是stc90c51,不同型號的51芯片可能會略有差異。

二、外圍電路

要使單片機(jī)正常工作,需要在VCC腳上給予5v/3.3v的電壓,將GND腳接地。為了濾波 ,VCC和GND之間接兩個電容。XTAL上接一個外部振蕩器,RST腳上接外部復(fù)位電路。

雖然這些都已經(jīng)標(biāo)準(zhǔn)化,無關(guān)編程。但在某些特殊情況下(比如晶振、穩(wěn)壓芯片壞了,虛焊等等),需要配合示波器等作出硬件故障的排除,就需要檢查外圍電路的工作狀態(tài)。

三、片內(nèi)資源

3.1 特殊功能寄存器&相關(guān)模塊

這里貼一下sdcc下c51通用的頭文件。可以清晰得看到控制GPIO,定時器,中斷,串口的相關(guān)寄存器。

  1. #ifndef REG8051_H
  2. #define REG8051_H

  3. /*  BYTE Register  */
  4. __sfr __at (0x80) P0   ;
  5. __sfr __at (0x81) SP   ;
  6. __sfr __at (0x82) DPL  ;
  7. __sfr __at (0x83) DPH  ;
  8. __sfr __at (0x87) PCON ;
  9. __sfr __at (0x88) TCON ;
  10. __sfr __at (0x89) TMOD ;
  11. __sfr __at (0x8A) TL0  ;
  12. __sfr __at (0x8B) TL1  ;
  13. __sfr __at (0x8C) TH0  ;
  14. __sfr __at (0x8D) TH1  ;
  15. __sfr __at (0x90) P1   ;
  16. __sfr __at (0x98) SCON ;
  17. __sfr __at (0x99) SBUF ;
  18. __sfr __at (0xA0) P2   ;
  19. __sfr __at (0xA8) IE   ;
  20. __sfr __at (0xB0) P3   ;
  21. __sfr __at (0xB8) IP   ;
  22. __sfr __at (0xD0) PSW  ;
  23. __sfr __at (0xE0) ACC  ;
  24. __sfr __at (0xF0) B    ;


  25. /*  BIT Register  */
  26. /* P0 */
  27. __sbit __at (0x80) P0_0 ;
  28. __sbit __at (0x81) P0_1 ;
  29. __sbit __at (0x82) P0_2 ;
  30. __sbit __at (0x83) P0_3 ;
  31. __sbit __at (0x84) P0_4 ;
  32. __sbit __at (0x85) P0_5 ;
  33. __sbit __at (0x86) P0_6 ;
  34. __sbit __at (0x87) P0_7 ;

  35. /*  TCON  */
  36. __sbit __at (0x88) IT0  ;
  37. __sbit __at (0x89) IE0  ;
  38. __sbit __at (0x8A) IT1  ;
  39. __sbit __at (0x8B) IE1  ;
  40. __sbit __at (0x8C) TR0  ;
  41. __sbit __at (0x8D) TF0  ;
  42. __sbit __at (0x8E) TR1  ;
  43. __sbit __at (0x8F) TF1  ;

  44. /* P1 */
  45. __sbit __at (0x90) P1_0 ;
  46. __sbit __at (0x91) P1_1 ;
  47. __sbit __at (0x92) P1_2 ;
  48. __sbit __at (0x93) P1_3 ;
  49. __sbit __at (0x94) P1_4 ;
  50. __sbit __at (0x95) P1_5 ;
  51. __sbit __at (0x96) P1_6 ;
  52. __sbit __at (0x97) P1_7 ;

  53. /*  SCON  */
  54. __sbit __at (0x98) RI   ;
  55. __sbit __at (0x99) TI   ;
  56. __sbit __at (0x9A) RB8  ;
  57. __sbit __at (0x9B) TB8  ;
  58. __sbit __at (0x9C) REN  ;
  59. __sbit __at (0x9D) SM2  ;
  60. __sbit __at (0x9E) SM1  ;
  61. __sbit __at (0x9F) SM0  ;

  62. /* P2 */
  63. __sbit __at (0xA0) P2_0 ;
  64. __sbit __at (0xA1) P2_1 ;
  65. __sbit __at (0xA2) P2_2 ;
  66. __sbit __at (0xA3) P2_3 ;
  67. __sbit __at (0xA4) P2_4 ;
  68. __sbit __at (0xA5) P2_5 ;
  69. __sbit __at (0xA6) P2_6 ;
  70. __sbit __at (0xA7) P2_7 ;

  71. /*  IE   */
  72. __sbit __at (0xA8) EX0  ;
  73. __sbit __at (0xA9) ET0  ;
  74. __sbit __at (0xAA) EX1  ;
  75. __sbit __at (0xAB) ET1  ;
  76. __sbit __at (0xAC) ES   ;
  77. __sbit __at (0xAF) EA   ;

  78. /*  P3  */
  79. __sbit __at (0xB0) P3_0 ;
  80. __sbit __at (0xB1) P3_1 ;
  81. __sbit __at (0xB2) P3_2 ;
  82. __sbit __at (0xB3) P3_3 ;
  83. __sbit __at (0xB4) P3_4 ;
  84. __sbit __at (0xB5) P3_5 ;
  85. __sbit __at (0xB6) P3_6 ;
  86. __sbit __at (0xB7) P3_7 ;

  87. __sbit __at (0xB0) RXD  ;
  88. __sbit __at (0xB1) TXD  ;
  89. __sbit __at (0xB2) INT0 ;
  90. __sbit __at (0xB3) INT1 ;
  91. __sbit __at (0xB4) T0   ;
  92. __sbit __at (0xB5) T1   ;
  93. __sbit __at (0xB6) WR   ;
  94. __sbit __at (0xB7) RD   ;

  95. /*  IP   */
  96. __sbit __at (0xB8) PX0  ;
  97. __sbit __at (0xB9) PT0  ;
  98. __sbit __at (0xBA) PX1  ;
  99. __sbit __at (0xBB) PT1  ;
  100. __sbit __at (0xBC) PS   ;

  101. /*  PSW   */
  102. __sbit __at (0xD0) P    ;
  103. __sbit __at (0xD1) F1   ;
  104. __sbit __at (0xD2) OV   ;
  105. __sbit __at (0xD3) RS0  ;
  106. __sbit __at (0xD4) RS1  ;
  107. __sbit __at (0xD5) F0   ;
  108. __sbit __at (0xD6) AC   ;
  109. __sbit __at (0xD7) CY   ;

  110. /* BIT definitions for bits that are not directly accessible */
  111. /* PCON bits */
  112. #define IDL             0x01
  113. #define PD              0x02
  114. #define GF0             0x04
  115. #define GF1             0x08
  116. #define SMOD            0x80

  117. /* TMOD bits */
  118. #define T0_M0           0x01
  119. #define T0_M1           0x02
  120. #define T0_CT           0x04
  121. #define T0_GATE         0x08
  122. #define T1_M0           0x10
  123. #define T1_M1           0x20
  124. #define T1_CT           0x40
  125. #define T1_GATE         0x80

  126. #define T0_MASK         0x0F
  127. #define T1_MASK         0xF0

  128. /* Interrupt numbers: address = (number * 8) + 3 */
  129. #define IE0_VECTOR      0       /* 0x03 external interrupt 0 */
  130. #define TF0_VECTOR      1       /* 0x0b timer 0 */
  131. #define IE1_VECTOR      2       /* 0x13 external interrupt 1 */
  132. #define TF1_VECTOR      3       /* 0x1b timer 1 */
  133. #define SI0_VECTOR      4       /* 0x23 serial port 0 */

  134. #endif
復(fù)制代碼

3.2 內(nèi)部Ram&Rom

最初的51單片機(jī)有128byte的片內(nèi)Ram和4K的片內(nèi)的Rom,現(xiàn)在的51單片機(jī)可以有1K的片內(nèi)Ram和64K片內(nèi)的Rom。至于如何選擇芯片型號要根據(jù)項目的實(shí)際需要和成本,參考選型指南、供應(yīng)市場的具體情況作出。

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品国产精品 | 一区在线免费视频 | 91精品久久久久久久久久入口 | 台湾a级理论片在线观看 | 91av视频在线播放 | 欧美日韩a | 综合久久av | 欧美一级大片免费看 | 99精品在线| 国产成人精品一区二三区在线观看 | 天天干天天草 | 亚洲国产欧美91 | 国产成人综合久久 | 国产免费a视频 | 91精品国产综合久久精品 | 日韩精品av一区二区三区 | 最新国产福利在线 | 99久久婷婷 | 久久精品一 | 免费a级毛片在线播放 | 在线亚洲欧美 | 国产乡下妇女做爰 | 蜜桃黄网 | 伊人久久大香线 | 久久精品久久精品久久精品 | 91超碰在线观看 | 一区二区三区四区在线 | 欧美视频精品 | 国产精品成人久久久久 | 一级免费视频 | 亚洲免费人成在线视频观看 | 99久久久久 | 中文字幕欧美在线观看 | 亚洲午夜久久久 | 一区二区日韩精品 | 国产精品久久久久无码av | 欧美成视频 | 成人片网址 | 欧美在线a| 久久久久久久亚洲精品 | 国产一区二区三区免费观看视频 |