c51单片机怎么调节电压

c51单片机怎么调节电压,第1张

其实这个很简单啊,

1、就是你要知道单片机的I/O口输出的电压是什么,I/O口输出的电压是平均值,也就是说你控制好输出的电压就可以控制好亮度(当然,这是指输出变化的时间在10ms左右)

2、既然要调节亮度,那么就是改变平均值,改变平均值的方法就是改变输出占空比,

3、因为是4级的调节,为了让眼睛分辨得出来建议用1/8,3/8,5/8,8/8输出

以上的方法以前用过,还算好用,这个方法只能直接驱动,不能加三极管驱动,若用三极管驱动会出现闪烁。希望这些对你有帮助

实用的方法是:

1:比较器检测交流电的过零信号;

2:单片机根据过零信号,延迟输出触发脉冲,驱动双向可控硅;

3:调整单片机的延迟时间可以调整触发信号相位,达到调压目的。

交流调压,使用PWM方式调压,较难实现。

;十进制调整结果放在30H(百)、20H(十)、10H(个)

;以下是主程序

org 00h

mov a,#0ffh;端口初始化

mov p0,a

mov p1,a

mov p2,a

mov p3,a

main:anl p1,#0f0h;开机显示000

mov 30h,#00h;清除十进制调整结果存放的内存区

mov 20h,#00h

mov 10h,#00h

start:clr p36;启动A/D转换器

nop

nop

setb p36

wait:jb p20,adc;A/D转换是否完成?

call disp;转换未完成则调用显示子程序

jmp wait;继续判断A/D转换是否完成?

adc:movx a,@r0;读入A/D转换结果

call tiaozheng;调用十进制调整子程序

mov r1,#10;显示时间控制初值

disp1:call disp;调用显示子程序

djnz r1,disp1;显示时间到了没有?

jmp start;继续进行下一次的A/D转换(更新电压数据)

;以下是显示子程序

disp:mov a,10h;取个位显示数据

orl a,#30h;个位显示数据+个位的使能端

mov p1,a;(个位显示数据+个位的使能端)

从P1口输出

call delay;延时5ms

mov a,20h;取十位显示数据

orl a,#40h;十位显示数据+十位的使能端(小数点在十位的时候亮)

mov p1,a;(十位显示数据+十位的使能端)从P1口输出

call delay;延时5ms

mov a,30h

orl a,#90h

mov p1,a

call delay

clr a

ret

;以下是十进制调整子程序

tiaozheng:mov b,#100

div ab;商在A中(百位),余数在B中

mov 30h,a

mov a,b

mov b,#10

div ab;商在A中(十位),余数在B中(个位)

mov 20h,a

mov 10h,b

mov a,10h;个位乘以2

add a,10h

da a;十进制调整

mov 10h,a;个位十进制调整存入10H单元

jb acc4,shijia1

mov a,20h

add a,20h

da a

cunshi:mov 20h,a;十位的十进制调整存入20H单元

jb acc4,baijia1

mov a,30h

add a,30h

da a

cunbai:mov 30h,a;百位的十进制调整存入30H单元

ret

shijia1:setb c;进位位置1

mov a,20h;十位乘以2+1

addc a,20h

da a

jmp cunshi

baijia1:setb c;进位位置1

mov a,30h;百位乘以2+1

addc a,30h

da a

jmp cunbai

;以下是5ms延时子程序

delay:mov r4,#10h

d1:mov r5,#248

djnz r5,$

djnz r4,d1

ret

end

以上就是关于c51单片机怎么调节电压全部的内容,包括:c51单片机怎么调节电压、如何用单片机的电压信号来控制220V的电压大小、利用单片机与DAC0809设计简易电压表,能够测量和显示0—5V电压,设计电路和程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9295774.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存