×
单片机 > 单片机程序设计 > 详情

BASCOM-AVR版调光演示程序

发布时间:2020-08-27 发布时间:
|

rem Main.bas file generated by New Project wizard
rem Created:   周五 8月 30 2019   TAOTIE
rem Processor: ATmega16
rem Compiler:  BASCOM-AVR
rem BASCOM-AVR版调光程序由Proteus 8 .8 中 Arduino Dimming 230V AC例程修改而来
rem  示波器观察220V交流波形与同步过零信号交叉位置。触发可控硅信号时上升沿的位置
$regfile = "m16def.dat"                                
$crystal = 8000000                                          
   
'**********************安排变量*******************************           
DIM us_Zhi AS Word    '微秒值变量
DIM i as Byte            '循环计数变量
DIM beilv as Byte          '调光倍率变量(0-128)0 = ON,128= OFF
beilv = 128
'*******************端口初始化*********************************************************************
DDrd.2 = 0  'pd2脚为输入(I NT0过零同步信号输入端)
Pind.2 = 1              ' pd2脚上拉电阻有效   
DDrA.3 = 1        ' 将pa3引脚设置为输出(触发控制交流负载 端)
PortA.3=1      '将pa3引脚设置为高电平             
'******************外部I NT0过零同步信号中断设置*******************************************************************************
Config Int0 = rising                                    '外部中断 Low Level低   rising 上   falling下
On Int0 guo_0_zd                                              ' 过零中断服务入口
Enable Interrupts                                          '使能全局中断
Enable Int0                                              '使能外部I NT0过零中断
'**********触发角控制倍率循环计数***********************************
do
  for  i = 1 to  128 Step 1
      i=i+1
     beilv=i
     Waitms 10     
Next i
   i = 1
loop
'***************外部中断过零服务子程序******************
guo_0_zd:
us_Zhi = 75*beilv
Waitus us_Zhi          '高版本2078就是好,延迟时间值可以是变量  
PortA.3=1
Waitus 10
PortA.3=0
Return
'触发角计算:1个完整的50Hz波= 1/50 = 20ms
'每次零交叉:(50Hz) - > 10ms(1/2周期)
'对于60Hz => 8.33ms(10.000 / 120)
'10ms = 10000us
'(10000us  -  10us)/ 128 = 75(大约)60Hz => 65

关键字:BASCOM-AVR版  调光  演示程序 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析