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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4690|回復: 0
收起左側

51單片機步進電機控制匯編語言程序

[復制鏈接]
ID:76127 發表于 2015-4-17 22:48 | 顯示全部樓層 |閱讀模式
本程序是通過秒信號觸發中斷來實現的,要求中斷程序必須在1S內執行完畢
;步進電機轉速控制是通過8255輸入信號在每次執行中斷程序內調整控制信號的循環次數來實現的
CODE   SEGMENT
  ASSUME CS:CODE

START:  PUSH CS
  POP DS;數據段和代碼段共用一個地址
  JMP MAIN
  NUM DB 08H,04H,02H,01H;  定義循環控制信號
  DAT1 DB 0H    ;定義循環參量
  DAT2 DB 0H

;---------初始化8253計數器-----------
MAIN: MOV DX,203H;計數器0初始化,工作在方式3
  MOV AL,36H
  OUT DX,AL

  MOV DX,200H;給計數器0賦計數初值960H(2400)
  MOV AL,60H ;低8位
  OUT DX,AL
  MOV AL,09H ;高8位
  OUT DX,AL

  MOV DX,203H;計數器1初始化,工作在方式3
  MOV AL,76H
  OUT DX,AL

  MOV DX,201H;給計數器1賦計數處值80H(128)
  MOV AL,80H ;低8位
  OUT DX,AL
  MOV AL,00H ;高8位
  OUT DX,AL

;-----------初始化8255---------------
  MOV DX,021BH;A口輸入,B口輸出
  MOV AL,90H
  OUT DX,AL
   
;-----------初始化向量表8號中斷--------
  MOV AX,0;ES:DI  
  MOV ES,AX
  MOV DI,20H;4*8=32
  MOV AX,OFFSET INTP;裝載中斷函數的偏移地址
  MOV ES:[DI],AX
  MOV AX,8100H;
  MOV ES:[DI+2],AX
;-------------初始化8259A--------------
  MOV DX,210H;ICW1初始化
  MOV AL,13H;上升沿觸發,單片,要ICW4
  OUT DX,AL

  MOV DX,211H;ICW2初始化
  MOV AL,08H;初始化中斷類型碼范圍,08-0F對應INT0-INT7
  OUT DX,AL

  MOV DX,211H;ICW4初始化
  MOV AL,01H;
  OUT DX,AL
;--------------打開中斷--------------
  MOV DX,211H;打開8259A八號中斷
  IN AL,DX
  AND AL,0FEH;1111 1110
  OUT DX,AL
  STI;開CPU中斷,IF=1

  MOV BX,OFFSET NUM;取控制信號的偏移地址
  MOV SI,0       ;將SI循環歸零

LOP:    MOV AX,0
  JMP LOP;死循環,等待中斷到來

;------------中斷程序開始----------
  INTP PROC FAR;
LTP: MOV DX,219H
  MOV AL,[BX+SI]
  OUT DX,AL
  INC SI
  CMP SI,04H
  JNZ NEXT
  MOV SI,0

NEXT:   MOV CX,03FFFH ;簡短延時
  LOOP $
  CALL REFRESH;調用按鍵掃描子程序
  DEC DAT1  ;循環次數減一
  JNZ LTP   ;循環次數減為零時跳出循環

  MOV AL,DAT2;重新填裝DAT1的值
  MOV DAT1,AL
  
  MOV DX,210H;中斷結束命令
  MOV AL,20H
  OUT DX,AL
  IRET;中斷返回
  INTP ENDP

;-------按鍵掃描程序----------
REFRESH PROC FAR
  MOV DX,218H
  IN AL,DX
  CMP AL,00H
  JNZ NEXT1  ;若輸入信號為00,則循環參量置為1
  MOV DAT2,01H
NEXT1: CMP AL,01H
  JNZ NEXT2  ;若輸入信號為01,則循環參量置為2
  MOV DAT2,02H
NEXT2: CMP AL,03H
  JNZ NEXT3  ;若輸入信號為11,則循環參量置為3
  MOV DAT2,03H
NEXT3: CMP AL,07H
  JNZ NEXT4  ;若輸入信號為111,則循環參量置為4
  MOV DAT2,04H
NEXT4   MOV DAT1,0H
  RET
REFRESH ENDP
;-------按鍵掃描結束----------
CODE    ENDS
  END START

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产丝袜一区二区三区免费视频 | www国产成人免费观看视频,深夜成人网 | 日韩欧美精品在线 | 91精品国产色综合久久不卡98 | 国产精品夜夜夜一区二区三区尤 | 天天干狠狠 | 精品国产乱码一区二区三 | 免费看黄视频网站 | 日韩中文一区二区三区 | 亚洲最大福利网 | 国产精品一卡二卡三卡 | 欧美视频在线观看 | 国产精品久久久久久久久久久新郎 | 国产色婷婷精品综合在线播放 | 一区二区三区免费观看 | 拍戏被cao翻了h承欢 | 99在线资源 | 中文字幕一区二区三区在线观看 | 大学生a级毛片免费视频 | 成年人视频在线免费观看 | 久久精品欧美一区二区三区不卡 | 日韩欧美亚洲 | 99re免费| 中文二区 | 91精品国产综合久久福利软件 | 中文精品视频 | 一区二区av | 在线播放亚洲 | 久草在线免费资源 | 91就要激情 | 久久精品亚洲欧美日韩久久 | 久久免费视频在线 | av网站免费在线观看 | 久久爱综合 | va在线| 午夜视频一区二区 | 91久久精品国产91久久 | 美女视频一区 | 日韩高清一区二区 | 国产精品久久一区二区三区 | 欧美日韩在线综合 |