秋季学期AVR 单片机应用技术实验报告.docx
- 文档编号:4972696
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:19
- 大小:2.53MB
秋季学期AVR 单片机应用技术实验报告.docx
《秋季学期AVR 单片机应用技术实验报告.docx》由会员分享,可在线阅读,更多相关《秋季学期AVR 单片机应用技术实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
秋季学期AVR单片机应用技术实验报告
2016秋季学期
AVR单片机应用技术实验报告
姓名
杜爽
学号
2013111216
成绩
计算机与信息学院
2016年9月
实验1:
最简单的八路跑马灯
实验设备介绍
本学期实验选用的是深圳市学林电子有限公司开发的综合AVR单片机开发平台,XL22004COREAVR实验箱。
该试验箱集成单片机外围硬件、STK500ISP下载线、AVRJTAG仿真器功能于一身。
开发板直接支持M16,M32,M8535,M8515,M8,M48,M88,M168,M64,M128,全系列AVRMEAG单片机的实验,下载,和仿真。
且集成了jtag/isp无需另外购置编程器、仿真器,这样会使得同学做实验的时候更便捷。
1:
实验类型:
验证型
2,实验目的:
用户可以通过此程序的学习,初步掌握单片机的IO端口操作。
3,实验步骤:
用一条8pin的数据线连接PA口的JP51和跑马灯的JP32。
控制较大的延时,通过PA口8位先依次从右向左置零控制8路LED灯依次点亮,再从左向右置零控制8路LED灯回亮,构成跑马形式,以初步掌握单片机的I\O端口操作
4,实验框图:
5,实验代码:
5,运行结果:
程序运行结果截图及相应说明说明:
8路LED灯从下至上逐个亮,然后从从上至下逐个亮,形成跑马形式
(实验1)
实验2继电器控制
1,实验类型:
验证性
2,实验内容:
一根1pin的数据线连接PA口的PA0和继电器的JP18,用pa口的第0位轮流输出高低电平控制继电器的吸合,目的是掌握通用I\O口的位操作
3,实验框图:
硬件电路连接图(没有则不写)、软件流程图
硬件电路连接图
ATmega16
软件流程图(硬件连接图略)
置各种初值,
并while
(1)
4.程序代码:
5,运行结果:
程序运行结果截图及相应说明说明:
可以听到继电器吸合产生的啪啪声,如果延时变短,啪啪声也将更急促。
(实验2)
实验38路指示灯读出8路开关的状态
1,实验类型:
验证性
2,实验内容:
PB口读入8路开关的状态,以此为条件,PD口控制相应开关对应的指示灯亮,目的是理解单片机数和位的概念以及数据传递的概念,并掌握通用I\O口的输入
3,实验框图:
硬件电路连接图(没有则不写)、软件流程图
/*******************************************************************
*******************************************************************/
//PB口按键接8路按键jp37,PD口接8路指示灯jp32
#defineucharunsignedchar
#defineuintunsignedint
#definePB00
#definePB11
#definePB22
#definePB33
#definePB44
#definePB55
#definePB66
#definePB77
#definePD00
#definePD11
#definePD22
#definePD33
#definePD44
#definePD55
#definePD66
#definePD77
#include
voidkey()
{
if((PINB&(1< { PORTD=~(1< } if((PINB&(1< { PORTD=~(1< } if((PINB&(1< { PORTD=~(1< } if((PINB&(1< { PORTD=~(1< } if((PINB&(1< { PORTD=~(1< } if((PINB&(1< { PORTD=~(1< } if((PINB&(1< { PORTD=~(1< } if((PINB&(1< { PORTD=~(1< } } voidmain() { DDRD=0xff;//输出方式 PORTD=0xff;//全灭 DDRB=0x00;//输入方式PORTB=0xff;//上拉电阻有效while (1){key(); } } 5,运行结果: 程序运行结果截图及相应说明说明: 按开关0,指示灯0亮;按开关1,指示灯1亮,依次类推,按开关7,指示灯7亮. (实验3) 实验4数码管静态扫描 1,实验类型: 验证性 2,实验内容: PA口的低四位与74LS47(数码管译码器)的输入端连接,通过置PA口低四位为0b0000~0b1001使数码管静态输出1~9,目的是熟悉数码管的静态显示操作 3,实验框图: 硬件电路连接图(没有则不写)、软件流程图 软件流程图 当前值加1并延迟后 赋值给porta[0: 3] no当前值大于9? Yes 4,程序代码: 程序代码及相应的详细注释 /******************************************************************* *******************************************************************/ //74ls47的jp19的A,B,C,D接到单片机的PA0,PA1,PA2,PA3数码管轮流显示0-9 #include #defineucharunsignedchar #defineuintunsignedint /********************************************************* ** *N*ms延时函数* ***********************************************************/voiddelayms(uintn) {uinti=0,j=0;for(i=0;i } /********************************************************* ** *主函数* ***********************************************************/intmain(void) { uchark; DDRA=0x0F;//置PA口输出PORTA=0x00;while (1) { for(k=0;k<10;k++) { PORTA=k;//数码管有间隔地依次显示0~9 delayms(300); } delayms(300); } } 5,运行结果: 程序运行结果截图及相应说明说明: 会看到一个数码管会顺次显示0到9. (实验4) 实验5数码管动态扫描显示01234567 实验类型: 验证性实验内容: pa口作输出到数码管的电平,PD口则选通数码管的某一个;延时极短的时间,然后改变pa口的输入,PD口选通另一个数码管,再延时极短的时间,这样依次选通8个数码管,造成动态显示0~7,由于间隔时间极短8个数码管同时显示01234567,目的是进一步熟练通用I\O口的操作和动态数码管显示的操作。 实验框图: 硬件电路连接图(没有则不写)、软件流程图 流程图 程序代码: 程序代码及相应的详细注释 /******************************************************************* *******************************************************************/ //PA口接数码管数据jp5,PD口接数码管位选jp8 #include #defineucharunsignedchar#defineuintunsignedintconstuchardis_code[10]={0x28,0x7e,0x0a2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60};/*共阳极,认为该数码管是共阳极的*/ uchardis_buf[8];//显存缓冲区基地址uchardis_index;//显示索引,用于标识当前显示的数码管和缓冲区的偏移量。 uchardis_digit;//位选通值,用于选通当前数码管的数值。 /******************************************************** ** *N*ms延时函数* **********************************************************/ voiddelayms(uintn) {uinti=0,j=0;for(i=0;i ; } /******************************************************* ** *主函数* *********************************************************/intmain(void) { uchari; DDRA=0xFF;//置PA口输出 PORTA=0xFF; DDRD=0x00;//置PD口输出PORTD=0xFF; for(i=0;i<8;i++)//准备显示数据 {dis_buf[i]=dis_code[i+1];//至低会显示1 } dis_digit=0x01;//预置位码初值,。 dis_index=0;while (1) { PORTA=dis_buf[dis_index];//输出段码PORTD=dis_digit;//输出位码delayms (1); dis_digit=(dis_digit<<1)//修改位码dis_index++;if(dis_index==8)//8个数码管是否全部扫描完一遍? { dis_digit=0x01;//重装初值dis_index=0; PORTD=0xff;//关闭所有数码管 } } } /*********************************************************/ 运行结果: 程序运行结果截图及相应说明说明: 8个数码管同时显示,显示为12345678.(程序稍微改下会显 示01234567) (实验5)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 秋季学期 AVR 单片机应用技术实验报告 秋季 学期 单片机 应用技术 实验 报告