• STC 51单片机42——汇编 定时器 舵机


           ORG 0000H
           HighH EQU 30H; 定义变量,高电平高八位
            TimerH EQU 31H; 定义变量,高电平高八位定时值
           TimerL EQU 32H; 定义变量,高电平低八位定时值
           Right BIT P2.0 ; 右转
           Left  BIT P2.1 ; 左转
           N  EQU     33H;        
           MOV TMOD, #10H ; T1工作方式1    
           MOV HighH, #05H; 角度赋值范围2-9
           MOV N, #50D; 按钮每秒有效一次:50*20ms=1s
     
    ;LP0:   MOV HighH, #02H; 角度赋值范围2-9
    LP0:   LCALL BUTTON; 判断是否有按键按下
           MOV A, #0FFH;
           CLR C;清除进位标志
           SUBB A, HighH;
           MOV TimerH, A;
           INC TimerH;
           MOV TL1,#00H    ;赋初始值,高电平时间
           MOV TH1,TimerH
           SETB TR1          ;启动T1
           SETB P1.0
    LP1:   JBC TF1,LP2      ;查询溢出
           AJMP LP1
    LP2:   MOV A, #0B2H;
           ADD A, HighH;
           MOV TimerL, A;    
           MOV TL1,#00H      ;赋初始值,低电平时间
           MOV TH1,TimerL
           CLR P1.0          ;
    LP3:   JBC TF1,LP0      ;查询溢出
           AJMP LP3
            
           ORG 2000H        
    BUTTON:DJNZ N,BUT1
           MOV A,  HighH
           JB Right,BUT2
           CLR C; 算减法前,先清除进位标志
           SUBB A, #02H;
           JZ BUT2       ;判断A是否为0
           DEC HighH ;右转
    BUT2:  JB Left,BUT3
           CLR C;清除进位标志
           SUBB A, #09H;
           JZ BUT3    
           INC HighH  ; 左转
    BUT3:  MOV N, #50D;
    BUT1:  RET ;返回主程序   

           END


    完整资料打包(含仿真):

    STC51单片机42-汇编定时器舵机-单片机文档类资源-CSDN下载

  • 相关阅读:
    计算机网络八股
    torch.torchvision
    电容笔和Apple pencil的区别有哪些?十大电容笔知名品牌
    centos部署nginx集群
    计算日期到天数转换
    MYSQL语言总结
    牛客刷题<32~34>非整数倍数和整数倍数数据位宽转换
    Mybatis中如何传入map参数呢?
    SQL 注入攻击的原理是什么
    嵌入式C常见面试题
  • 原文地址:https://blog.csdn.net/fengyuzhe13/article/details/128061833