圣龙扬特-AVR电子

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1295|回复: 1
打印 上一主题 下一主题

使用MEGA8异步晶振做定时器例程

[复制链接]

0

主题

0

好友

143

积分

初级会员

Rank: 2

UID
372
帖子
9
精华
0
注册时间
2013-4-26
在线时间
14 小时
楼主
发表于 2013-4-27 23:55:23 |显示全部楼层
没有这么复杂 用Config Clock = Soft 语句,程序自动计算年月日和时分秒
回复

使用道具 举报

0

主题

0

好友

143

积分

初级会员

Rank: 2

UID
372
帖子
9
精华
0
注册时间
2013-4-26
在线时间
14 小时
沙发
发表于 2014-3-17 17:58:22 |显示全部楼层
本帖最后由 zzzd 于 2014-3-17 18:01 编辑


其实有更简单的方法
AVR单片机的定时器2 具有异步操作功能,也就是外接一个32.768KHz的晶振构成一个独立于系统时钟的时钟源
本实验硬件非常简单,只要在端口PORTB.6和PORTB.7(接外晶振的管脚)接一个32.768KHz的晶振即可。系统时钟选内部RC振荡器。通过串口将单片机与PC机连接,在模拟中端上显示时间。
需说明一点,BASCOM 的这套语句并不支持48芯片,可能是因为其内存太小。实验中使用的是Atmega8芯片。

程序代码
'----------------利用AVR单片机定时器2的异步操作实现时钟BASIC 程序 --------------  
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
Enable Interrupts
'
'
Config Date = Ymd , Separator = -
Config Clock = Soft
'以上语句定义了中断服务程序,所以你不能再使用TIMER2!
' 系统将自动定义时间变量:Date$和Time$
Date$ = "09-04-08"
Time$ = "23:59:50"
Do
Wait 1
Print Date$ ; Spc(2) ; Time$ ;Spc(2) ; _year ; "年" ; _month ; "月" ; _day ; "日" ; _hour ; "时" ; _min ; "分" ; _sec ; "秒"
Loop
''
' 日期格式:YY-MM-DD
' 时间格式:hh:mm:ss
'
'
' 输出显示时间(本语句为一行)
'
'  


程序讲解
CONFIG CLOCK语句
CONFIG CLOCK = SOFT | USER [, GOSUB = SECTIC]
这条语句告诉编译系统自动配置用于异步操作的定时器,并定义系统变量Date$和Time$。自动生成的中断服务程序负责更新这两个变量。所以程序员只需调用这两个变量即可。对其赋值就是将其初始化(写),将其放在等号右侧即为取值(读)。
•SOFT:定义使用定时器的异步功能,至于是哪一个系统会根据注册文件($regfile)自动判断。系统自动生成一个每秒中断一次的中断服务程序。

•USER:如果使用I2C类的专用时钟芯片,则要程序员自己编写读写程序。

•GOSUB = SECTIC:该语句给程序员一个编写自己的中断服务程序的机会,以便完成特定任务。该中断服务程序必须以SECTIC为入口标志。该选项只配和SOFT选项使用,使用这一功能将占用30个字节的硬件资源。

使用这个语句,编译器将自动定义如下系统变量:_sec , _min , _hour, _day , _month , _year,同时还有TIME$ 和 DATE$。
CONFIG DATE语句
CONFIG DATE = DMY , Separator = char

•DMY:年、月、日的顺序,可以是DMY, MDY 或 YMD

•char:定义分隔符:/、-、。(点)

DATE$语句

存放日期的内部变量
语法:

•DATE$ = "mm/dd/yy"
按CONFIG DATE语句给定的格式赋值,即初始化。该语句也将同时影响 _day ,_month , _year这三个变量。

•var = DATE$
读出DATE$变量中的值。

TIME$语句

存放时间的内部变量
语法:

•TIME$ = "hh:mm:ss"
赋值,即初始化。该语句也将同时影响 _Sec,_Min , _Hour 这三个变量。

•var = TIME$
读出TIME$变量中的值。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|圣龙扬特-AVR电子 ( 鲁ICP备05022832号 )

GMT+8, 2024-5-5 10:40 , Processed in 0.190800 second(s), 17 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部