欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 數字PWM功能--Proteus 仿真 [打印本頁]

作者: taotie    時間: 2019-11-10 13:50
標題: 數字PWM功能--Proteus 仿真
rem 《AVR單片機basIc語言編程及開發》數字PWM功能------Proteus 仿真
rem Created:   周六 11月 2 2019   taotie

rem Processor: ATmega8
rem Compiler:  BASCOM-AVR
rem Write your code here

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
dim e as Word, f as Word     '比較值變量
config TIMER1=PWM,PWM=10, compare a PWM = clear up,  compare b PWM=   clear down, prescale=8
   '配置t/c1作pwm。pwm分辨率為10 位長度 。pwm1a和pwm1b分別作正向清零和反向清零。計數器預分頻8
   DDRB=&B00000110                                              'PB1,PB2為輸出
   CONFIG  INT0=rising                                      ' 配置外部中斷INT0,INT1中斷時分別對比較值作加減計算
   CONFIG  INT1=rising                                      'Low Level低   rising 上   falling下
   ON  INT0  ISR0                                                     '中斷發生時子程序標號
   ON  INT1  ISR1
   ENABLE  INT0                                                      '開放中斷
   ENABLE  INT1
   ENABLE   INTERRUPTS                                     '開放全局中斷
EERO:
   INPUT "輸入大于0,小于1023的PWM1A值E : ",E                            '鍵盤輸入比較值E
   if e>1022 THEN  GOTO  EERO
   FERO:
    INPUT "輸入大于0,小于1023的PWM1B值F : " ,F                           '鍵盤輸入比較值F
   if f>1022 THEN  GOTO  FERO
   PWM1A=E                                                         'PWM比較寄存器置入初值E,F
   PWM1B=F
   START  TIMER1                                                 '啟動TIMER1
   DO
   IDLE                                                                  '     空閑方式睡眠狀態
   LOOP
   END
ISR0:                                                               '  int0中斷發生時子程序
   IF E<1023 THEN  E=E+20                              '    E,F加一,更改比較寄存器值
   IF E>1022 THEN  E=1022
   IF F<1023 THEN  F=F+20
   IF F >1022 THEN  F =1022
    PWM1A=E
    PWM1B=F
   PRINT   "向上輸出E值";E
   PRINT   "向上輸出F值";F
    RETURN
ISR1:                                                                        '  int1中斷發生時子程序
    IF E>20 THEN  E=E-20                                           'E,F減一,更改比較寄存器值
    IF E< 0 THEN  E=1
    IF F>20 THEN  F=F-20
    IF F< 0 THEN  F=1
    PWM1A=E
    PWM1B=F
    PRINT   "向下輸出E值";E
    PRINT   "向下輸出F值";F
    RETURN







作者: 51hei團團    時間: 2019-11-10 23:13
好東東啊 能分享下工程文件學習下嗎?
作者: taotie    時間: 2019-11-11 13:24
如果沒有安裝Proteus 8 .8給你工程文件也沒用。現在有源代碼和仿真圖不是很好嗎!
作者: taotie    時間: 2019-11-11 14:13
擴展一下,PWM驅動大功率IGBT管點亮36V100W燈泡并控制亮度。



作者: yaojil    時間: 2019-11-20 16:46
還沒有入門,謝謝分享!




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1