微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请高手们看看我的编程行不行得通呢

请高手们看看我的编程行不行得通呢

时间:10-02 整理:3721RD 点击:
功能是这样的,用单片机STC12C2052ad 接光敏电阻,然后PWM输出,发光模块那里应该是接P3.7,请问我这个程序对吗
ORG    0000H
L0000:  LJMP   MIN00            ; 主程序
        ; / *** *** *** *** /   初始化 PWM
PCA00:  MOV     CMOD, #82H        ; (fSYS/2)
        MOV     CCON, #00H
        MOV     CL, #00H
        MOV     CH, #00H
        MOV     CCAPM0, #00H      ; PWM0 输出
        MOV     PCA_PWM0, #00H
        SETB    CR                ; 开 PWM
        RET
        ; / *** *** *** *** / 主程序
        P1M0     EQU   91H
        P1M1     EQU   92H
        P3M0     EQU   0B1H
        P3M1     EQU   0B2H
  CMOD  EQU   0D9H
  CCON  EQU   0D8H
  CL   EQU   0E9H
  CH   EQU   0F9H
  CCAPM0  EQU   0DAH
  PCA_PWM0 EQU   0F2H
  CR   EQU   0D8H.6
  CCAP0H  EQU   0FAH
        ADC_CONTR   EQU   0C5H      ; A/D 转换寄存器
        ADC_DATA    EQU   0C6H      ; A/D 结果寄存器
MIN00:  MOV     P1M0, #08H           ; 设置 P1.3 为高阻状态
        MOV     P1M1, #08H
        MOV     ADC_CONTR, #0E3H     ; 开A/D 转换电源  P1.3
        LCALL   PCA00                ; 初始化 PWM
MIN10:  NOP                          ; 主程序 入口
        LCALL   ADC00                ; 测光敏电阻电压
        MOV     CCAP0H, A            ; 写入PWM 控制 发光亮度
        LJMP    MIN10
        RET
        ; / *** *** *** *** /  A/D 转换通道  测电压
ADC00:  MOV     ADC_DATA, #00H
        ORL     ADC_CONTR, #08H   ; 启动 AD 转换
        MOV     A, #10H           ; 判断 AD 转换是否完成
        ANL     A, ADC_CONTR
        JZ      $             ; AD 转换尚未完成, 继续等待
        ANL     ADC_CONTR, #0E7H  ; 清0 ADC_FLAG, ADC_START 位, 停止A/D 转换
        MOV     A, ADC_DATA       ; A = AD 转换结果
        RET
        END
不对的话请指出,教教我这个水深火热的菜鸟吧!



我也是菜鸟,求大神指点,学习中

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top