首 页 学 苑 例 子 工 具 下 载 商 城 论 坛
     
 

    这个流水灯使用定时器0的中断完成延时,同时验证timer0的定时功能,当然程序可能有不同的写法,因此不要期望我写出来程序是最合理的;如果你有例子请你能够把它贴到论坛里面,我会把它整理到这个板块,源程序可以是FASTAVR或者BASCOM-AVR,谢谢!

'/////////////////////////////////////////////////////////
'///工程:FastAVR Basic 使用定时器0的流水灯试验
'///芯片:mega8515
'///简介:LED从PORTB.0流动到PORTB.7然后流回来
'///编译:通过,131 words
'///实践:实物测试通过
'///作者:agui2008
'///时间:2005/8/11
'/////////////////////////////////////////////////////////

$Device = m8515                          '声明AVR型号
$Stack = 32                             '堆栈大小
$Clock = 1                              '时钟频率1M
$Timer0 = Timer, Prescale = 1024        'timer0为定时器,预分频1024
Declare Interrupt Ovf0()                '声明使用timer0溢出中断

Dim n As Byte                           '定义循环变量n
Dim m As Byte                           '定义计数方向变量m
n=0
m=0                                     'm=0,n=n+1;m=1,n=n-1
DDRB=255                                '定义PORTB为输出口

Enable Interrupts                      '允许全局中断
Timer0=&h3d                            'timer0中断溢出时间=200ms
Enable Ovf0                            '允许timer0中断
Start Timer0                           '启动timer0
Do
Select Case n
      Case 0
          PORTB=&b00000001
      Case 1
          PORTB=&b00000010
      Case 2
          PORTB=&b00000100
      Case 3
          PORTB=&b00001000
      Case 4
          PORTB=&b00010000
      Case 5
          PORTB=&b00100000
      Case 6
          PORTB=&b01000000
      Case 7
          PORTB=&b10000000
End Select
Loop
End
'//////////////定时器0中断服务程序///////////////
Interrupt Ovf0()                        'timer0中断服务
Timer0=&h3d                             '重装初值,其实可以用比较模式实现自动重装

If n=7 Then                             '控制计数方向
m=1
ElseIf n=0 Then m=0
End If

If m=0 Then
Incr n                                  'n=n+1
ElseIf m=1 Then                         '根据m决定对n进行加减1
Decr n                                  'n=n-1
End If
Enable Interrupts                       'AVR在进入中断之后会关闭全局中断,所以在这里要重新打开全局中断
End Interrupt                           '中断服务程序结束

播放流水灯MPG4 如果您不能播放请到下载栏下载G726解码插件

 
 

链接:

 

周立功  AVR单片机DIY 21IC社区 正强单片坊 电子资料城
双龙电子 ICCAVR 力源信息 www.atmel.com 电子之城
华强电子世界 AVR与虚拟仪器 美信中国 www.fastavr.com ARM开发网
宁波三和壳体公司 杭州福芯电子 芯艺设计室 www.mcselec.com 东创科技

Copyright©2005 Basicavr.com Email:agui2008@21cn.net  TEL:13798456680 FAX:075584717022

地址:深圳市华强北路赛格电子市场一楼1B105柜 QQ:543527753 粤ICP备05079885号