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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4411|回復: 2
收起左側

關于STC8A8K64S4A12單片機(STC15系列升級版)例程中程序出現錯誤undefined identifier

[復制鏈接]
ID:613800 發表于 2019-9-28 17:49 | 顯示全部樓層 |閱讀模式
最近上網買了一款STC8A8K64S4A12單片機最小系統版學習,打開店家給的例程程序,發現每個編譯后都出現了 ‘xxx’ undefined identifier的字樣,意思是:這個變量沒有被定義,無法編譯。不知道是不是該程序太老的問題,早期使用較低版本的Keil C51,隨著Keil C51不斷升級換代,到了KEIL5版本,編譯無法通過。
后面仔細以想,看到工程中出現這個:


上面很明顯顯示頭文件出錯,然后自己找了定義好的STC8的頭文件,改成對應的頭文件名字,如:
stc8.h(如果是其它的,要改成對應的,否則依舊出錯)。
后面再打開編譯后,編譯成功了,有問題的可以試試,頭文件我是上網找的:STC8系列單片機頭文件包含注釋,感謝這位兄弟。
這里貼出來,大家可參考。可以這樣做,右鍵新建一個 '.txt’文件,然后后綴名改成 ‘.h’ ,注意文件名要與代碼里面的一至。
頭文件:


  1. //(171009起以\WEB_STCISP2\header_file\STC8.H 為最終版本)


  2. #ifndef __STC8F_H_
  3. #define __STC8F_H_


  4. /////////////////////////////////////////////////
  5. //包含本頭文件后,不用另外再包含"REG51.H"
  6. //STC8系列單片機:-1T8051/8K RAM/64K ROM/12位ADC/8組PWM/I2C/SPI/4串口
  7. //本STC8系列單片機頭文件從STC-ISP V6.85o導出,由第三方STCISP點COM根據STC8-160506數據手冊整理@2016.07.12;13//11.04


  8. //內核特殊功能寄存器
  9. sfr ACC         =   0xe0;                                       //累加器
  10. sfr B           =   0xf0;                                       //B寄存器
  11. sfr PSW         =   0xd0;                                       //程序狀態字寄存器
  12. sbit CY         =   PSW^7;
  13. sbit AC         =   PSW^6;
  14. sbit F0         =   PSW^5;
  15. sbit RS1        =   PSW^4;                                      //-工作寄存器選擇位1
  16. sbit RS0        =   PSW^3;                                      //-工作寄存器選擇位0
  17. sbit OV         =   PSW^2;
  18. sbit P          =   PSW^0;
  19. sfr SP          =   0x81;                                       //堆棧指針
  20. sfr DPL         =   0x82;                                       //數據指針(低字節)
  21. sfr DPH         =   0x83;                                       //數據指針(高字節)
  22. sfr TA          =   0xae;                                       //DPTR時序控制寄存器
  23. sfr DPS         =   0xe3;                                       //DPTR指針選擇器
  24. sfr DPL1        =   0xe4;                                       //第二組數據指針(低字節)
  25. sfr DPH1        =   0xe5;                                       //第二組數據指針(高字節)




  26. //I/O 口特殊功能寄存器
  27. sfr P0          =   0x80;                                       //P0端口
  28. sfr P1          =   0x90;                                       //P1端口
  29. sfr P2          =   0xa0;                                       //P2端口
  30. sfr P3          =   0xb0;                                       //P3端口
  31. sfr P4          =   0xc0;                                       //P4端口
  32. sfr P5          =   0xc8;                                       //P5端口
  33. sfr P6          =   0xe8;                                       //P6端口
  34. sfr P7          =   0xf8;                                       //P7端口
  35. sfr P0M0        =   0x94;                                       //P0口配置寄存器0
  36. sfr P0M1        =   0x93;                                       //P0口配置寄存器1
  37. sfr P1M0        =   0x92;                                       //P1口配置寄存器0
  38. sfr P1M1        =   0x91;                                       //P1口配置寄存器1
  39. sfr P2M0        =   0x96;                                       //P2口配置寄存器0
  40. sfr P2M1        =   0x95;                                       //P2口配置寄存器1
  41. sfr P3M0        =   0xb2;                                       //P3口配置寄存器0
  42. sfr P3M1        =   0xb1;                                       //P3口配置寄存器1
  43. sfr P4M0        =   0xb4;                                       //P4口配置寄存器0
  44. sfr P4M1        =   0xb3;                                       //P4口配置寄存器1
  45. sfr P5M0        =   0xca;                                       //P5口配置寄存器0
  46. sfr P5M1        =   0xc9;                                       //P5口配置寄存器1
  47. sfr P6M0        =   0xcc;                                       //P6口配置寄存器0
  48. sfr P6M1        =   0xcb;                                       //P6口配置寄存器1
  49. sfr P7M0        =   0xe2;                                       //P7口配置寄存器0
  50. sfr P7M1        =   0xe1;                                       //P7口配置寄存器1


  51. sbit P00        =   P0^0;
  52. sbit P01        =   P0^1;
  53. sbit P02        =   P0^2;
  54. sbit P03        =   P0^3;
  55. sbit P04        =   P0^4;
  56. sbit P05        =   P0^5;
  57. sbit P06        =   P0^6;
  58. sbit P07        =   P0^7;
  59. sbit P10        =   P1^0;
  60. sbit P11        =   P1^1;
  61. sbit P12        =   P1^2;
  62. sbit P13        =   P1^3;
  63. sbit P14        =   P1^4;
  64. sbit P15        =   P1^5;
  65. sbit P16        =   P1^6;
  66. sbit P17        =   P1^7;
  67. sbit P20        =   P2^0;
  68. sbit P21        =   P2^1;
  69. sbit P22        =   P2^2;
  70. sbit P23        =   P2^3;
  71. sbit P24        =   P2^4;
  72. sbit P25        =   P2^5;
  73. sbit P26        =   P2^6;
  74. sbit P27        =   P2^7;
  75. sbit P30        =   P3^0;
  76. sbit P31        =   P3^1;
  77. sbit P32        =   P3^2;
  78. sbit P33        =   P3^3;
  79. sbit P34        =   P3^4;
  80. sbit P35        =   P3^5;
  81. sbit P36        =   P3^6;
  82. sbit P37        =   P3^7;
  83. sbit P40        =   P4^0;
  84. sbit P41        =   P4^1;
  85. sbit P42        =   P4^2;
  86. sbit P43        =   P4^3;
  87. sbit P44        =   P4^4;
  88. sbit P45        =   P4^5;
  89. sbit P46        =   P4^6;
  90. sbit P47        =   P4^7;
  91. sbit P50        =   P5^0;
  92. sbit P51        =   P5^1;
  93. sbit P52        =   P5^2;
  94. sbit P53        =   P5^3;
  95. sbit P54        =   P5^4;
  96. sbit P55        =   P5^5;
  97. sbit P56        =   P5^6;
  98. sbit P57        =   P5^7;
  99. sbit P60        =   P6^0;
  100. sbit P61        =   P6^1;
  101. sbit P62        =   P6^2;
  102. sbit P63        =   P6^3;
  103. sbit P64        =   P6^4;
  104. sbit P65        =   P6^5;
  105. sbit P66        =   P6^6;
  106. sbit P67        =   P6^7;
  107. sbit P70        =   P7^0;
  108. sbit P71        =   P7^1;
  109. sbit P72        =   P7^2;
  110. sbit P73        =   P7^3;
  111. sbit P74        =   P7^4;
  112. sbit P75        =   P7^5;
  113. sbit P76        =   P7^6;
  114. sbit P77        =   P7^7;


  115. //如下特殊功能寄存器位于擴展RAM區域
  116. //訪問這些寄存器,需先將P_SW2的BIT7設置為1,才可正常讀寫
  117. #define P0PU        (*(unsigned char volatile xdata *)0xfe10)   //P0口上拉電阻控制寄存器
  118. #define P1PU        (*(unsigned char volatile xdata *)0xfe11)   //P1口上拉電阻控制寄存器
  119. #define P2PU        (*(unsigned char volatile xdata *)0xfe12)   //P2口上拉電阻控制寄存器
  120. #define P3PU        (*(unsigned char volatile xdata *)0xfe13)   //P3口上拉電阻控制寄存器
  121. #define P4PU        (*(unsigned char volatile xdata *)0xfe14)   //P4口上拉電阻控制寄存器
  122. #define P5PU        (*(unsigned char volatile xdata *)0xfe15)   //P5口上拉電阻控制寄存器
  123. #define P6PU        (*(unsigned char volatile xdata *)0xfe16)   //P6口上拉電阻控制寄存器
  124. #define P7PU        (*(unsigned char volatile xdata *)0xfe17)   //P7口上拉電阻控制寄存器
  125. #define P0NCS       (*(unsigned char volatile xdata *)0xfe18)   //P0口施密特觸發控制寄存器
  126. #define P1NCS       (*(unsigned char volatile xdata *)0xfe19)   //P1口施密特觸發控制寄存器
  127. #define P2NCS       (*(unsigned char volatile xdata *)0xfe1a)   //P2口施密特觸發控制寄存器
  128. #define P3NCS       (*(unsigned char volatile xdata *)0xfe1b)   //P3口施密特觸發控制寄存器
  129. #define P4NCS       (*(unsigned char volatile xdata *)0xfe1c)   //P4口施密特觸發控制寄存器
  130. #define P5NCS       (*(unsigned char volatile xdata *)0xfe1d)   //P5口施密特觸發控制寄存器
  131. #define P6NCS       (*(unsigned char volatile xdata *)0xfe1e)   //P6口施密特觸發控制寄存器
  132. #define P7NCS       (*(unsigned char volatile xdata *)0xfe1f)   //P7口施密特觸發控制寄存器


  133. //系統管理特殊功能寄存器
  134. sfr PCON        =   0x87;                                       //電源控制寄存器
  135. #define SMOD        0x80                                        //-串口1波特率控制位
  136. #define SMOD0       0x40                                        //-幀錯誤檢測控制位
  137. #define LVDF        0x20                                        //-低壓檢測標志位
  138. #define POF         0x10                                        //-上電標志位
  139. #define GF1         0x08
  140. #define GF0         0x04
  141. #define PD          0x02                                        //-掉電模式控制位
  142. #define IDL         0x01                                        //-IDLE(空閑)模式控制位
  143. sfr AUXR        =   0x8e;                                       //輔助寄存器
  144. #define T0x12       0x80                                        //-定時器0速度控制位
  145. #define T1x12       0x40                                        //定時器1速度控制位
  146. #define UART_M0x6   0x20                                        //-串口1模式0的通訊速度控制位
  147. #define T2R         0x10                                        //-定時器2的運行控制位
  148. #define T2_CT       0x08                                        //-定時器0用作定時器或計數器控制位
  149. #define T2x12       0x04                                        //-定時器2速度控制位
  150. #define EXTRAM      0x02                                        //-擴展RAM訪問控制位
  151. #define S1ST2       0x01                                        //-串口1波特率發射器選擇位
  152. sfr AUXR2       =   0x97;                                       //輔助寄存器2
  153. #define TXLNRX      0x10                                        //-串口1中繼廣播方式控制位
  154. sfr BUS_SPEED   =   0xa1;                                       //總線速度控制寄存器
  155. sfr P_SW1       =   0xa2;                                       //外設端口切換寄存器1
  156. sfr P_SW2       =   0xba;                                       //外設端口切換寄存器2
  157. #define EAXFR       0x80
  158. sfr VOCTRL      =   0xbb;                                       //電壓控制寄存器
  159. sfr RSTCFG      =   0xff;                                       //復位配置寄存器


  160. //如下特殊功能寄存器位于擴展RAM區域
  161. //訪問這些寄存器,需先將P_SW2的BIT7設置為1,才可正常讀寫
  162. #define CKSEL       (*(unsigned char volatile xdata *)0xfe00)   //時鐘選擇寄存器
  163. #define CKDIV       (*(unsigned char volatile xdata *)0xfe01)   //時鐘分頻寄存器(DUP)
  164. #define CLKDIV      (*(unsigned char volatile xdata *)0xfe01)   //時鐘分頻寄存器
  165. #define IRC24MCR    (*(unsigned char volatile xdata *)0xfe02)   //內部24M振蕩器控制寄存器
  166. #define XOSCCR      (*(unsigned char volatile xdata *)0xfe03)   //外部晶振控制寄存器
  167. #define IRC32KCR    (*(unsigned char volatile xdata *)0xfe04)   //內部32K振蕩器控制寄存器


  168. //中斷特殊功能寄存器
  169. sfr IE          =   0xa8;                                       //中斷允許寄存器
  170. sbit EA         =   IE^7;                                       //-總中斷允許控制位
  171. sbit ELVD       =   IE^6;                                       //-低壓檢測中斷允許位
  172. sbit EADC       =   IE^5;                                       //-A/D轉換中斷允許位
  173. sbit ES         =   IE^4;                                       //-串行口1中斷允許位
  174. sbit ET1        =   IE^3;                                       //-定時/計數器T1的溢出中斷允許位
  175. sbit EX1        =   IE^2;                                       //-外部中斷1中斷允許位
  176. sbit ET0        =   IE^1;                                       //-定時/計數器T0的溢出中斷允許位
  177. sbit EX0        =   IE^0;                                       //-外部中斷0中斷允許位
  178. sfr IE2         =   0xaf;                                       //中斷允許寄存器2
  179. #define ET4         0x40                                        //-定時/計數器T4的溢出中斷允許位
  180. #define ET3         0x20                                        //-定時/計數器T3的溢出中斷允許位
  181. #define ES4         0x10                                        //-串行口4中斷允許位
  182. #define ES3         0x08                                        //-串行口3中斷允許位
  183. #define ET2         0x04                                        //定時/計數器T2的溢出中斷允許位
  184. #define ESPI        0x02                                        //SPI中斷允許位
  185. #define ES2         0x01                                        //串行口2中斷允許位
  186. sfr IP          =   0xb8;                                       //中斷優先級控制寄存器
  187. sbit PPCA       =   IP^7;                                       //-CCP/PCA中斷優先級控制位
  188. sbit PLVD       =   IP^6;                                       //-低壓檢測中斷優先級控制位
  189. sbit PADC       =   IP^5;                                       //-ADC中斷優先級控制位
  190. sbit PS         =   IP^4;                                       //-串口1中斷優先級控制位
  191. sbit PT1        =   IP^3;                                       //-定時器1中斷優先級控制位
  192. sbit PX1        =   IP^2;                                       //-外部中斷1中斷優先級控制位
  193. sbit PT0        =   IP^1;                                       //-定時器0中斷優先級控制位
  194. sbit PX0        =   IP^0;                                       //-外部中斷0中斷優先級控制位
  195. sfr IP2         =   0xb5;                                       //中斷優先級控制寄存器2
  196. #define PI2C        0x40                                        //-I2C中斷優先級控制位
  197. #define PCMP        0x20                                        //-比較器中斷優先級控制位
  198. #define PX4         0x10                                        //-外部中斷4中斷優先級控制位
  199. #define PPWMFD      0x08                                        //-強型PWM異常檢測中斷優先級控制位
  200. #define PPWM        0x04                                        //-增強型PWM中斷優先級控制位
  201. #define PSPI        0x02                                        //-SPI中斷優先級控制位
  202. #define PS2         0x01                                        //-串口2中斷優先級控制位
  203. sfr IPH         =   0xb7;                                       //高中斷優先級控制寄存器
  204. #define PPCAH       0x80                                        //-CCP/PCA中斷優先級控制位
  205. #define PLVDH       0x40                                        //-低壓檢測中斷優先級控制位
  206. #define PADCH       0x20                                        //-ADC中斷優先級控制位
  207. #define PSH         0x10                                        //-串口1中斷優先級控制位
  208. #define PT1H        0x08                                        //-定時器1中斷優先級控制位
  209. #define PX1H        0x04                                        //-外部中斷1中斷優先級控制位
  210. #define PT0H        0x02                                        //-定時器0中斷優先級控制位
  211. #define PX0H        0x01                                        //-外部中斷0中斷優先級控制位
  212. sfr IP2H        =   0xb6;                                       //高中斷優先級控制寄存器2
  213. #define PI2CH       0x40                                        //-I2C中斷優先級控制位
  214. #define PCMPH       0x20                                        //-比較器中斷優先級控制位
  215. #define PX4H        0x10                                        //-外部中斷4中斷優先級控制位
  216. #define PPWMFDH     0x08                                        //-增強型PWM異常檢測中斷優先級控制位
  217. #define PPWMH       0x04                                        //-增強型PWM中斷優先級控制位
  218. #define PSPIH       0x02                                        //-SPI中斷優先級控制位
  219. #define PS2H        0x01                                        //-串口2中斷優先級控制位
  220. sfr INTCLKO     =   0x8f;                                       //中斷與時鐘輸出控制寄存器
  221. #define EX4         0x40                                        //-外部中斷4中斷允許位
  222. #define EX3         0x20                                        //-外部中斷3中斷允許位
  223. #define EX2         0x10                                        //-外部中斷2中斷允許位
  224. #define T2CLKO      0x04                                        //-定時器2時鐘輸出控制
  225. #define T1CLKO      0x02                                        //-定時器1時鐘輸出控制
  226. #define T0CLKO      0x01                                        //-定時器0時鐘輸出控制
  227. sfr AUXINTIF    =   0xef;                                       //擴展外部中斷標志寄存器
  228. #define INT4IF      0x40                                        //-外部中斷4中斷請求標志
  229. #define INT3IF      0x20                                        //外部中斷3中斷請求標志
  230. #define INT2IF      0x10                                        //外部中斷2中斷請求標志
  231. #define T4IF        0x04                                        //-定時器4溢出中斷標志
  232. #define T3IF        0x02                                        //-定時器3溢出中斷標志
  233. #define T2IF        0x01                                        //-定時器2溢出中斷標志


  234. //定時器特殊功能寄存器
  235. sfr TCON        =   0x88;                                       //定時器控制寄存器
  236. sbit TF1        =   TCON^7;                                     //-T1溢出中斷標志
  237. sbit TR1        =   TCON^6;                                     //-定時器T1的運行控制位
  238. sbit TF0        =   TCON^5;                                     //-T0溢出中斷標志
  239. sbit TR0        =   TCON^4;                                     //-定時器T0的運行控制位
  240. sbit IE1        =   TCON^3;                                     //-外部中斷1請求源(INT1/P3.3)標志
  241. sbit IT1        =   TCON^2;                                     //-外部中斷源1觸發控制位
  242. sbit IE0        =   TCON^1;                                     //-外部中斷0請求源(INT0/P3.2)標志
  243. sbit IT0        =   TCON^0;                                     //-外部中斷源0觸發控制位
  244. sfr TMOD        =   0x89;                                       //定時器模式寄存器
  245. #define T1_GATE     0x80                                        //-控制定時器
  246. #define T1_CT       0x40                                        //-控制定時器1用作定時器或計數器
  247. #define T1_M1       0x20                                        //定時器定時器/計數器1模式選擇1
  248. #define T1_M0       0x10                                        //定時器定時器/計數器1模式選擇0
  249. #define T0_GATE     0x08                                        //-控制定時器0
  250. #define T0_CT       0x04                                        //-控制定時器0用作定時器或計數器
  251. #define T0_M1       0x02                                        //定時器定時器/計數器0模式選擇1
  252. #define T0_M0       0x01                                        //定時器定時器/計數器0模式選擇0
  253. sfr TL0         =   0x8a;                                       //定時器0低8位寄存器
  254. sfr TL1         =   0x8b;                                       //定時器1低8位寄存器
  255. sfr TH0         =   0x8c;                                       //定時器0高8位寄存器
  256. sfr TH1         =   0x8d;                                       //定時器1高8位寄存器
  257. sfr T4T3M       =   0xd1;                                       //定時器4/3控制寄存器
  258. #define T4R         0x80                                        //-定時器4的運行控制位
  259. #define T4_CT       0x40                                        //-控制定時器4用作定時器或計數器
  260. #define T4x12       0x20                                        //-定時器4速度控制位
  261. #define T4CLKO      0x10                                        //-定時器4時鐘輸出控制
  262. #define T3R         0x08                                        //-定時器3的運行控制位
  263. #define T3_CT       0x04                                        //-控制定時器3用作定時器或計數器
  264. #define T3x12       0x02                                        //-定時器3速度控制位
  265. #define T3CLKO      0x01                                        //-定時器3時鐘輸出控制
  266. sfr T4H         =   0xd2;                                       //定時器4高字節
  267. sfr T4L         =   0xd3;                                       //定時器4低字節
  268. sfr T3H         =   0xd4;                                       //定時器3高字節
  269. sfr T3L         =   0xd5;                                       //定時器3低字節
  270. sfr T2H         =   0xd6;                                       //定時器2高字節
  271. sfr T2L         =   0xd7;                                       //定時器2低字節
  272. sfr TH4         =   0xd2;
  273. sfr TL4         =   0xd3;
  274. sfr TH3         =   0xd4;
  275. sfr TL3         =   0xd5;
  276. sfr TH2         =   0xd6;
  277. sfr TL2         =   0xd7;
  278. sfr WKTCL       =   0xaa;                                       //掉電喚醒定時器低字節
  279. sfr WKTCH       =   0xab;                                       //掉電喚醒定時器高字節
  280. #define WKTEN       0x80                                        //-掉電喚醒定時器的使能控制位
  281. sfr WDT_CONTR   =   0xc1;                                       //看門狗控制寄存器
  282. #define WDT_FLAG    0x80                                        //-看門狗溢出標志
  283. #define EN_WDT      0x20                                        //-看門狗使能位
  284. #define CLR_WDT     0x10                                        //-看門狗定時器清零
  285. #define IDL_WDT     0x08                                        //-IDLE模式時的看門狗控制位


  286. //串行口特殊功能寄存器
  287. sfr SCON        =   0x98;                                       //串口1控制寄存器
  288. sbit SM0        =   SCON^7;                                     //-串口1的通信工作模式控制0
  289. sbit SM1        =   SCON^6;                                     //-串口1的通信工作模式控制1
  290. sbit SM2        =   SCON^5;                                     //-允許模式2或模式3多機通信控制位
  291. sbit REN        =   SCON^4;                                     //-允許/禁止串口接收控制位
  292. sbit TB8        =   SCON^3;                                     //-當串口1使用模式2或模式3時,TB8為要發送的第9位數據
  293. sbit RB8        =   SCON^2;                                     //-當串口1使用模式2或模式3時,RB8為接收到的第9位數據
  294. sbit TI         =   SCON^1;                                     //-串口1發送中斷請求標志位
  295. sbit RI         =   SCON^0;                                     //-串口1接收中斷請求標志位
  296. sfr SBUF        =   0x99;                                       //串口1數據寄存器
  297. sfr S2CON       =   0x9a;                                       //串口2控制寄存器
  298. #define S2SM0       0x80                                        //-串口2的通信工作模式控制位
  299. #define S2ST4       0x40
  300. #define S2SM2       0x20                                        //-允許串口2在模式1時允許多機通信控制位
  301. #define S2REN       0x10                                        //-串口2允許/禁止串口接收控制位
  302. #define S2TB8       0x08                                        //-當串口2使用模式1時,S2TB8為要發送的第9位數據
  303. #define S2RB8       0x04                                        //-當串口2使用模式1時,S2RB8為接收到的第9位數據
  304. #define S2TI        0x02                                        //-串口2發送中斷請求標志位
  305. #define S2RI        0x01                                        //-串口2接收中斷請求標志位
  306. sfr S2BUF       =   0x9b;                                       //串口2數據寄存器
  307. sfr S3CON       =   0xac;                                       //串口3控制寄存器
  308. #define S3SM0       0x80                                        //-串口3的通信工作模式控制位
  309. #define S3ST4       0x40
  310. #define S3SM2       0x20                                        //-允許串口3在模式1時允許多機通信控制位
  311. #define S3REN       0x10                                        //-串口3允許/禁止串口接收控制位
  312. #define S3TB8       0x08                                        //-當串口3使用模式1時,S3TB8為要發送的第9位數據
  313. #define S3RB8       0x04                                        //-當串口3使用模式1時,S3RB8為接收到的第9位數據
  314. #define S3TI        0x02                                        //-串口3發送中斷請求標志位
  315. #define S3RI        0x01                                        //-串口3接收中斷請求標志位
  316. sfr S3BUF       =   0xad;                                       //串口3數據寄存器
  317. sfr S4CON       =   0x84;                                       //串口4控制寄存器
  318. #define S4SM0       0x80                                        //-串口4的通信工作模式控制位
  319. #define S4ST4       0x40                                        //-選擇串口4的波特率發生器
  320. #define S4SM2       0x20                                        //-允許串口4在模式1時允許多機通信控制位
  321. #define S4REN       0x10                                        //-串口4允許/禁止串口接收控制位
  322. #define S4TB8       0x08                                        //-當串口4使用模式1時,S3TB8為要發送的第9位數據
  323. #define S4RB8       0x04                                        //-當串口4使用模式1時,S3RB8為接收到的第9位數據
  324. #define S4TI        0x02                                        //-串口4發送中斷請求標志位
  325. #define S4RI        0x01                                        //-串口4接收中斷請求標志位
  326. sfr S4BUF       =   0x85;                                       //串口4數據寄存器
  327. sfr SADDR       =   0xa9;                                       //串口1從機地址寄存器
  328. sfr SADEN       =   0xb9;                                       //串口1從機地址屏蔽寄存器


  329. //ADC 特殊功能寄存器
  330. sfr ADC_CONTR   =   0xbc;                                       //ADC控制寄存器
  331. #define ADC_POWER   0x80                                        //-ADC電源控制位
  332. #define ADC_START   0x40                                        //-ADC轉換啟動控制位
  333. #define ADC_FLAG    0x20                                        //-ADC轉換完成中斷請求標志
  334. sfr ADC_RES     =   0xbd;                                       //ADC轉換結果高位寄存器
  335. sfr ADC_RESL    =   0xbe;                                       //ADC轉換結果低位寄存器
  336. sfr ADCCFG      =   0xde;                                       //ADC配置寄存器
  337. #define ADC_RESFMT  0x20                                        //-ADC轉換結果格式控制位


  338. //SPI 特殊功能寄存器
  339. sfr SPSTAT      =   0xcd;                                       //SPI狀態寄存器
  340. #define SPIF        0x80                                        //-SPI中斷標志位
  341. #define WCOL        0x40                                        //-SPI寫沖突標志位
  342. sfr SPCTL       =   0xce;                                       //SPI控制寄存器
  343. #define SSIG        0x80                                        //-SS引腳功能控制位
  344. #define SPEN        0x40                                        //-SPI使能控制位
  345. #define DORD        0x20                                        //-SPI數據位發送/接收的順序
  346. #define MSTR        0x10                                        //-器件主/從模式選擇位
  347. #define CPOL        0x08                                        //-SPI時鐘極性控制
  348. #define CPHA        0x04                                        //-SPI時鐘相位控制
  349. sfr SPDAT       =   0xcf;                                       //數據寄存器


  350. //IAP/ISP 特殊功能寄存器
  351. sfr IAP_DATA    =   0xc2;                                       //IAP數據寄存器
  352. sfr IAP_ADDRH   =   0xc3;                                       //IAP高地址寄存器
  353. sfr IAP_ADDRL   =   0xc4;                                       //IAP低地址寄存器
  354. sfr IAP_CMD     =   0xc5;                                       //IAP命令寄存器
  355. #define IAP_IDL     0x00                                        //IAP_空操作
  356. #define IAP_READ    0x01                                        //IAP_讀
  357. #define IAP_WRITE   0x02                                        //IAP_寫
  358. #define IAP_ERASE   0x03                                        //IAP_擦除
  359. sfr IAP_TRIG    =   0xc6;                                       //IAP觸發寄存器
  360. sfr IAP_CONTR   =   0xc7;                                       //IAP控制寄存器
  361. #define IAPEN       0x80                                        //-EEPROM操作使能控制位
  362. #define SWBS        0x40                                        //-軟件復位選擇控制位
  363. #define SWRST       0x20                                        //-軟件復位控制位
  364. #define CMD_FAIL    0x10                                        //-EEPROM操作失敗狀態位
  365. sfr ISP_DATA    =   0xc2;                                       //ISP數據寄存器
  366. sfr ISP_ADDRH   =   0xc3;                                       //ISP高地址寄存器
  367. sfr ISP_ADDRL   =   0xc4;                                       //ISP低地址寄存器
  368. sfr ISP_CMD     =   0xc5;                                       //ISP命令寄存器
  369. sfr ISP_TRIG    =   0xc6;                                       //ISP觸發寄存器
  370. sfr ISP_CONTR   =   0xc7;                                       //ISP控制寄存器


  371. //比較器特殊功能寄存器
  372. sfr CMPCR1      =   0xe6;                                       //比較器控制寄存器1
  373. #define CMPEN       0x80                                        //-比較器模塊使能位
  374. #define CMPIF       0x40                                        //-比較器中斷標志位
  375. #define PIE         0x20                                        //-比較器上升沿中斷使能位
  376. #define NIE         0x10                                        //-比較器下降沿中斷使能位
  377. #define PIS         0x08                                        //-比較器的正極選擇位
  378. #define NIS         0x04                                        //-比較器的負極選擇位
  379. #define CMPOE       0x02                                        //-比較器結果輸出控制位
  380. #define CMPRES      0x01                                        //-比較器的比較結果
  381. sfr CMPCR2      =   0xe7;                                       //比較器控制寄存器2
  382. #define INVCMPO     0x80                                        //-比較器結果輸出控制
  383. #define DISFLT      0x40                                        //-模擬濾波功能控制


  384. //PCA/PWM 特殊功能寄存器
  385. sfr CCON        =   0xd8;                                       //PCA控制寄存器
  386. sbit CF         =   CCON^7;                                     //-PCA計數器溢出中斷標志
  387. sbit CR         =   CCON^6;                                     //-PCA計數器允許控制位
  388. sbit CCF3       =   CCON^3;                                     //-PCA模塊3中斷請求標志
  389. sbit CCF2       =   CCON^2;                                     //-PCA模塊2中斷請求標志
  390. sbit CCF1       =   CCON^1;                                     //-PCA模塊1中斷請求標志
  391. sbit CCF0       =   CCON^0;                                     //-PCA模塊0中斷請求標志
  392. sfr CMOD        =   0xd9;                                       //PCA模式寄存器
  393. #define CIDL        0x80                                        //-空閑模式下是否停止PCA計數
  394. #define ECF         0x01                                        //PCA計數器溢出中斷允許位
  395. sfr CL          =   0xe9;                                       //PCA計數器低字節
  396. sfr CH          =   0xf9;                                       //PCA計數器高字節
  397. sfr CCAPM0      =   0xda;                                       //PCA模塊0模式控制寄存器
  398. #define ECOM0       0x40                                        //允許PCA模塊0的比較功能
  399. #define CCAPP0      0x20                                        //允許PCA模塊0進行上升沿捕獲
  400. #define CCAPN0      0x10                                        //允許PCA模塊0進行下降沿捕獲
  401. #define MAT0        0x08                                        //允許PCA模塊0的匹配功能
  402. #define TOG0        0x04                                        //允許PCA模塊0的高速脈沖輸出功能
  403. #define PWM0        0x02                                        //允許PCA模塊0的脈寬調制輸出功能
  404. #define ECCF0       0x01                                        //允許PCA模塊0的匹配/捕獲中斷
  405. sfr CCAPM1      =   0xdb;                                       //PCA模塊1模式控制寄存器
  406. #define ECOM1       0x40                                        //允許PCA模塊1的比較功能
  407. #define CCAPP1      0x20                                        //允許PCA模塊1進行上升沿捕獲
  408. #define CCAPN1      0x10                                        //允許PCA模塊1進行下降沿捕獲
  409. #define MAT1        0x08                                        //允許PCA模塊1的匹配功能
  410. #define TOG1        0x04                                        //允許PCA模塊1的高速脈沖輸出功能
  411. #define PWM1        0x02                                        //允許PCA模塊1的脈寬調制輸出功能
  412. #define ECCF1       0x01                                        //允許PCA模塊1的匹配/捕獲中斷
  413. sfr CCAPM2      =   0xdc;                                       //PCA模塊2模式控制寄存器
  414. #define ECOM2       0x40                                        //允許PCA模塊2的比較功能
  415. #define CCAPP2      0x20                                        //允許PCA模塊2進行上升沿捕獲
  416. #define CCAPN2      0x10                                        //允許PCA模塊2進行下降沿捕獲
  417. #define MAT2        0x08                                        //允許PCA模塊2的匹配功能
  418. #define TOG2        0x04                                        //允許PCA模塊2的高速脈沖輸出功能
  419. #define PWM2        0x02                                        //允許PCA模塊2的脈寬調制輸出功能
  420. #define ECCF2       0x01                                        //允許PCA模塊2的匹配/捕獲中斷
  421. sfr CCAPM3      =   0xdd;                                       //PCA模塊3模式控制寄存器
  422. #define ECOM3       0x40                                        //-允許PCA模塊3的比較功能
  423. #define CCAPP3      0x20                                        //-允許PCA模塊3進行上升沿捕獲
  424. #define CCAPN3      0x10                                        //-允許PCA模塊3進行下降沿捕獲
  425. #define MAT3        0x08                                        //-允許PCA模塊3的匹配功能
  426. #define TOG3        0x04                                        //-允許PCA模塊3的高速脈沖輸出功能
  427. #define PWM3        0x02                                        //-允許PCA模塊3的脈寬調制輸出功能
  428. #define ECCF3       0x01                                        //-允許PCA模塊3的匹配/捕獲中斷
  429. sfr CCAP0L      =   0xea;                                       //PCA模塊0低字節
  430. sfr CCAP1L      =   0xeb;                                       //PCA模塊1低字節
  431. sfr CCAP2L      =   0xec;                                       //PCA模塊2低字節
  432. sfr CCAP3L      =   0xed;                                       //PCA模塊3低字節
  433. sfr CCAP0H      =   0xfa;                                       //PCA模塊0高字節
  434. sfr CCAP1H      =   0xfb;                                       //PCA模塊1高字節
  435. sfr CCAP2H      =   0xfc;                                       //PCA模塊2高字節
  436. sfr CCAP3H      =   0xfd;                                       //PCA模塊3高字節
  437. sfr PCA_PWM0    =   0xf2;                                       //PCA0的PWM模式寄存器
  438. sfr PCA_PWM1    =   0xf3;                                       //PCA1的PWM模式寄存器
  439. sfr PCA_PWM2    =   0xf4;                                       //PCA2的PWM模式寄存器
  440. sfr PCA_PWM3    =   0xf5;                                       //PCA3的PWM模式寄存器


  441. //增強型PWM波形發生器特殊功能寄存器
  442. sfr PWMCFG      =   0xf1;                                       //PWM計數器
  443. #define CBIF        0x80                                        //-增強型PWM計數器中斷請求標志
  444. #define ETADC       0x40                                        //-PWM是否與ADC關聯
  445. sfr PWMIF       =   0xf6;                                       //增強型PWM中斷標志寄存器
  446. #define C7IF        0x80                                        //增強型PWM通道7中斷請求標志(需要軟件清零)
  447. #define C6IF        0x40                                        //增強型PWM通道6中斷請求標志(需要軟件清零)
  448. #define C5IF        0x20                                        //增強型PWM通道5中斷請求標志(需要軟件清零)
  449. #define C4IF        0x10                                        //增強型PWM通道4中斷請求標志(需要軟件清零)
  450. #define C3IF        0x08                                        //增強型PWM通道3中斷請求標志(需要軟件清零)
  451. #define C2IF        0x04                                        //增強型PWM通道2中斷請求標志(需要軟件清零)
  452. #define C1IF        0x02                                        //增強型PWM通道1中斷請求標志(需要軟件清零)
  453. #define C0IF        0x01                                        //增強型PWM通道0中斷請求標志(需要軟件清零)
  454. sfr PWMFDCR     =   0xf7;                                       //PWM異常檢測控制寄存器
  455. #define INVCMP      0x80                                        //-比較器器結果異常信號處理
  456. #define INVIO       0x40                                        //-外部端口P3.5異常信號處理
  457. #define ENFD        0x20                                        //-PWM外部異常檢測控制位
  458. #define FLTFLIO     0x10                                        //-發生PWM外部異常時對PWM輸出口控制位
  459. #define EFDI        0x08                                        //-PWM異常檢測中斷使能位
  460. #define FDCMP       0x04                                        //-比較器輸出異常檢測使能位
  461. #define FDIO        0x02                                        //-P3.5口電平異常檢測使能位
  462. #define FDIF        0x01                                        //-增強型PWM異常檢測中斷請求標志
  463. sfr PWMCR       =   0xfe;                                       //PWM控制寄存器
  464. #define ENPWM       0x80                                        //-增強型PWM波形發生器使能位
  465. #define ECBI        0x40                                        //-PWM計數器歸零中斷使能位


  466. //如下特殊功能寄存器位于擴展RAM區域
  467. //訪問這些寄存器,需先將P_SW2的BIT7設置為1,才可正常讀寫
  468. #define PWMC        (*(unsigned int  volatile xdata *)0xfff0)   //PWM計數器
  469. #define PWMCH       (*(unsigned char volatile xdata *)0xfff0)   //PWM計數器高字節
  470. #define PWMCL       (*(unsigned char volatile xdata *)0xfff1)   //PWM計數器低字節
  471. #define PWMCKS      (*(unsigned char volatile xdata *)0xfff2)   //PWM時鐘選擇
  472. #define TADCP       (*(unsigned char volatile xdata *)0xfff3)   //觸發ADC計數值
  473. #define TADCPH      (*(unsigned char volatile xdata *)0xfff3)   //觸發ADC計數值高字節
  474. #define TADCPL      (*(unsigned char volatile xdata *)0xfff4)   //觸發ADC計數值低字節
  475. #define PWM0T1      (*(unsigned int  volatile xdata *)0xff00)   //PWM0T1計數值
  476. #define PWM0T1H     (*(unsigned char volatile xdata *)0xff00)   //PWM0T1計數值高字節
  477. #define PWM0T1L     (*(unsigned char volatile xdata *)0xff01)   //PWM0T1計數值低字節
  478. #define PWM0T2      (*(unsigned int  volatile xdata *)0xff02)   //PWM0T2數值
  479. #define PWM0T2H     (*(unsigned char volatile xdata *)0xff02)   //PWM0T2數值高字節
  480. #define PWM0T2L     (*(unsigned char volatile xdata *)0xff03)   //PWM0T2數值低字節
  481. #define PWM0CR      (*(unsigned char volatile xdata *)0xff04)   //PWM0控制寄存器
  482. #define PWM0HLD     (*(unsigned char volatile xdata *)0xff05)   //PWM0電平保持控制寄存器
  483. #define PWM1T1      (*(unsigned int  volatile xdata *)0xff10)   //PWM1T1計數值
  484. #define PWM1T1H     (*(unsigned char volatile xdata *)0xff10)   //PWM1T1計數值高字節
  485. #define PWM1T1L     (*(unsigned char volatile xdata *)0xff11)   //PWM1T1計數值低字節
  486. #define PWM1T2      (*(unsigned int  volatile xdata *)0xff12)   //PWM1T2數值
  487. #define PWM1T2H     (*(unsigned char volatile xdata *)0xff12)   //PWM1T2數值高字節
  488. #define PWM1T2L     (*(unsigned char volatile xdata *)0xff13)   //PWM1T2數值低字節
  489. #define PWM1CR      (*(unsigned char volatile xdata *)0xff14)   //PWM1控制寄存器
  490. #define PWM1HLD     (*(unsigned char volatile xdata *)0xff15)   //PWM1電平保持控制寄存器
  491. #define PWM2T1      (*(unsigned int  volatile xdata *)0xff20)   //PWM2T1計數值
  492. #define PWM2T1H     (*(unsigned char volatile xdata *)0xff20)   //PWM2T1計數值高字節
  493. #define PWM2T1L     (*(unsigned char volatile xdata *)0xff21)   //PWM2T1計數值低字節
  494. #define PWM2T2      (*(unsigned int  volatile xdata *)0xff22)   //PWM2T2數值
  495. #define PWM2T2H     (*(unsigned char volatile xdata *)0xff22)   //PWM2T2數值高字節
  496. #define PWM2T2L     (*(unsigned char volatile xdata *)0xff23)   //PWM2T2數值低字節
  497. #define PWM2CR      (*(unsigned char volatile xdata *)0xff24)   //PWM2控制寄存器
  498. #define PWM2HLD     (*(unsigned char volatile xdata *)0xff25)   //PWM2電平保持控制寄存器
  499. #define PWM3T1      (*(unsigned int  volatile xdata *)0xff30)   //PWM3T1計數值
  500. #define PWM3T1H     (*(unsigned char volatile xdata *)0xff30)   //PWM3T1計數值高字節
  501. #define PWM3T1L     (*(unsigned char volatile xdata *)0xff31)   //PWM3T1計數值低字節
  502. #define PWM3T2      (*(unsigned int  volatile xdata *)0xff32)   //PWM3T2數值
  503. #define PWM3T2H     (*(unsigned char volatile xdata *)0xff32)   //PWM3T2數值高字節
  504. #define PWM3T2L     (*(unsigned char volatile xdata *)0xff33)   //PWM3T2數值低字節
  505. #define PWM3CR      (*(unsigned char volatile xdata *)0xff34)   //PWM3控制寄存器
  506. #define PWM3HLD     (*(unsigned char volatile xdata *)0xff35)   //PWM3電平保持控制寄存器
  507. #define PWM4T1      (*(unsigned int  volatile xdata *)0xff40)   //PWM4T1計數值
  508. #define PWM4T1H     (*(unsigned char volatile xdata *)0xff40)   //PWM4T1計數值高字節
  509. #define PWM4T1L     (*(unsigned char volatile xdata *)0xff41)   //PWM4T1計數值低字節
  510. #define PWM4T2      (*(unsigned int  volatile xdata *)0xff42)   //PWM4T2數值
  511. #define PWM4T2H     (*(unsigned char volatile xdata *)0xff42)   //PWM4T2數值高字節
  512. #define PWM4T2L     (*(unsigned char volatile xdata *)0xff43)   //PWM4T2數值低字節
  513. #define PWM4CR      (*(unsigned char volatile xdata *)0xff44)   //PWM4控制寄存器
  514. #define PWM4HLD     (*(unsigned char volatile xdata *)0xff45)   //PWM4電平保持控制寄存器
  515. #define PWM5T1      (*(unsigned int  volatile xdata *)0xff50)   //PWM5T1計數值
  516. #define PWM5T1H     (*(unsigned char volatile xdata *)0xff50)   //PWM5T1計數值高字節
  517. #define PWM5T1L     (*(unsigned char volatile xdata *)0xff51)   //PWM5T1計數值低字節
  518. #define PWM5T2      (*(unsigned int  volatile xdata *)0xff52)   //PWM5T2數值
  519. #define PWM5T2H     (*(unsigned char volatile xdata *)0xff52)   //PWM5T2數值高字節
  520. #define PWM5T2L     (*(unsigned char volatile xdata *)0xff53)   //PWM5T2數值低字節
  521. #define PWM5CR      (*(unsigned char volatile xdata *)0xff54)   //PWM5控制寄存器
  522. #define PWM5HLD     (*(unsigned char volatile xdata *)0xff55)   //PWM5電平保持控制寄存器
  523. #define PWM6T1      (*(unsigned int  volatile xdata *)0xff60)   //PWM6T1計數值
  524. #define PWM6T1H     (*(unsigned char volatile xdata *)0xff60)   //PWM6T1計數值高字節
  525. #define PWM6T1L     (*(unsigned char volatile xdata *)0xff61)   //PWM6T1計數值低字節
  526. #define PWM6T2      (*(unsigned int  volatile xdata *)0xff62)   //PWM6T2數值
  527. #define PWM6T2H     (*(unsigned char volatile xdata *)0xff62)   //PWM6T2數值高字節
  528. #define PWM6T2L     (*(unsigned char volatile xdata *)0xff63)   //PWM6T2數值低字節
  529. #define PWM6CR      (*(unsigned char volatile xdata *)0xff64)   //PWM6控制寄存器
  530. #define PWM6HLD     (*(unsigned char volatile xdata *)0xff65)   //PWM6電平保持控制寄存器
  531. #define PWM7T1      (*(unsigned int  volatile xdata *)0xff70)   //PWM7T1計數值
  532. #define PWM7T1H     (*(unsigned char volatile xdata *)0xff70)   //PWM7T1計數值高字節
  533. #define PWM7T1L     (*(unsigned char volatile xdata *)0xff71)   //PWM7T1計數值低字節
  534. #define PWM7T2      (*(unsigned int  volatile xdata *)0xff72)   //PWM7T2數值
  535. #define PWM7T2H     (*(unsigned char volatile xdata *)0xff72)   //PWM7T2數值高字節
  536. #define PWM7T2L     (*(unsigned char volatile xdata *)0xff73)   //PWM7T2數值低字節
  537. #define PWM7CR      (*(unsigned char volatile xdata *)0xff74)   //PWM7控制寄存器
  538. #define PWM7HLD     (*(unsigned char volatile xdata *)0xff75)   //PWM7電平保持控制寄存器


  539. //I2C特殊功能寄存器
  540. //如下特殊功能寄存器位于擴展RAM區域
  541. //訪問這些寄存器,需先將P_SW2的BIT7設置為1,才可正常讀寫
  542. #define I2CCFG      (*(unsigned char volatile xdata *)0xfe80)   //I2C配置寄存器
  543. #define ENI2C       0x80                                        //-I2C功能使能控制位
  544. #define MSSL        0x40                                        //-I2C工作模式選擇位
  545. #define I2CMSCR     (*(unsigned char volatile xdata *)0xfe81)   //I2C主機控制寄存器
  546. #define EMSI        0x80                                        //-I2C主機模式中斷使能控制位
  547. #define I2CMSST     (*(unsigned char volatile xdata *)0xfe82)   //I2C主機狀態寄存器
  548. #define MSBUSY      0x80                                        //-主機模式時I2C控制器狀態位(只讀位)
  549. #define MSIF        0x40                                        //-主機模式的中斷請求位(中斷標志位)
  550. #define MSACKI      0x02                                        //-主機模式時,發送“011”命令到I2CMSCR的MSCMD位后所接收到的ACK數據
  551. #define MSACKO      0x01                                        //-主機模式時,準備將要發送出去的ACK信號
  552. #define I2CSLCR     (*(unsigned char volatile xdata *)0xfe83)   //I2C從機控制寄存器
  553. #define ESTAI       0x40                                        //-I2C從機接收START事件中斷允許位
  554. #define ERXI        0x20                                        //-I2C從機接收數據完成事件中斷允許位
  555. #define ETXI        0x10                                        //-I2C從機發送數據完成事件中斷允許位
  556. #define ESTOI       0x08                                        //-從機模式時接收到STOP信號中斷允許位
  557. #define SLRST       0x01                                        //-復位從機模式
  558. #define I2CSLST     (*(unsigned char volatile xdata *)0xfe84)   //I2C從機狀態寄存器
  559. #define SLBUSY      0x80                                        //-從機模式時I2C控制器狀態位(只讀位)
  560. #define STAIF       0x40                                        //-從機模式時接收到START信號后的中斷請求
  561. #define RXIF        0x20                                        //-從機模式時接收到1字節的數據后的中斷請
  562. #define TXIF        0x10                                        //-從機模式時發送完成1字節的數據后的中斷
  563. #define STOIF       0x08                                        //-從機模式時接收到STOP信號后的中斷請求
  564. #define TXING       0x04
  565. #define SLACKI      0x02                                        //-從機模式時,接收到的ACK數據
  566. #define SLACKO      0x01                                        //-從機模式時,準備將要發送出去的ACK信號
  567. #define I2CSLADR    (*(unsigned char volatile xdata *)0xfe85)   //I2C從機地址寄存器
  568. #define I2CTXD      (*(unsigned char volatile xdata *)0xfe86)   //I2C數據發送寄存器
  569. #define I2CRXD      (*(unsigned char volatile xdata *)0xfe87)   //I2C數據接收寄存器
  570. ////////////////////////////////////////////////
復制代碼



回復

使用道具 舉報

ID:877820 發表于 2021-1-15 15:17 | 顯示全部樓層
謝謝你的文件
回復

使用道具 舉報

ID:128714 發表于 2021-1-17 10:08 | 顯示全部樓層
不錯,注釋起來更方便。謝謝。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久精 | 国产免费一区二区三区最新6 | 久久不卡 | 久久一区二区三区四区 | 日韩欧美二区 | 久久久精品视频免费 | 一区二区三区中文字幕 | 91国产精品| 成人h动漫精品一区二区器材 | 成人国产精品久久 | 四虎影院免费在线播放 | 国产精品视频久久久 | 中国av在线免费观看 | 欧美一区二区三区 | 久草热视频 | 日韩精品在线看 | 亚洲视频一区在线观看 | 日本中文字幕日韩精品免费 | 国产在线视频在线观看 | 在线精品国产 | 国产成人一区二区三区 | 免费看一级毛片 | 免费一区二区三区 | 91国产视频在线 | 少妇一级淫片免费放播放 | 日韩精品1区2区 | 91精品国产一区二区三区 | 在线观看精品 | 成人午夜精品 | 天天搞天天操 | 在线午夜| 亚洲区中文字幕 | 亚洲三级视频 | 在线亚洲人成电影网站色www | 日韩成人在线观看 | 国产精品美女久久久免费 | 国产精品久久久久久久久久久久久久 | 成人精品系列 | 国产精品18毛片一区二区 | 黄色在线免费观看 | 久久九九免费 |