AVR 实习践教学指导书 新势力单片机收集整理 版权属原作者 www.XinShiLi.net
第 1 页(共 108 页)
查
AVR 单片机
实习教学指导书
保定电力职业技术学院
动力工程系热自教研室
2007 年 4 月 18 日
AVR 实习践教学指导书 新势力单片机收集整理 版权属原作者 www.XinShiLi.net
第 2 页(共 108 页)
AVR 实习践教学指导书 新势力单片机收集整理 版权属原作者 www.XinShiLi.net
第 3 页(共 108 页)
目录
一 自延时与数据移位(M01- M02)
二 键控分支(M03- M04)
三 自动计数(M05- M06)
四 键控计数(M07- M08)
五、逻辑控制(M09- M10)
(一) 由逻辑图编程
(二) 由逻辑命题编程
六 动态显示与数据转换(M11- M13)
七 外中断使用(M14- M15)
八 定时/计数器使用(M16- M19)
(一) 定时器设置:
(二) 定时中断控制
九 定时/计数器应用(M20- M20B)
(一) 实时钟显示
(二) 高频测量
(三) 低频测量
十 脉宽调制 PWM(M21- M22)
十一 显示驱动 7219 集成块使用(M23- M27)
(一) 数码显示:8 位 8 段数码管巡回显示多参数
(二) 点阵显示:8×8 点阵字符汉字显示控制
十二.模数转换 A/D 功能的使用(M28- M29)
十三.液晶显示器的使用(M30- M33)
十四 4×4 矩阵键盘的使用(M34- M37)
十五 异步通信(M38)
十六 模拟比较器(M39)
十七 常数设置(M40)
十八 教学演示综合测试程序(M41- M42)
十九 AVR 毕业论文参考课题
二十 AVR 毕业论文参考框架
附图 1:实习系统连接图
附图 2:AVR 芯片引脚图
附图 3:实习板电路原理图
附录 1.自定义文件头应用说明。
附录 2:CVAVR 编译器简介:
一、标示符 二、数据类型 三、关键字 四、常用内部函数.
附录 3:实习命题参考程序:
一、自定义文件头程序 二、命题程序(M1- M40)三、演示程序
AVR 实习践教学指导书 新势力单片机收集整理 版权属原作者 www.XinShiLi.net
第 4 页(共 108 页)
实践教学说明:
1 命题路径及文件名:如 D:\GY1\M0101(含义 高职仪表- 学号- 命题编号)
其中:命题 M,考题 K
2 考核模式及分值:
1 上电时状态(20 分) 2 控制状态 1(30 分) 3 控制状态 2 (30 分) 4 状态返回(20 分)
一、延时显示与移位
M01.试编程序,使 8 个发光管和 8 个数码管全部按 0.5 秒间隔闪光。
M01A.试编程序,使单个发光管亮按 0.2 秒时间间隔向左循环移动。
M02.试编程序,使发光管按 0.5 秒向左逐位循环全部点亮。
M02.A 试编程序,使单个数码管显示台号尾数并按 0.3 秒时间间隔向左循环移动。
教学提示:
1.I/O 口设置提示:
编写程序中必须先说明 I/O 口的状态:如图所示每个口有三个口地址。
2.闪光提示:
使数码管闪光有 3 种方法 1).亮灭分别延时 2)使用取反语句 3)使用异或语句
3.内部自延时提示:
延时函数 (微秒级):
文件头: #include "delay.h"
格式: delay_us(1~65535)
delay_ms(1~65535)
例:delay_us(100) //100 微妙
AVR 实习践教学指导书 新势力单片机收集整理 版权属原作者 www.XinShiLi.net
第 5 页(共 108 页)
delay_ms(100) //100 毫秒
4.发光管移位提示:
char i;
for (i=0;i<=8;i++)
{ PORTC =0xFF>>i;
delay_ms(500);}
5.数码管移位提示:
char i;
for (i=0;i<8;i++)
{PORTD = ~(0X80>>i);
delay_ms(500);}
二、键控分支
M03.试编程序,上电后,显示台标尾数,发光管全灭。按左 1 键后使八个发光管
向左逐个全部点亮,循环进行。按右 1 键后使八个发光管向右逐个全部点亮,循环进行。
(0.5 秒)。
M04.试编程序,上电后, 0.3 秒闪光显示台号尾数,按右 1 键发光管由中间向 两
边依次全亮,按右 2 键由两边向中间全亮。按左 1 键后返回显示台号尾数。
教学提示:
按键控制的几种模式
1.程序等待按后通过:
while(PIND.0==1) ;
2.按住时等待或执行预定程序:
while(PIND.0==0) { … };
3.按一键后执行预定程序时
if(PIND.0= =0) while(1){ … }
程序参考框架:
if(PIND.7= =0) while(PIND.0==1)
{左移}
if(PIND.0= =0) while(PIND.7==1)
{右移}
三、自动计数
M05.试编程序,使右 1 数码管间隔 03 秒 显示 0~F 不断循环。
M06.试编程序,使两头数码管 0~9 不断循环中小于 5 时发光管低四位亮,等于 5
时全亮,大于 5 时高四位亮。(以上间隔 0.5S)
教学提示:
1.解题思路
建一个全局型单维数组变量并给出 0 ~ F 对应的数码管代码,然后将数组值通过循
环语句按顺序延时赋给 PB 口。
评论0