51单片机步进电机控制汇编语言程序

发布者:幸福的人生最新更新时间:2015-02-05 来源: 51hei关键字:51单片机  步进电机控制  汇编语言 手机看文章 扫描二维码
随时随地手机看文章
;本程序是通过秒信号触发中断来实现的,要求中断程序必须在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单片机步进电机控制汇编语言程序

上一篇:DS18B20读写程序
下一篇:单片机外围电路中涉及的问题

推荐阅读最新更新时间:2024-03-16 13:53

使用51单片机和DS1302时钟芯片做一个简易的电子时钟
一、前言 今天给大家推荐一个51单片机小实验,带你使用51单片机做一款简易的电子时钟,其中计时模块采用DS1302硬件模块,显示采用LCD显示屏,具体怎么实现开来一起看看吧! 二、DS1302模块介绍 DS1302 是 DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟和31字节静态 RAM,通过简单的串行接口与单片机进行通信。实时时钟、日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年自动补偿等多种功能。时钟操作可通过 AM/PM 指示,DS1302 与单片机之间能简单地采用同步串行的方式进行通信,简易三线SPI通信模式: RES 复位 I/O 数据线 SCLK 串行时钟 SPI
[单片机]
使用<font color='red'>51单片机</font>和DS1302时钟芯片做一个简易的电子时钟
51单片机学习之1-锁存器驱动led灯
第一集 单片机的介绍以及学习必备的一些基础知识等。 第二集 一、单片机型号解析。 1、例子 AT89S5224PU AT 生产商标志,表示该器件是ATMEL公司的产品。 89 ATMEL公司的产品89系列家族(内涵Flash存储器)。 S 表示可在线编程。 还有C表示是CMOS产品、LS表示低电压2.7V-4V、LV表示低电压2.7V-6V、LP表示低功耗单时钟周期指令。 52 表示存储器的容量是8K,还有53是12K、54是16K、55是20K,51是4K、2051是2K等。 24 表示芯片的最高时钟频率为24MHZ。还有33MHZ、20MHZ、16MHZ等。 P 表示DIP封装。还有 S表示SOIC封装
[单片机]
<font color='red'>51单片机</font>学习之1-锁存器驱动led灯
51单片机案例实操 -- 倒车雷达
1. 倒车雷达 倒车雷达(PDC,Parking Distance Control)全称叫“倒车防撞雷达”,也叫“泊车辅助装置”,是汽车泊车或者倒车时的安全辅助装置,由超声波传感器(俗称探头)、控制器和显示器(或蜂鸣器)等部分组成。在倒车时,帮助司机“看见”后视镜里看不见的东西,以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车、倒车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高驾驶的安全性。 案例采用STC89C52单片机做为主控,通过高精度超声波测量距离,STC89C52单片机接收超声波的测量距离信号并处理得到数据,可实时显示在OLED上; 当测量距离小于安全距离时
[单片机]
<font color='red'>51单片机</font>案例实操 -- 倒车雷达
从零开始51单片机学习教程——连载1 目录
新的学年开始了,有不少学校是这学期开始的单片机课程,所以在这里,EEWORLD小编为各位学生策划了一套完整的单片机教程,从基础讲起。在这份课程中,初学者可以学习单片机的原理,指令,寄存器,以及接口等,并且也包括设计实例。 1课:单片机简叙 2课:单片机引脚介绍 3课:单片机存储器结构 4课:第一个单片机小程序 5课:单片机延时程序分析 6课:单片机并行口结构 7课:单片机的特殊功能寄存器 8课:单片机寻址方式与指令系统 9课:单片机数据传递类指令 10课:单片机数据传送类指令 11课:单片机算术运算指令 12课:单片机逻辑运算类指令 13课:单片机逻辑与或异或指令祥解 14课:单片机条件转移指令
[单片机]
从零开始<font color='red'>51单片机</font>学习教程——连载1 目录
51单片机系列连载7—综合应用
在中断之前介绍了静态数码管,当然,与静态对应的就是动态,动态显示就是轮流点亮各位显示器,也就是我们经常提到的扫描方式,从效果上看,各位显示器都能连续而稳定地显示不同的字符,这就是动态显示。关于亮灭的原理与静态显示是一样的,就不再赘述。 到现在已经介绍了单片机的静态、动态数码管、中断、定时器等,貌似很简单,但是综合在一起就会出现问题了,不信,看一道例题。 这个应该说并不难,但是开始却不知从何下手,先来看看标准答案: #include #include #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; s
[单片机]
基于AT89C51单片机的CAN/LIN网关设计
引言 现场总线技术已经广泛应用于工业控制中,尤其是CAN(Controler Area Nerwork)总线由于具有可靠性高、成本低、容易实现等优点,在现场总线实际工程应用中占有了较大份额。伴随着总线技术发展,LIN(Local Interconnect Network)总线作为一种低成本串行通信网络,其目标是为现有现场总线控制网络提供辅助功能,特别是汽车控制网络中总线应用,因此必然存在一个LIN总线和其它总线通信接口实现,本文以CAN总线为例,提出了一种基于AT89C51CC03单片机CAN-LIN网关设计方案。 LIN是一种低成本串行通讯网络用于实现汽车中分布式电子系统控制,LIN目标是为现有汽车网络(例如CAN总
[单片机]
基于AT89C<font color='red'>51单片机</font>的CAN/LIN网关设计
51单片机最小系统概念、组成及电路原理图
1.单片机最小系统的概念: 能使单片机正常工作的最小硬件单元电路,就叫单片机最小系统。 2.单片机最小系统的组成: (1)复位电路:t=RC1(t≥10ms); (2)时钟电路:C2=C3=(30±10)pF(一般是20~30pF); (3)存储器访问路经控制:EA/VPP=+5V时,先内后外。 另外,一般还有单片机的ISP下载口也包含在单片机最小系统中。 3.51系列单片机的最小系统电路的原理图:
[单片机]
<font color='red'>51单片机</font>最小系统概念、组成及电路原理图
基于C8051单片机和FPGA实现导纳测量仪的系统设计
虚拟仪器的广泛应用,使得用户可以根据需求,设计自己的仪器系统。无源网络导纳测量仪即是虚拟仪器设计思想的一种具体运用,旨在实现对端口网络的导纳进行自动测量。测量仪是以C8051单片机为控制和处理核心,采用可编程逻辑器件EPF10K10,根据DDS原理产生信号源,将信号源连接到待测的网络上,对网络两端的电压和电流进行差分放大,使其输出电压尽可能达到ADC的最大输入电压,然后进行A/D采样,采样时,频率随信号频率而改变,一个周期内固定采32个点,用单片机的P1、P2直接接收数据,边采样边接收。对采样所得的电流、电压数据进行快速傅立叶变换(FFT),并分别求出其模值和相位,则导纳的模值为电流模值与电压模值之比,相位为电流与电压的相位之差。
[单片机]
基于C80<font color='red'>51单片机</font>和FPGA实现导纳测量仪的系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved