L路L 2021-07-17 22:56 采纳率: 0%
浏览 20

基于8086的,用star es598pci实现用pwm电压控制led灯亮度循环变化?

利用PC平台的输入输出接口电路,外延电路采用外部PWM电压转换或定时器可控输出。要求能够实现LED灯亮度渐暗到渐亮的循环。求汇编代码和连线方式

  • 写回答

1条回答 默认 最新

  • 路漫漫其修远. 博客专家认证 2023-02-25 18:30
    关注

    以下是基于8086的汇编代码实现LED灯亮度渐暗到渐亮的循环,使用了外部PWM电压转换:

    .model small
    .stack 100h
    
    .data
    port equ 378h ; 输出端口
    delayVal dw 2000 ; 延时常量
    
    .code
    main proc
        mov ax, @data ; 初始化数据段寄存器
        mov ds, ax
    
    start:
        ; LED 从暗到亮
        mov cx, 0
    ledUp:
        out port, cx ; 输出 PWM 信号
        inc cx ; 递增 PWM 值,使 LED 逐渐变亮
        cmp cx, 255 ; 判断是否达到最大亮度
        jne ledUp ; 如果未达到最大亮度,则继续递增
    
        ; 延时
        mov bx, delayVal
    delay:
        dec bx
        jnz delay
    
        ; LED 从亮到暗
        mov cx, 255
    ledDown:
        out port, cx ; 输出 PWM 信号
        dec cx ; 递减 PWM 值,使 LED 逐渐变暗
        cmp cx, 0 ; 判断是否达到最小亮度
        jne ledDown ; 如果未达到最小亮度,则继续递减
    
        ; 延时
        mov bx, delayVal
    delay2:
        dec bx
        jnz delay2
    
        jmp start ; 循环执行
    main endp
    end main
    

    连接方式如下:

    • 将 LED 的正极连接到一个 5V 电源,负极接到一个适当的电阻上,再将电阻的另一端连接到 PC 输出端口(本例中为 0x378 端口)。
    • 将 PC 的输出端口接到外部 PWM 电压转换电路上,或者使用可控输出定时器控制 PWM 输出电压。

    注意检查输出端口和电阻的极性,以免出现短路等意外情况

    评论

报告相同问题?

问题事件

  • 创建了问题 7月17日

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?