AVR单片机实验教学指导书.docx

上传人:b****0 文档编号:16944585 上传时间:2023-07-20 格式:DOCX 页数:163 大小:568.36KB
下载 相关 举报
AVR单片机实验教学指导书.docx_第1页
第1页 / 共163页
AVR单片机实验教学指导书.docx_第2页
第2页 / 共163页
AVR单片机实验教学指导书.docx_第3页
第3页 / 共163页
AVR单片机实验教学指导书.docx_第4页
第4页 / 共163页
AVR单片机实验教学指导书.docx_第5页
第5页 / 共163页
AVR单片机实验教学指导书.docx_第6页
第6页 / 共163页
AVR单片机实验教学指导书.docx_第7页
第7页 / 共163页
AVR单片机实验教学指导书.docx_第8页
第8页 / 共163页
AVR单片机实验教学指导书.docx_第9页
第9页 / 共163页
AVR单片机实验教学指导书.docx_第10页
第10页 / 共163页
AVR单片机实验教学指导书.docx_第11页
第11页 / 共163页
AVR单片机实验教学指导书.docx_第12页
第12页 / 共163页
AVR单片机实验教学指导书.docx_第13页
第13页 / 共163页
AVR单片机实验教学指导书.docx_第14页
第14页 / 共163页
AVR单片机实验教学指导书.docx_第15页
第15页 / 共163页
AVR单片机实验教学指导书.docx_第16页
第16页 / 共163页
AVR单片机实验教学指导书.docx_第17页
第17页 / 共163页
AVR单片机实验教学指导书.docx_第18页
第18页 / 共163页
AVR单片机实验教学指导书.docx_第19页
第19页 / 共163页
AVR单片机实验教学指导书.docx_第20页
第20页 / 共163页
亲,该文档总共163页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

AVR单片机实验教学指导书.docx

《AVR单片机实验教学指导书.docx》由会员分享,可在线阅读,更多相关《AVR单片机实验教学指导书.docx(163页珍藏版)》请在冰点文库上搜索。

AVR单片机实验教学指导书.docx

AVR单片机实验教学指导书

 

AVR单片机

实习教学指导书

 

保定电力职业技术学院

动力工程系热自教研室

2007年4月18日

 

一自延时与数据移位(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)三、演示程序

实践教学说明:

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微妙

delay_ms(100)//100毫秒

4.发光管移位提示:

chari;

for(i=0;i<=8;i++)

{PORTC=0xFF>>i;

delay_ms(500);}

5.数码管移位提示:

chari;

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口。

2.共阴极数码管字段显示原理

3.数码管代码表

四、键控计数

M07.试编程序,上电后使八个发光管全灭,每按右1键一次使八个发光管以亮1灭零方式记一个数。

M08.试编程序,每按一次左1键数码管加一个数,数码管到9时归0继续不断循环计数。

教学提示:

1.键控抖动波形图:

2.键控计数消抖程序1

if(PIND.0==0)//等待键按下

{while(PIND.0==0)//等待键松开

delay_ms

(2);//前沿延时消抖

//delay_ms

(2);//后沿延时消抖

PORTC--;}//上升沿有效

3.键控计数消抖程序2(见教材)

bitp1;

p1=PIND.0;

if(PIND.0==0&&p1==1)PORTC--;p1=PIND.0;

delay_ms(20);

五、逻辑控制

(一)由逻辑图编程

如果用拨动开关左1和右1二位代表逻辑输入A、B,发光管最高位左1位代表逻辑输出Y,试编程序实现下述逻辑关系:

M09.与非逻辑

M09A.同或逻辑

教学提示:

1.与或非逻辑图为例(使用PA口输入和PC口输出)

1)文件头中定义三个位变量:

bitA,B,Y

2)输入变量赋值:

A=PINA.0;

B=PINA.7;

3)变量逻辑运算:

Y=!

(A||B);

4)输出变量送出赋值:

PORTC.7=Y;

(二)由逻辑命题编程

如果用拨动开关左1、左2、左3代表逻辑输入A、B、C,发光管左1、左2、左3位指示其状态,用数码管1和0指示输出状态试编程序实现下述逻辑关系:

M10.模拟少数服从多数表决器(三取二)。

M10A.模拟举重电子表决器(加权三取二)。

说明:

三个举重裁判:

一个主裁判两个副裁判,主裁具有否决权,即当主裁不同意时则此举无效。

只有主裁再加上至少一个副裁同意则此举有效。

M10B.模拟电源负荷智能分配(三对二变量)。

如果用拨动开关左1、左2、左3代表逻辑输入A、B、C,发光管左1、左2、左3位指示其状态,用数码管左1和右1位亮灭指示输出YA、YB状态试编程序实现下述逻辑关系:

如图所示有3个用电户:

A1、B1、C2,其中A与B用电量相同,C2则是2倍A1的用电量。

这些用电户分别由2台发电机Y1、Y3供电,发电机Y1的最大功率等于B1的功率消耗,发电机Y3的最大功率是Y1的3倍。

试用拨动开关分别代表A1、B1、C2用电户,用发光管代表发电机Y1、Y3运行状态。

编写控制程序,能根据各用电户的启动与关闭情况,以最节约电能的方式自动启停发电机。

教学提示:

1.解逻辑命题步骤

1)按命题定义变量并建真值表;

2)由真值表直接列逻辑式并简化逻辑式;或由真值表建卡诺图由卡诺图列简化逻辑式;

3)根据逻辑式编写程序;

2.M10.解题要点

按命题定义变量、建真值表、化简如下图:

3M10B.解题要点

按命题定义变量、建真值表、公式化简如下图:

M10C水箱水位自动显示及控制

如果用拨动开关右1、右2、右3代表水位低中高检测开关A、B、C,发光管右1、右2、右3则指示开关状态。

数码管显示0-1-2-3分别代表水位指示,数码管显示E则代表故障,如图所示,试编程序实现下述功能:

无水时数码管显示0,且发光管左1位0.4秒闪光报警。

水位漫过A数码管显示1,水位漫过B数码管显示2,水位漫过C数码管显示3,且发光管左2位0.4秒闪光报警。

否则数码管显示E表示线路故障且发光管左3位0.4秒闪光报警。

教学提示

1.连接方法:

在实习板上,PB口接口与数码管字段LEDD1接口用扁平线相连,PD接口与数码管字位LEDW1接口用扁平线相连。

PC口与开关插口连接,PA口红灯插口连接。

2.水箱控制流程图参考:

六、动态显示与转换

M11.试编程序,使数码管显示:

“12345678”。

(M11A:

08-00-00)。

M12.试编程序,使数码管循环高速显示:

“0000~9999”当数字小于2006时发光管低四位亮否则发光管高四位亮。

M12A.试编程序,使数码管循环显示0000~FFFF,方式为“--数字--”,当数字小于8000时发光管单灯循环右移否则循环左移。

教学提示:

显示原理及参考程序

1.要显示的数据:

2.显示数据过程:

3.显示子程序

voiddisplay(void)//文件名

{unsignedchari;

for(i=0;i<8;i++){

PORTB=ledbuff[i];//将缓冲区数据送PORTB口

PORTD=~(1<

delay_ms

(1);//每一位显示保持一定时间

}

}

4.BCD转换程序

ledbuff[0]=tabel[XX%10];

ledbuff[1]=tabel[XX/10%10];

ledbuff[2]=tabel[XX/100%10];

ledbuff[3]=tabel[XX/1000%10];

语句1例:

XX=1234:

除10取余等于4。

语句2例:

XX=1234:

除10取商等于123.4,

再除10取余等于3。

其它类推。

5.HEX转换程序

ledbuff[0]=tabel[XX%16];

ledbuff[1]=tabel[XX/16%16];

ledbuff[2]=tabel[XX/256%16];

edbuff[3]=tabel[XX/256/16%16];

M13.试编程序,使点阵管动态显示“甲”字。

M13A.试编程序,使点阵管动态间隔约1秒轮流显示“电”、“力”两字。

…..教学提示:

点阵动态显示字位与字段排列如下:

如甲的代码。

七、外中断使用

M14.试编程序,上电后,发光管不显示,按住中断0键手离开后发光管低4位亮。

按住中断1键手离开后发光管高4位亮。

M15.试编程序,用外中断0和1分别控制发光管左右循环依次全部点亮的方向,中断0右循环,中断1左循环。

教学提示:

1.中断原理

2.中断消抖程序1

delay_ms(20);

if(PIND.2==1)

PORTC=0X0F;

GIFR|=0X40;

3.中断消抖程序2

while(PIND.2==0)

delay_ms(20);

delay_ms(20);

PORTC=0X0F;

八、定时/计数器使用

(一)定时器设置:

M16.试编程序,用定时/计数器0查询方式使8个发光管间隔0.5秒闪亮。

M17.用定时/计数器0中断方式实现数码管低4位显示-00-到-60-秒循环计时。

M17A.同上题,分别用定时/计数器0,64分频,1ms时基(t),中断方式实现数码管低4位显示-00-到-60-秒循环计时

教学提示

1.T0中断原理图:

2.T0查询法初始化

PORTC=0xFF;

DDRC=0xFF;

TCCR0=0x02;//接内部RC震荡器,8分频。

TCNT0=56;//计数器初装X=FF-t/T

//注:

T为分频后周期,t为计数器溢出周期。

3.T0查询法编程

for(i=250;i>0;i--)//查询次数统计

{while(!

(TIFR&0x01));//查询是否溢出

TIFR|=0x01;//清溢出位

TCNT0=56;//重新置数}

4.T0中断法服务程序

interrupt[TIM0_OVF]T0_INT()//中断函数

{TCNT0=56;//预置数

secdd++;//200us

If(secdd==50)secdd=0;secd++;//10ms

If(secd==100)secd=0;sec++;//1s

If(sec==60)sec=0;min++;//1m}

(二)定时中断控制

用定时器0中断方式实现:

M18.试编程序,使数码管循环显示59-分59秒-1/100秒(初始数据00-00-00)。

M18A.试编程序,显示同上,按住左1键暂停,手离开则继续。

M19.试编程序,使数码管循环显示23-时59分-59秒(初始数据08-00-00)。

M19A.试编程序,显示同上。

要求小时十位无效零消隐。

教学提示:

在T0中断程序中写入秒百分之一秒(secd)、秒(sec)、分(min)、小时(hour)变量。

九、定时/计数器应用

(一)时钟显示

M20试作一个实时电子钟:

1.上电后由显示8-00-00开始走时。

2.小时十位无效零消隐。

3.有调时/分功能。

教学提示:

无效零/闪点参考

ledbuff[1]=table[sec/10];

if(secd>50)ledbuff[2]=table[min%10];

elseledbuff[2]=table[min%10]|0x80;

//闪点

if((min/10)==0)ledbuff[3]=0;//无效零

elseledbuff[3]=table[min/10];

(二)高频测量

M20A.较高频率的测量(1k-10kHz)

如图所示:

由555振荡器发出方波频率信号送给MEGA16芯片的PB1口,然后经T1计数检测在由数码管显示该方波频率数。

(三)低频测量

M20B.较低频频率的测量

如图所示:

由T0产生较低频率方波频率信号送给MEGA16芯片的PD6口,然后经T1捕获后再由数码管显示该方波频率数。

十、脉宽调制PWM

M21.试编程序,使数码管亮度由暗逐渐变亮再逐渐变暗。

M22.试编程序,使数码管亮度分别从0-1-2-3-4-5V电压间隔1秒循环输出。

教学提示:

脉宽调制工作原理:

如图所示:

由内部寄存器OCR1A(或OCR1B)控制引脚PD5(或PD6)高电平输出的占空比,T图为设置为快速正向输出式的波形图。

脉宽调制原理(正向快速)

十一、显示驱动7219集成块使用

1.集成块驱动显示8位8段数码管

(使用串行口传送方式只占用2个I/O口资源)

M23.用显示驱动7219集成块进行数码显示1-8数字。

(使用串行口传送方式只占用3位I/O口)

M24.用显示驱动7219集成块进行数码显示8通道号123.45数据。

(要求:

学会7219两个子程序调用)

M25.用显示驱动7219集成块进行数码显示电子时钟。

教学提示:

在实习板上,将7219W1接口与数码管字位LEDW1接口用扁平线相连,将7219D1接口与数码管字段LEDD1接口用扁平线相连。

2.集成块驱动显示8×8点阵LED管

M26.用显示驱动7219集成块进行显示点阵汉字“光”。

M26A.用7219点阵驱动集成块显示移动的“电力”两字。

M27.用显示驱动7219集成块同时进行数字汉字显示。

教学提示:

1.连接方法:

在实习板上,将7219W2接口与点阵字位LEDW2接口用扁平线相连,将7219D2接口与点阵字段LEDD2接口用扁平线相连。

2.7219驱动点阵排列方式如图所示:

十二、模数转换A/D功能的使用:

M28.用显示驱动7219集成块显示第1通道A/D转换数据(0-1023对应0-5V)。

M29.用显示驱动7219集成块显示第6通道A/D转换数据:

0-500对应0-5V,一阶滤波(系数0.3),8次采集取均值

M29A要求同上,当数据大于400时,8发光管200mS闪光。

M29B要求同上,每隔5秒显示分别显示0,1,6,7通道数据。

教学提示:

A/D转换原理示意图

十三、液晶显示器的使用:

M30.用液晶显示器显示“YB0501-台号-学号”。

M31.用液晶显示器显示0000-9999循环间隔100ms。

M32.用液晶显示器显示“编号-A/D转换数据”。

M33.用液晶显示器第2行中间位置显示“小时-分-秒”。

教学提示:

可参考附录相关函数规定。

输出字符见7位ASCII码表:

十四、4×4矩阵键盘的使用:

(占用1个8位I/O口资源)

M34.上电后,用液晶显示4×4矩阵键盘按键数据。

M35.上电后,8发光管不亮,按4×4矩阵键盘j16发光管高4位亮,按j17发光管低4位亮,按j35后全亮,按j36后全灭。

M36.用液晶显示器显示“小时-分-秒”,用矩阵键盘J35,J36调整时、分。

M37.用矩阵键盘右2排改变采集通道号及采集对应的数据。

教学提示

1矩阵键盘连接图:

2矩阵键盘键值图(key):

十五异步通信练习

M38通过异步通信接口发送8个字节的数据,接收8个字节的数据,并显示接收的数据。

教学提示

在实习板上,将7219W1接口与LEDW1接口用扁平线相连,将7219D1接口与LEDD1接口用扁平线相连。

使用7219芯片控制的8位8段数码显示器显示时钟。

将通信接口的RXD与TXD用连接线短接,通过RS232接口的异步通信单机自发自收(图1)或双机通信(图2)。

图1单机通信自发自收连接图2双机通信连接

十六模拟比较器练习

M39如图所示:

先将两电位器接入10位A/D转换并显示转换值(0-1023),调整电位器是其值分别为1/2*1023。

然后用单股插线一头插入电位器RW0、RW1中心抽头,另一头插入M16芯片PB2、PB3引脚。

试编程序当PB2脚电压值大于PB3脚电压值时发光管LED0.4秒闪光。

 

十七常数设置练习

M40试用4×4矩阵键盘将16个整型常数保存到M16芯片中的EEROM中。

十八应用命题教学演示

综合演示程序1:

数码管显示数字-点阵管显示移动汉字-液晶显示ASCII码-发光管循环移动。

综合演示程序2:

时钟-汉字-电子音乐。

十九AVR单片机毕业论文课题参考

1智能型数字定时交通灯控制系统

2节日彩灯-时钟-汉字-音乐系统

3多路数据采集-巡测-选点-报警系统

4水箱水位检测-报警-显示-控制系统

二十AVR单片机毕业论文参考框架

(基于AVR单片机的数据采集系统)

题目-作者-摘要-关键词-正文:

一、概述(或引言)

1用AVR单片机实现数据采集的优势(可与传统m51相比)

硬件方面:

1)AVR内部资源丰富自带模数A/D数模D/A(PWM)转换,使电路简单可靠。

2)AVR指令执行速度更快是m51的几十倍。

更适合多点数据巡回检测

3)AVR内部有程序存储器(FLASH)和数据存储器(EEROM)无须向m51一样需外加存储器。

可减少成本及简化电路…等等。

软件方面:

1)使用高级C语言比汇编语言有更大的优势,尤其在数据处理方面高级语言更直观且计算起来更方便。

2)高级语言在程序移植、功能拓展、程序解读方面更有独到之处…等等

二、AVR数据采集系统框图

例:

输入模块中可增加模拟量隔离(耦合式如AD202见资料)和开关量隔离(光电式如4N31)电路等。

三、主控电路

1芯片选择可列表说明

2时钟晶振电路

3键盘矩阵电路

4显示电路(可拓展点阵汉字显示)

5报警电路

6驱动电路等等

四、模拟量开关量输入电路

1压力差压信号(如1151)经I/U转换电路转成0-5v信号进主控模块

2温度信号(如热电偶)经mv/U转换电路转成0-5v信号进主控模块

3转速信号、开关量可通过整形电路和光电隔离电路进进主控模块等

五、模拟量开关量输出电路

1模拟量输出是主控cpu进行脉宽调制(pwm)后输出,然后还需用运算放大器进行滤波缓冲隔离后转换成电压信号0-5V送出。

需要时还需通过电压电流转换电路(可使用专用集成块:

如AM462,XTR110等可参考有关资料)送出。

2开关量输出由应经过光电隔离再通过驱动电路(如可控硅,继电器等)输出。

六、软件设计

1软件功能说明

2软件流程框图

3程序清单(应有必要的注解)

七、结束语(略)

八、参考文献:

说明资料出处

九、附录:

提供必要的表格图形等

附图1:

实习系统连接图

附图2:

AVR芯片引脚图

附图3:

实习板电路原理图

附录1:

自定义文件头应用说明

1.动态显示文件头#include

1)连接:

PB----LEDD,PC----LEDW

2)函数:

初始化init();显示子程序disp();转换子程序bcd(longn);hex(longn);

2.时钟T0中断文件头#include

1)连接:

2)函数初始化init_t0();时间变量hour,min,sec,secd,(0.01s)secdd(0.2ms)。

3.矩阵键盘扫描文件头#include<4x4pc.txt>或#include<4x4pd.txt>

1)连接:

PC口或PD口----矩阵键盘接口

2)函数初始化无;子程序jp();键值charkey。

4.7219驱动文件头#include<7219p1.txt>或#include<7219p0.txt>

1)连接:

7219D1----LEDD1,7219W1----LEDW1;7219D2----LEDD2,7219W2----LEDW2;

2)函数:

初始化spi_7219();

数码管/点阵管复位子程序voidc_7219(chari,charj)

数码显示子程序spi_xie(chari,charj)

点阵显示子程序voidspi_xie1(chari1,charj1,)

单参数显示子程序voidx_7219(longx)

时钟显示子程序voidsz_7219(charhour,charmin,charsec)

多参数显示子程序charxunce_7219(chari,inty,charn)

5.模数转换A/D文件头#include

1)连接:

PA口----8电位器插口;

2)函数:

初始化无,数据采集子程序floatadcx(charadc_input,floatn)

6.脉宽调制PWM文件头#include

1)输出:

PD4口/PD5口;

2)函数:

初始化voidinit_p(void),10位,正向。

3)控制O

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2