没有合适的资源?快使用搜索试试~ 我知道了~
首页AVR单片机ATMEGA48 c程序应用举例
AVR单片机ATMEGA48 c程序应用举例

关于MEGA48的EEPROM操作、ATMEGA48的USART串口与PC通讯例子、ATMEGA48的T/C2与精确时钟例子、ATMEGA48外部电平变化中断PCINT例子ATMEGA48外部中断INT0例子、ATMEGA48的ADC模数转换例子、ATMEGA8/ATMEGA16多机通讯例子、ATMEGA48多机通讯例子、ATMEGA48中T/C0的相位修正PWM与快速PWM例子
资源详情
资源评论
资源推荐

单片机 的 操作例子
!"#$
快速 ,也可以叫单斜率
"
%#&'"( )*
'#+)#"" ",-.!"把变量放保存在 上赋值与否并不
影响 的值
" #/0
1
!"-,-23-----33.!!!!!!"比较匹配时 -,-,计数到比较值时
-,3, 固定等于 455
!"-6,-2-------3.!!!!!!"时钟=3 分频
!"7778,3.!!!!!!!!!!!!!!!"78 必须设置为输出时 - 输出的 才有效
!"7774,-.
!"74,3.!!!!!!!!!!!!!!"74 接按键输入上拉电阻使能
!"&/30
!"1"
!!!"9/:;74,,-0!!!!!!!!!"如果按键按下简单的按键防抖动
!!!"1
!!!!!"&/:;74,,-0.!!!"等待按键松开
!!!!!"<,3-.!!!!!!!!!!!!!!"更新 的数据 重新来电后数据不变
!!!"=
!!!"-","".!!!!!!!!!!!"刷新比较值> 占空比随之改变
!"=
=
的 ?@ 串口与 通讯例子
"!!!!!!!!!!"" )
&A"9B'#!!!!""CDC4--"E
" &!!!!!!!""@ &&
$#&"@"+!""-
7"@A"+!!!!""34
波特率 F8-- 个数据位 3 个停止位 无校验
4- 实验板硬件设置
3"G5 的 4 个跳线帽短接>使用外部晶振 CDC4E
4"G8 与 GC 的 个跳线帽短接>使用 H4D4>其他跳线开路
D"76F 接口连接到电脑
请配合串口调试软件 @@D4 或者 2') 进行调试"

%#&'"( )*"
%#&'"(+*
%#&'"(&*
" #/0
1"
!"?@-6,-$3.!!!!!!!!!!!!!!!!"下面是 D 条语句是串口初始化语句
!"?@-,-$-8.
!"?6-I,-$4J."
!"&/30!!!!!!!!!!!!!!!!!!!!"循环
!!!!!!"1!"
!!!!!!!!"'#+)#"".!!"定义一个局部变量
!!!!!!!!",)/0.!!!!!!"等待,直到接收到一个数据
!!!!!!!!"'/0.!!!!!!!"将接收到的数据发送出去
!!!!!!"=
="#
的 4 与精确时钟例子
!"
!"
!3458!9++#&!"
!!!!!!!!!!!!! )!"
&A!9B'#!!!!!!CDC4--!E!"
! &!!!!!!!!!@ &&!"
$#&!@!+!!!-!"
7!@A!+!!!!!!34!!"
计算!3 秒 ,!时钟 !/!分频 !计数 0!"
假设时钟 ,!CDC4--!E!那么!3 秒 ,!CDC4--!!/!分频 !计数 0!"
得!计数 ,CDC4--分频
由于分频只有 3D48344583-4!供我们选择>而计数最高只有
位/4550!"
为了不占用资源>中断次数尽量少一点比较好>并且中断时间越短越好
所以我们可以选择 计数 ,!时钟 CDC4--!!分频 3-4!!D- 次中断 ,!4
-!"
这个 4- 就是 4 的计数上限 !"
!"
%#&'!( )*!"
'#+)#!!4,-.!!!"
#'!K:4LM!! 4L L+/0!"
1!!"
!!4<<.!"
!!9/4*,D-0!4,-.!"
!!9/4*450!7D,3.!&+!7D,-.!"

=!"
! #/0!"
1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
!!4N,4.!!!!!!!!!!!!!!!工作于 模式/比较匹配时计算器清零0!!"
!!4,4-.!!!!!!!!!!!!!!!设置 的值/计算器的上限值0!"
!!46N,C.!!!!!!!!!!!!!!!取系统时钟 3-4 分频作为 4 时钟
!!:@O4,4.!!!!!!!!!!!!!!!!使能计数器的值达到 时产生中断
!!777D,3.!!!!!!!!!!!!!!!!使用 7D 每秒驱动蜂鸣器P嘀P一次
!!%+ /P+P0!!!!!!!!!!!!!!插入汇编语句>打开全局中断
!!&!/30!"
!!1!"
!!!!%+ /P#P0!!!!!!!!!!!!空操作的汇编代码>等待中断发生
!!=.!"
=!!"
!"
假设程序还有一个 D 位数码管动态扫描任务>这时我们就可以这样计算
3数码管的扫描频率在 C5Q5E 比较合适>太低会闪烁>太高占用资源
4每扫描一次就必须分 D 次显示>分别是个位十位百位
D这时我们可以计数出显示频率是 445Q455E/中断频率0>在这里假设
,4-E!"
这时我们就可以顺便使用这个 4 定数中断来保证扫描的可靠运行了
5计算!计数 ,!时钟 CDC4--!!分频 34!!4- 次中断 ,!4-!"
外部电平变化中断 :; 例子
!"
!"
!"
!!!!!!!!!!!!! )!"
&A!9B'#!!!!!!3------!E!"
! &!!!!!!!!!@ &&!"
$#&!@!+!!!-!"
7!@A!+!!!!!!34!!!"
外部 :;-Q:;C 共享一个中断源 :;-!"
外部 :;Q:;3 共享一个中断源 :;3!"
外部 :;38Q:;4D 共享一个中断源 :;4!"
没有使用延时通信语句>所以使用内部外部时钟都可以
每按动 :;- 按键一次>7D 的电平就翻转一次
本例子没有考虑太多的按键防抖动功能!"
%#&'!( )*!"

外部 :;38Q:;4D 共享一个中断源 :;4!"
请参考 数据手册的 页C5 页
#'!K:;4M!!:;4L+/0!"
1!"
!!6-,R6-.!!!!!电平取反
!!:JN,.!!!!!!!!!!!!!清除 :;4 中断触发标记>防止按键抖动
=!"
! #/0!"
1!!"
!!7,455.!"
!!777,-.!!!!!!!!!!!!!!!设置 :;38Q:;4D 端口为输入>上拉电阻有效
!!6-,-.!!!!!!!!!!!!!!!!!!!!!!!"
!!776-!,3.!!!!!!!!!!!!设置 6- 输出低电平>准备驱动蜂鸣器
!!!"
!!:N,.!!!!!!!!!!!!!使能 :;38Q:;4D 外部电平变化中断
!!@O4N,.!!!!!!!!!!!!使能 :;3 有效
!!%+ /P+P0!!!!!!!!!!!插入汇编语句>打开全局中断
!!!"
!!&!/30!!!!!!!!!!!!!循环>等待中断
!!!!!!!!1!"
!!!!!!!!!!!%+ /P#P0!!空操作的汇编代码>等待中断发生
!!!!!!!!=.!"
=
外部中断 :;- 例子
!"
!"
!"
!!!!!!!!!!!!! )!"
&A!9B'#!!!!!!3------!E!"
! &!!!!!!!!!@ &&!"
$#&!@!+!!!-!"
7!@A!+!!!!!!34!!"
:;- 最好接一个 CO 的上拉电阻>按键对地有效
没有使用延时通信语句>所以使用内部外部时钟都可以
每按动 :;- 按键一次>7D 的电平就翻转一次
本例子没有考虑太多的按键防抖动功能!"
%#&'!( )*!"
#'!K4M!!:;-L+/0!:;- 的中断向量是 4>请参考
数据手册的 页
1!"
剩余18页未读,继续阅读












安全验证
文档复制为VIP权益,开通VIP直接复制

评论21