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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3342|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)電動(dòng)自行車控制系統(tǒng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:125225 發(fā)表于 2016-6-5 13:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)電動(dòng)自行車控制系統(tǒng)

  1. 單片機(jī)控制的電動(dòng)自行車驅(qū)動(dòng)系統(tǒng)
  2. 14.4.4  各部分程序
  3. LIST P=16F876
  4. #INCLUDE P16F876.INC
  5. ;以下采用塊定義的方法定義單片機(jī)內(nèi)部寄存器
  6. CBLOCK 0X20 ;自
  7. 定義寄存器從0X20開始
  8. FLAG1 ;
  9. FLAG1作為標(biāo)志寄存器
  10. VOLTAGEH ;電池電壓高位寄
  11. 存器
  12. VOLTAGEL ;電池電壓低位寄
  13. 存器
  14. TSH
  15. ;手柄電壓高位寄存器
  16. TSL
  17. ;手柄電壓低位寄存器
  18. STATE1 ;霍
  19. 爾信號采樣暫存器1
  20. STATE2 ;霍
  21. 爾信號采樣暫存器2
  22. STATE3 ;霍爾信號采樣暫
  23. 存器3
  24. DELAY ;延
  25. 時(shí)計(jì)數(shù)器
  26. COUNT_VOL ;低電壓采樣次數(shù)
  27. 計(jì)數(shù)器
  28. ACCaLO   ;
  29. ACCa~ACCd為運(yùn)算用的寄存器
  30. ACCaHI  
  31. ACCbLO  
  32. ACCbHI  
  33. ACCcLO  
  34. ACCcHI  
  35. ACCdLO  
  36. ACCdHI  
  37. TEMP  ;臨
  38. 時(shí)寄存器
  39. TEMP1  ;臨
  40. 時(shí)寄存器(中斷用)
  41. SIGN  ;符
  42. 號寄存器
  43. COUNT  ;臨
  44. 時(shí)寄存器
  45. W_STACK ;中
  46. 斷時(shí)用于暫存W寄存器值
  47. ST_STACK ;中
  48. 斷時(shí)用于暫存STATUS寄存器值
  49. ENDC
  50. ;***********標(biāo)志寄存器位定義以及程序中常數(shù)定義***********
  51. CONSTANT VOLTAGE=0 ;采電池電壓標(biāo)志位
  52. CONSTANT PWM=1 ;輸出下一次PWM信號標(biāo)志位
  53. CONSTANT LOWPOWER=2 ;低電壓標(biāo)志位
  54. CONSTANT SHUTDOWN=3 ;剎車標(biāo)志位
  55. CONSTANT OFF=4 ;復(fù)位標(biāo)志位
  56. CONSTANT AND=0XE0 ;AND用于獲取有效霍爾信號
  57. CONSTANT FULLPWM=0XFF ;當(dāng)PWM輸出全高時(shí),輸入CCPR1L中的值
  58. CONSTANT VOLOFFH=0X02 ;當(dāng)電池電壓低于24AH時(shí), 低壓保護(hù)2.86
  59. V/31.5 V
  60. CONSTANT VOLOFFL=0X4A
  61. CONSTANT VOLONH=0X02 ;當(dāng)電池電壓大于266H時(shí),允許電機(jī)重開
  62. 3V/33V
  63. CONSTANT VOLONL=0X66
  64. CONSTANT TSONH=0X01 ;剎車后手柄復(fù)位值低于133H,則允許電
  65. 機(jī)重新啟動(dòng)
  66. CONSTANT TSONL=0X33
  67. ;***復(fù)位矢量入口(單片機(jī)復(fù)位時(shí),PC指針指向程序存儲器0X0000單元)***
  68. ORG 0X0000
  69. START GOTO MAIN ;復(fù)位后程序進(jìn)入主程序
  70. ;***中斷矢量入口程序(PIC單片機(jī)的中斷矢量入口為0X0004)***
  71. ORG 0X0004 ;中
  72. 斷矢量入口
  73. BTFSC INTCON,RBIF ;是否為RB口電平
  74. 變化中斷?
  75. GOTO SAMPLERB ;是,進(jìn)入RB口電平變化中斷
  76. 服務(wù)程序
  77. BTFSC PIR1,ADIF ;是否為AD采樣中斷
  78. GOTO AD ;
  79. 是,進(jìn)入AD中斷服務(wù)程序
  80. BTFSC INTCON,INTF ;是否為剎車中斷
  81. GOTO BRAKE ;是,剎車中斷處

  82. RETFIE ;如
  83. 都不是,則中斷返回
  84. ;************逆變橋輸出控制表*************
  85. ;逆變橋輸出控制表,其輸出對應(yīng)6種狀態(tài),霍爾信號來自B口RB7、RB6、RB5,C口輸出低電
  86. 平有
  87. ;效,其中RC1,RC2不作為觸發(fā)電路輸出口,故表中使其為高電平
  88. ORG 0X0020 ;表程序從0X0020單元開始存
  89. 放(也可以不從這開始)
  90. OUT_TABLE
  91. ADDWF PCL,1
  92. RETLW 0X0AF ;如霍爾信號為
  93. 0、0、0,則使RC4、RC6為低電平
  94. RETLW 0X0BE ;如霍爾信號為
  95. 0、0、1,則使RC0、RC6為低電平
  96. RETLW 0X0FF ;沒有為0、1、0
  97. 的霍爾信號對應(yīng)電機(jī)狀態(tài)
  98. RETLW 0X07E ;如霍爾信號為
  99. 0、1、1,則使RC0、RC7為低電平
  100. RETLW 0X0CF ;如霍爾信號為
  101. 1、0、0,則使RC4、RC5為低電平
  102. RETLW 0X0FF ;沒有為1、0、1
  103. 的霍爾信號對應(yīng)電機(jī)狀態(tài)
  104. RETLW 0X0D7 ;如霍爾信號為
  105. 1、1、0則使RC3、RC5為低電平
  106. RETLW 0X077 ;如霍爾信號為
  107. 1、1、1則使RC3、RC7為低電平
  108. ;***************主程序*****************
  109. ORG 0X0100 ;主
  110. 程序從0X0100單元開始存儲
  111. MAIN
  112. MOVLW 0X0FF ;由于C口上電復(fù)
  113. 位值不確定,必須先關(guān)閉所有MOS管
  114. MOVWF PORTC
  115. BSF STATUS,RP0 ;選
  116. 擇存儲體1
  117. MOVLW 0X02 ;設(shè)
  118. 置RC1為輸入口,其它為輸出口,其中RC2為PWM   
  119. MOVWF TRISC ;輸出口,其它位
  120. 為觸發(fā)信號輸出
  121. BCF STATUS,RP0 ;選
  122. 擇存儲體0
  123. CLRF PIR1 ;清
  124. 所有中斷標(biāo)志位
  125. CLRF INTCON ;禁止所有中斷
  126. MOVLW 0X01 ;設(shè)
  127. 置TMR2預(yù)分頻值為4
  128. MOVWF T2CON
  129. MOVLW FULLPWM ;初始化PWM工作循環(huán)寄存
  130. 器,使PWM占空比為1
  131. MOVWF CCPR1L ;輸出電壓為零
  132. MOVLW 0XFF ;設(shè)
  133. 置CCP1工作于PWM方式
  134. MOVWF CCP1CON
  135. MOVLW 0X0B ;
  136. CCP2工作于特殊事件觸發(fā)方式,用作AD采樣周期寄存 MOVWF
  137. CCP2CON ;器
  138. MOVLW 0X081 ;選擇AD轉(zhuǎn)換時(shí)鐘
  139. 為32分頻,選擇AN0通道,并使AD
  140. MOVWF ADCON0 ;轉(zhuǎn)換允許
  141. CLRF TMR2 ;TMR2計(jì)數(shù)器清零
  142. CLRF TMR1H ;TMR1計(jì)數(shù)器清零
  143. CLRF TMR1L
  144. CLRF T1CON ;TMR1預(yù)分頻為
  145. 1,關(guān)閉振蕩器,工作于定時(shí)工作方式
  146. MOVLW 0X08 ;初
  147. 始化AD采樣周期寄存器,T=512 μs
  148. MOVWF CCPR2H
  149. MOVLW 0X00
  150. MOVWF CCPR2L
  151. BSF STATUS,RP0 ;選
  152. 擇存儲體1
  153. MOVLW 0XEF ;RB
  154. 口高3位用于采樣霍爾信號,RB0為剎車中斷,設(shè)置為
  155. MOVWF TRISB ;輸入,其它未用
  156. MOVLW 0XC7 ;初
  157. 始化PWM頻率為5 kHz
  158. MOVWF PR2
  159. MOVLW 0X082 ;AD采樣結(jié)果右
  160. 移,RA口引腳均為模擬輸入
  161. MOVWF ADCON1
  162. BSF OPTION_REG,INTEDG  ;選擇INT在下降沿產(chǎn)生中斷
  163. BCF STATUS,RP0
  164. CALL SAMPLE ;確定當(dāng)前轉(zhuǎn)子位

  165. CALL OUTPUT ;根據(jù)采得的狀態(tài)
  166. 值觸發(fā)相應(yīng)的MOSFET
  167. MOVLW 0X0D8 ;開總中斷、外圍
  168. 中斷、INT中斷和RB口電平變化中斷允
  169. MOVWF INTCON ;許
  170. BCF PIE2,CCP2IE ;CCP2中斷禁止
  171. BSF PIE1,ADIE ;打開AD采樣中斷
  172. CLRF FLAG1 ;清標(biāo)志位寄存器
  173. CLRF COUNT_VOL ;清電池電壓采樣計(jì)數(shù)器
  174. BSF T1CON,TMR1ON ;開CCP2,對手柄
  175. 進(jìn)行等間隔采樣
  176. BSF T2CON,TMR2ON ;開CCP1
  177. RETEST BTFSS FLAG1,PWM ;TS采樣完畢?
  178. GOTO NEXT1 ;沒有,轉(zhuǎn)NEXT1
  179. CALL OUT_PWM ;TS采樣完畢,送出相應(yīng)的
  180. PWM信號
  181. BCF FLAG1,PWM ;清PWM允許標(biāo)志
  182. NEXT1 BTFSS FLAG1,LOWPOWER;電壓采樣完畢?
  183. GOTO NEXT2 ;沒有轉(zhuǎn)NEXT2
  184. CALL POWER ;是,調(diào)用電壓保
  185. 護(hù)子程序處理數(shù)據(jù)
  186. BTFSC FLAG1,OFF ;是否需要復(fù)位?
  187. GOTO MAIN ;是,單片機(jī)復(fù)位
  188. NEXT2 BTFSS FLAG1,SHUTDOWN;剎車中斷到來?
  189. GOTO RETEST ;否,回轉(zhuǎn)RETEST
  190. CALL BRAKEON ;是,調(diào)用剎車處
  191. 理子程序
  192. CLRWDT
  193. BTFSC FLAG1,OFF ;OFF=0?
  194. GOTO MAIN ;否,單片機(jī)復(fù)位
  195. GOTO RETEST ;是,回轉(zhuǎn)RETEST
  196. ;***************剎車處理子程序******************
  197. BRAKEON BCF FLAG1,OFF ;清復(fù)位標(biāo)志
  198. BCF FLAG1,SHUTDOWN;是,清相應(yīng)標(biāo)志位
  199. BTFSS PORTB,0 ;INT引腳仍為1?
  200. RETURN ;
  201. 否,中斷是由干擾引起的,返回
  202. BSF STATUS,RP0
  203. BCF PIE1,ADIE ;禁止AD采樣中斷
  204. BCF STATUS,RP0
  205. BCF INTCON,INTE ;關(guān)
  206. RB0中斷
  207. MOVLW FULLPWM ;PWM輸出全高
  208. MOVWF CCPR1L
  209. BCF T1CON,TMR1ON ;關(guān)閉手柄采樣
  210. BREAK2 BTFSC ADCON0,GO ;正在進(jìn)行AD采樣?
  211. GOTO BREAK2 ;是,等待AD采樣
  212. 完畢
  213. BCF ADCON0,CHS0
  214. BCF ADCON0,CHS1 ;選擇0采樣通
  215. 道,準(zhǔn)備采樣手柄電壓
  216. BCF PIR1,ADIF ;清AD采樣中斷標(biāo)
  217. 志位
  218. MOVLW 0X06 ;延
  219. 時(shí)
  220. MOVWF COUNT
  221. BREAK3 DECFSZ COUNT
  222. GOTO BREAK3
  223. BREAK5 BSF ADCON0,GO ;采樣TS值
  224. BREAK4 BTFSS PIR1,ADIF ;采樣完畢?
  225. GOTO BREAK4
  226. BCF PIR1,ADIF
  227. BCF STATUS,C
  228. MOVF ADRESH,0 ;當(dāng)前TS值送被減數(shù)
  229. MOVWF ACCbHI
  230. BSF STATUS,RP0
  231. MOVF ADRESL,0
  232. BCF STATUS,RP0
  233. MOVWF ACCbLO
  234. MOVLW TSONH ;1.5 V所對應(yīng)的
  235. 采樣值送減數(shù)
  236. MOVWF ACCaHI
  237. MOVLW TSONL
  238. MOVWF ACCaLO
  239. CALL D_sub ;當(dāng)前TS值減1.5V
  240. MOVLW FULLPWM
  241. MOVWF CCPR1L
  242. CLRWDT
  243. BTFSS ACCbHI,7 ;當(dāng)前電壓值大于1.5V?
  244. GOTO BREAK5 ;是,重新采樣
  245. BTFSC PORTB,0
  246. GOTO BREAK5
  247. BSF FLAG1,OFF ;否,置相應(yīng)的標(biāo)
  248. 志位
  249. RETURN ;返

  250. ;***************開環(huán)PWM輸出子程序****************
  251. OUT_PWM BCF FLAG1,PWM ;清相應(yīng)的標(biāo)志位
  252. MOVF TSH,0 ;將調(diào)速手柄采樣
  253. 值送至被加數(shù)
  254. MOVWF ACCaHI
  255. MOVF TSL,0
  256. MOVWF ACCaLO
  257. MOVLW 0XFF ;
  258. FF1F補(bǔ)碼為0XE1,即1.1 V
  259. MOVWF ACCbHI
  260. MOVLW 0X1F
  261. MOVWF ACCbLO
  262. CALL D_add
  263. BTFSS ACCbHI,7 ;TS>1.1V?
  264. GOTO PWM1 ;是,轉(zhuǎn)PWM1
  265. MOVLW FULLPWM ;否則輸出全高
  266. MOVWF CCPR1L
  267. RETURN
  268. PWM1 MOVLW 0XFD ;0X27B=3.1V
  269. MOVWF ACCbHI
  270. MOVLW 0X85
  271. MOVWF ACCbLO
  272. CALL D_add
  273. BTFSC ACCbHI,7 ;TS>3.1V?
  274. GOTO PWM3
  275. PWM2 CLRF CCPR1L
  276. BCF CCP1CON,4
  277. BCF CCP1CON,5
  278. RETURN
  279. PWM3 MOVLW 0X0FF ;1.1 V對應(yīng)的采樣值補(bǔ)碼送
  280. 加數(shù)
  281. MOVWF ACCbHI
  282. MOVLW 0X1F
  283. MOVWF ACCbLO
  284. CALL D_add ;TS-1.1V
  285. CLRF ACCaHI ;系數(shù)K=56=38H送
  286. 乘數(shù)
  287. MOVLW 0X3F
  288. MOVWF ACCaLO
  289. CALL D_mpy ;得到放大128倍
  290. 的低電平時(shí)間K*(TS-1.1V)
  291. MOVF ACCcHI,0 ;將結(jié)果取出
  292. MOVWF ACCaHI
  293. MOVF ACCcLO,0
  294. MOVWF ACCaLO
  295. MOVLW 0X64 ;PWM
  296. 周期T減去低電平時(shí)間,得到高電平時(shí)間
  297. MOVWF ACCbHI
  298. CLRF ACCbLO
  299. CALL D_sub
  300. BTFSC ACCbHI,7 ;低電平時(shí)間是否大于周期?
  301. GOTO PWM2 ;是,輸出全壓
  302. RLF ACCbLO ;否
  303. 則,輸出與低電平時(shí)間對應(yīng)的高電平時(shí)間
  304. RLF ACCbHI
  305. MOVF ACCbHI,0 ;D10~D2位送CCPR1L
  306. MOVWF CCPR1L
  307. BCF CCP1CON,5 ;D0位送CCP1CON5
  308. BTFSC ACCbLO,7
  309. BSF CCP1CON,5
  310. BCF CCP1CON,4 ;D.1位送
  311. CCP1CON4
  312. BTFSC ACCbLO,6
  313. BSF CCP1CON,4
  314. RETURN ;返

  315. ;****************剎車中斷服務(wù)程序***************
  316. BRAKE CALL PUSH ;保存現(xiàn)場
  317. BCF STATUS,RP0 ;回
  318. 存儲區(qū)0
  319. BSF FLAG1,SHUTDOWN;置相應(yīng)標(biāo)志位
  320. BCF INTCON,INTF ;清
  321. 中斷標(biāo)志位
  322. CALL POP ;恢
  323. 復(fù)現(xiàn)場
  324. RETFIE ;中
  325. 斷返回
  326. ;***************低電壓保護(hù)處理子程序*****************
  327. POWER BCF FLAG1,LOWPOWER;清相應(yīng)的標(biāo)志位
  328. MOVF VOLTAGEH,0
  329. MOVWF ACCaHI
  330. MOVF VOLTAGEL,0
  331. MOVWF ACCaLO
  332. MOVLW VOLOFFH
  333. MOVWF ACCbHI
  334. MOVLW VOLOFFL
  335. MOVWF ACCbLO
  336. CALL D_sub
  337. BTFSC ACCbLO,7 ;判斷當(dāng)前電池電壓值是否低
  338. 于保護(hù)電壓(32V)
  339. RETURN ;不
  340. 是,返回
  341. BCF INTCON,INTE
  342. BCF T1CON,TMR1ON ;關(guān)閉電流采樣
  343. MOVLW FULLPWM
  344. MOVWF CCPR1L
  345. BSF STATUS,RP0
  346. BCF PIE1,ADIE ;禁止AD采樣中斷
  347. BCF STATUS,RP0
  348. POWER3 BTFSC ADCON0,GO ;正在進(jìn)行AD采樣?
  349. GOTO POWER3 ;是,等待AD采樣
  350. 完畢
  351. BCF PIR1,ADIF ;清AD采樣中斷標(biāo)
  352. 志位
  353. BCF ADCON0,CHS0
  354. BSF ADCON0,CHS1 ;選擇電壓采樣通

  355. MOVLW 0X06 ;延
  356. 時(shí)等待通道轉(zhuǎn)換完成
  357. MOVWF COUNT
  358. POWER4 DECFSZ COUNT
  359. GOTO POWER4
  360. POWER6 BSF ADCON0,GO ;采樣電池電壓值
  361. POWER5 BTFSS PIR1,ADIF ;采樣完畢?
  362. GOTO POWER5
  363. BCF PIR1,ADIF ;清AD中斷標(biāo)志位
  364. BCF STATUS,C
  365. MOVF ADRESH,0 ;當(dāng)前電壓值送被加數(shù)
  366. MOVWF ACCbHI
  367. BSF STATUS,RP0
  368. MOVF ADRESL,0
  369. BCF STATUS,RP0
  370. MOVWF ACCbLO
  371. MOVLW VOLONH ;35V電壓值送被
  372. 加數(shù)
  373. MOVWF ACCaHI
  374. MOVLW VOLONL
  375. MOVWF ACCaLO
  376. CALL D_sub ;當(dāng)前電壓值減
  377. 35,與重開電壓進(jìn)行比較
  378. MOVLW FULLPWM
  379. MOVWF CCPR1L
  380. CLRWDT
  381. BTFSC ACCbHI,7 ;當(dāng)前電壓值大于35?
  382. GOTO POWER6 ;否,重新采樣
  383. BSF FLAG1,OFF ;是,置相應(yīng)的標(biāo)
  384. 志位
  385. RETURN ;返

  386. ;***電機(jī)轉(zhuǎn)子位置采樣子程序,狀態(tài)采樣子程序,出口地址:STATE1***
  387. SAMPLE MOVLW AND ;讀RB口
  388. ANDWF PORTB,0 ;分離出有效信息
  389. MOVWF STATE1 ;暫存狀態(tài)值
  390. MOVLW 0X08
  391. MOVWF DELAY
  392. DEL1 DECFSZ DELAY ;延時(shí)6 μs

  393. GOTO DEL1
  394. MOVLW AND ;讀
  395. RB口
  396. ANDWF PORTB,0 ;分離出有效信
  397. 息,并暫存
  398. MOVWF STATE2
  399. XORWF STATE1,0 ;與上一次狀態(tài)值
  400. 相異或
  401. BTFSC STATUS,Z
  402. RETURN ;兩
  403. 個(gè)狀態(tài)值相等則返回
  404. MOVLW 0X06 ;否
  405. 則延時(shí)4 μs
  406. MOVWF DELAY
  407. DEL2 DECFSZ DELAY
  408. GOTO DEL2
  409. MOVLW AND ;讀
  410. RB口
  411. ANDWF PORTB,0 ;提取有效信息并
  412. 暫存
  413. MOVWF STATE3
  414. XORWF STATE1,0 ;與第一次狀態(tài)相
  415. 同嗎?
  416. BTFSC STATUS,Z
  417. RETURN ;相
  418. 同則返回
  419. MOVF STATE2,0 ;否則再與第二次
  420. 狀態(tài)相比較
  421. XORWF STATE3,0
  422. BTFSS STATUS,Z
  423. GOTO SAMPLE ;三次狀態(tài)均不相
  424. 同則重新采樣
  425. MOVF STATE2,0 ;第三次狀態(tài)與第
  426. 二次相同,則將正確狀態(tài)賦予STATE1并
  427. MOVWF STATE1 ;返回
  428. RETURN
  429. ;************** MOSFET觸發(fā)信號輸出子程序**************
  430. OUTPUT SWAPF STATE1,1 ;STATE1寄存器高低半字節(jié)互

  431. BCF STATUS,C ;清C位,并將
  432. STATE1寄存器左移一位
  433. RRF STATE1,0 ;將
  434. 采樣所得結(jié)果放至W低三位
  435. CALL OUT_TABLE ;查表獲得輸出值
  436. MOVWF PORTC ;將輸出值輸出至
  437. RC口
  438. RETURN
  439. ;*************** RB口電平變化中斷服務(wù)程序**************
  440. SAMPRB CALL PUSH ;現(xiàn)場保護(hù)
  441. BCF STATUS,RP0
  442. CALL SAMPLE ;采樣RB口狀態(tài)
  443. CALL OUTPUT ;根據(jù)RB口狀態(tài)觸
  444. 發(fā)相應(yīng)的MOSFET
  445. CALL POP ;恢
  446. 復(fù)現(xiàn)場
  447. BCF INTCON,RBIF ;清
  448. RB口電平變化中斷標(biāo)志
  449. RETFIE ;中
  450. 斷返回
  451. ;************ AD采樣中斷服務(wù)程序***************
  452. AD CALL PUSH ;保護(hù)現(xiàn)場
  453. BTFSC FLAG1,VOLTAGE ;是電壓采樣?
  454. GOTO SET_VOL ;是,作相應(yīng)的處

  455. SET_TS BCF ADCON0,CHS0 ;AD采樣值是TS,則選擇1采
  456. 樣通道
  457. INCF COUNT_VOL ;電壓采樣周期寄
  458. 存器值加1
  459. BTFSS STATUS,Z ;電壓采樣周期到?
  460. GOTO AD4
  461. BCF ADCON0,CHS0 ;是,選擇2采樣
  462. 通道
  463. BSF ADCON0,CHS1
  464. BSF FLAG1,VOLTAGE ;置相應(yīng)的標(biāo)志位

  465. AD4 BCF PIR1,ADIF ;清AD中斷標(biāo)志
  466. MOVF ADRESH,0 ;采樣值送寄存器暫存
  467. MOVWF TSH
  468. BSF STATUS,RP0
  469. MOVF ADRESL,0
  470. BCF STATUS,RP0
  471. MOVWF TSL
  472. BSF FLAG1,PWM
  473. BTFSS FLAG1,VOLTAGE ;是否需要進(jìn)行電壓采樣?
  474. GOTO AD6
  475. MOVLW 0X05 ;
  476. 是,延時(shí)后采樣電壓
  477. MOVWF TEMP1
  478. AD5 DECFSZ TEMP1
  479. GOTO AD5
  480. BSF ADCON0,GO
  481. AD6 CALL POP ;恢
  482. 復(fù)現(xiàn)場,中斷返回
  483. RETFIE
  484. SET_VOL BCF ADCON0,CHS1 ;如果采樣值為電
  485. 壓值,則選擇0通道
  486. BCF ADCON0,CHS0
  487. BCF PIR1,ADIF ;清中斷標(biāo)志位
  488. BCF FLAG1,VOLTAGE ;清相應(yīng)標(biāo)志位
  489. MOVF ADRESH,0 ;將采樣結(jié)果放入被減數(shù)寄存

  490. MOVWF VOLTAGEH
  491. BSF STATUS,RP0
  492. MOVF ADRESL,0
  493. BCF STATUS,RP0
  494. MOVWF VOLTAGEL
  495. BSF FLAG1,LOWPOWER;是,置相應(yīng)標(biāo)志位
  496. CALL POP ;中
  497. 斷返回
  498. RETFIE
  499. ;**************中斷保護(hù)現(xiàn)場子程序******************
  500. PUSH MOVWF W_STACK ;暫存W寄存器
  501. MOVF STATUS,0 ;暫存STATUS寄存器
  502. MOVWF ST_STACK
  503. RETURN ;子
  504. 程序返回
  505. ;**************中斷恢復(fù)現(xiàn)場子程序**************
  506. POP MOVF ST_STACK,0 ;恢復(fù)STATUS寄存
  507. 器值
  508. MOVWF STATUS
  509. MOVF W_STACK,0 ;恢復(fù)W寄存器值
  510. RETURN ;子
  511. 程序返回
  512. ;**************初始化子程序****************
  513. SETUP MOVLW  .15 ;初始化TEMP

  514. MOVWF  TEMP
  515. MOVF  ACCbHI,0 ;ACCb送ACCd
  516. MOVWF  ACCdHI
  517. MOVF  ACCbLO,0
  518. MOVWF  ACCdLO
  519. CLRF  ACCbHI ;清ACCb
  520. CLRF  ACCbLO
  521. RETLW  0
  522. ;**********乘除法運(yùn)算確定結(jié)果符號子程序**********
  523. S_SIGN MOVF  ACCaHI,0 ;ACCaHI異或ACCbHI,結(jié)果送SIGN單元
  524. XORWF  ACCbHI,0
  525. MOVWF  SIGN
  526. BTFSS  ACCbHI,7 ;ACCb為負(fù)?
  527. GOTO  CHEK_A ;否,檢查ACCa
  528. CALL NEG_B
  529. CHEK_A BTFSS  ACCaHI,7 ;ACCa為負(fù)?
  530. RETLW  0 ;
  531. ACCa和ACCb均為負(fù),返回
  532. GOTO  NEG_A ;ACCa為負(fù),取補(bǔ)
  533. GOTO MAIN
  534. END
  535. ;程序結(jié)束
復(fù)制代碼


單片機(jī)控制的電動(dòng)自行車驅(qū)動(dòng)系統(tǒng).doc

37 KB, 下載次數(shù): 16, 下載積分: 黑幣 -5

評分

參與人數(shù) 2黑幣 +60 收起 理由
tieq1952 + 10 很給力!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:116662 發(fā)表于 2016-6-6 16:46 來自手機(jī) | 只看該作者
這個(gè)資料太好了,技術(shù)貼頂貼
回復(fù)

使用道具 舉報(bào)

板凳
ID:253767 發(fā)表于 2017-12-14 08:44 | 只看該作者
很需要它
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品国产乱码久久久久久a丨 | 国产婷婷在线视频 | 又爽又黄axxx片免费观看 | 一区二区精品在线 | 日韩在线播放中文字幕 | 亚洲高清在线观看 | 亚洲精品久久久久久下一站 | 日韩一级| 在线精品亚洲欧美日韩国产 | 亚洲一区二区三区在线观看免费 | 精品一区久久 | 伊人春色成人 | 中文字幕亚洲欧美 | 日韩国产一区二区三区 | 日韩在线精品 | 黄色免费在线观看网站 | 一区二区久久电影 | 91不卡在线 | 日韩一区二区三区在线播放 | 超碰地址 | 91免费福利在线 | 殴美成人在线视频 | 国产欧美日韩综合精品一 | 天天碰夜夜操 | 中文字幕四虎 | 精品人伦一区二区三区蜜桃网站 | 国产精品毛片 | 精品在线观看一区二区 | 亚洲国产精品久久人人爱 | 中文字幕亚洲一区二区va在线 | 99精品一区二区 | 国产成人一区二区三区久久久 | 国产日韩欧美另类 | 国产91九色 | 久久1区| 日韩精品久久一区 | 免费成人高清在线视频 | 亚洲视频在线观看 | 欧美精品一区二区免费 | 亚洲免费毛片 | 亚洲小说图片 |