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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

自己寫的地磁傳感器程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2010年05月11日   【字體:

MOV A,ANGLE
 MOV B ,#19H
 add a,#01h
 mov 61H,a   ;25個脈沖的整數倍
;光電編碼器信號處理程序
ORG 0000H
LJMP  MAIN
ORG  0003H ;外部中斷0入口
LJMP SUB0
ORG 000BH ;定時器0中斷入口
LJMP SUB1
ORG 0013H ;外部中斷1入口
LJMP SUB2
org 002bh  ;定時器2中斷入口
ljmp t2t1
org 00c0h
main:call    Init_Device
 mov wdtcn,#00deh
 mov wdtcn,#0adh  ;前面的外部中斷重新配置
 mov th0,#0ffh
 mov tl0,#0ffh
 setb tr0   ;啟動計數器0開始工作
 sjmp $ ;中斷返回處
 org 100h
  ;外部中斷0引發的x方向記轉數
 sub0:inc 5eh  ;記脈沖數,為后面的定角度做準備
  mov a, 5eh
  cjne a,61h,L0 ;如果超過25個整數倍就清0
  Mov 5eh,#00H
  setb 6ah ;置內部某位為1作為標志
  l0:jnb p1.0,t0t ;判斷P1.0為低電平則跳轉
     mov a,52h
     add a,#01h ;高電平則為正轉加1
     mov 52h,a
     mov a ,53h  ;如果C=1則跳至高字節操作
     addc a,#0
     mov 53h,a
     clr c    ;清楚C標志
     reti
     t0t:mov a,52h
     subb a,#01h   ;為低電平則為反轉-1
     mov 52h,a
     mov a,53h
     subb a,#01
     mov 53h,a
     clr c
     ret
 ;Y方向引發的記轉數
sub1: inc 5fh
  mov a, 5fh
  cjne a,61h,L1
  MOV 5fh,#00H
  setb 6bh

   L1:mov ie,#82h  ;開放T0中斷禁止其他中斷
  jnb p1.1,t1t
  mov a,54h
  add a,#01h
  mov 54h,a
  mov a,55h
  addc a,#0
  mov 55h,a
  mov ie,#3fh   ;恢復成初始值
  clr c
  reti

   t1t:  mov a,54h
  subb a,#01h
    mov 54h,a
     mov a,55h
    subb a,#0
    mov 55h,a
     mov ie,#3fh
     clr c
     mov ie,#3fh
     reti
 ;Z方向引發的計轉數
sub2:inc 60h
 mov a,60h
 cjne a,61h,L2
 MOv 60h,#00H
 setb 6ch

 L2:mov ie,#84h
    jnb p1.2,t2t
  mov a,56h
    add a,#01h
  mov 56h,a
  mov a,57h
 addc a,#0
  mov 57h,a
    mov ie,#3fh
  clr c
    reti
  
    t2t:mov a,56h
  subb a,#01h
    mov 56h,a
   mov a,57h
   subb a,#0
   mov 57h,a
    mov ie,#3fh
    clr c
    mov ie,#3fh
    reti


;以下程序為地磁傳感器接收程序,定時器1做波特率發生器,波特率為9600,采用內部時鐘為16MHZ
 setb tr1  ;啟動定時器1做波特率發生器,注意同時也啟動了串口1
 setb ren
 mov r7,#04h
 trs:jnb ri,$ ;判斷一幀是否接收完畢 ri為1時接收完畢
 clr ri
 mov a,sbuf0 
 mov 5ah,a
 inc 5ah
 djnz r7,trs
 mov r7,#04h  ;循環四次把數據發送至5A~5d四個單元
 ret
  ;以下為串口1的接收程序,PC和單片機的接收協議為A0+WORKMOD+參數+A0一共四個字節
;單片機收到A0后把收到的第一個字節送至30H單元存儲,再根據WORKMOD的數據判斷參數是存至31H還是32H
;如果WOKMOD是0,則參數在VB中的設置是為FF不存,如果是1存至31H,如果是2存至32H
 setb tr1
 setb ren
 mov r7,#04h
 rec:jnb ri,$ ;判斷一幀是否接收完
 clr ri
 mov a, sbuf1
 subb a,#0ah
 jNZ,rec ;如果不等于A0則循環接收,等于則向下執行
   jnb ri,$
  clr ri
  mov a,sbuf1
  mov 30h,a ;把第一個字節存至30H
  jnb ri,$
  clr ri
  mov a ,30h
  cjne a,#0,recnum1 ;不為0則跳轉
  ret  ;為0則退出重新接收
 recnum1: cjne a,#1,recnum2  ;不為1則跳轉至方式2
  mov a,sbuf1
  mov 31h,a 
  ret
  recnum12: mov a,sbuf1
  mov 32h,a
  ret
 

 
 ;以下程序為數據發送程序,共為三部分,第一部分為定時發送,
 ;第二部分為定角度發送,第三部分為實時發送,它們的選擇是由上位機發送過來的workmod的值判定的,約定為0為實時發送,1為
 ;定時,2為定角度
 


       ;定時發送為定時1ms的mscnt倍,實現的是一個mscnt倍1ms循環
certime:mov r1,50h  ;起始地址
    mov r2,0eh   ;一次發送14個字節
    setb tr2
    sjmp $

    t2t1: push 31H
      mov a,31H
      dec a
      jz sent
      reti
      sent: mov a,@r1
      mov sbuf1,a
      jnb ti,$
      clr  ti
      inc r1
      djnz r2 ,sent
      mov r2,#0eh
      pop 31H
 mov r2,#0eh
 mov a,30h
    cjne a,#0,choosemod3
    sjmp now
   choosemod3:mov a,30h
      cjne a,#2,cerangle
 reti  
    

  ;定角度發送實現的是對1.2°的angle倍,實現1.2°的angle次循環,原理同上,這里的1.2°是以光電編碼器為基準,而且1.2°的
 ;時候正好是25個脈沖 ,不過缺點是最多只能5°,如果需要超過5°的定角度發送需要擴展
cerangle: jb 6ah,sent2
    jb 6bh,sent2
    jb 6ch,sent2;三個當中有一個走了1.2°的整數倍就發送
    sjmp $
    
    sent2: mov r1,#50h  ;起始地址
    mov r2,#0eh   ;一次發送14個字節
    setb tr1
    sjmp $
    L4: mov a,@r1
    mov sbuf1,a
    jnb ti,$
    clr  ti
    inc r1
    djnz r2 ,L4
    mov a,30h
    cjne a,#0,choosemod1
    sjmp NOW
    choosemod1:mov a,30h
    cjne a,#2,cerangle
    mov r2,#0eh
    ret

 ;實時發送
NOW: mov r1,50h  ;起始地址
 mov r2,0eh   ;一次發送14個字節
 setb tr1
 sjmp $

 L5: mov a,@r1
     mov sbuf1,a
     jnb ti,$
     clr  ti
     inc r1
     djnz r2 ,L5
     mov r2,#0eh
   mov a,30h
   cjne a,#0, choosemod2
   mov r2,#0eh
   ret
   choosemod2:mov a,30h
      cjne a,#2,cerangle
 sjmp  certime1
     end
 本例完整程序下載:http://www.zg4o1577.cn/ziliao/file/dici.rar

關閉窗口

相關文章

主站蜘蛛池模板: 日日操av| 亚州综合一区 | 国产精品自产av一区二区三区 | www.天天干.com | 一级黄色片毛片 | 国产精品一区二区三区在线播放 | 亚洲天天干 | 久久久av | 欧美在线视频不卡 | 最新日韩av| 国产欧美在线一区 | 在线区| 国产精品免费一区二区 | 亚洲一区二区在线播放 | 一级毛片免费完整视频 | 美女二区 | 欧美日韩一区二区三区四区 | 日本一区二区电影 | 国产精品久久久久久久久久免费 | 在线观看黄色电影 | 美女久久| 日韩一区二区在线观看 | 国产精品视频播放 | 最新中文字幕在线 | 久久久国产精品网站 | 中文字幕一区二区三区在线观看 | 紧缚调教一区二区三区视频 | 激情av免费看| www.黄色在线观看 | 日日操天天射 | 99久久精品国产一区二区三区 | 国产伦精品 | 国产精品视频500部 a久久 | 亚洲在线免费观看 | 国产激情一区二区三区 | 亚洲高清视频一区二区 | www四虎com| 超碰在线免费av | 国产一在线观看 | 成人午夜毛片 | 久久不卡日韩美女 |