




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京邮电大学2010 /2011 学年 第 1 学期课程设计:实验报告模 块 名 称 AVR单片机课程设计 专 业 网络工程 学 生 班 级 B080221 学 生 学 号 B080221xx 学 生 姓 名 XXXXX 指 导 教 师 李虹 戴海鸿 杨洁 王明伟 日期: 2010年11月29日 至 2010年12月25日AVR单片机课程设计报告一课程设计目的1、设计要求 本课程着重于把理论学习的知识应用于实际,解决实际的工程问题,培养学生的系统设计能力,提高学生的科研动手能力。本次设计要求深入了解AVR单片机ATmega128的功能,通过研究开发板的硬件设计,进行相关的硬件连接,选择合适的编程及程序植入方法,用开发板完成列出的各设计课题;初步学习撰写规范的设计文档;提交实验报告。二课程设计内容(具体的课题内容、完成要求、相关软件介绍等)1、基本要求:1、 正确连接数字温度传感器DS18B20,采集温度数据在数码管、LCD1602上显示或通过串口将数据传递至PC。 2、 记录间隔可任意设定(1S到1h,步长1s),能按设定时间存储数据。 3、设定温度告警门限。4、通过蜂鸣器、发光二极管进行告警显示。2、 相关软件介绍。(1)ICCAVR简介。简而言之,ICCAVR是一个进行C代码输入和调试的AVR与代码的软件接口,它将若干个“.C”或“.h”文件合并在一起进行联合编译,生成一系列各种格式的文件,这其中“.cof” 和“.hex”文件可以在AVR studio中进行烧制,“.cof”文件还可以在 AVR studio中进行仿真操作。(2)AVR studio简介。AVR studio是与硬件进行直接交互的软件,在对其进行合理设置(选芯片,连端口)以后,它可以对ICCAVR生成的“.cof” 和“.hex”文件分别进行仿真和烧制。当成功烧制到EasyAVR板当中之后,单片机可以通过AVR studio中的文件内容实现相应的功能。三课程设计过程1.设计原理和思想。本实验可以分为三个部分来考虑:1、温度传感器DS18B20采集温度显示在LED上。2、设定温度告警门限。通过蜂鸣器、发光二极管进行告警显示。3、添加按键控制温度警告门限和各功能汇总。做温度采集时,要深刻了解DS18B20的作用,并且能与后面的LED例程能够好好结合。在做LED动作组设计的时候,关键思想是使用循环或者嵌套循环来写程序,从第一个灯到最后一个灯分别先后完成一系列相关动作(调用循环语句可以使LED灯按照一定顺序形成一个“流程”,这对于顺序的控制尤为关键);而关键语句则是对端口的一些与、或、非操作(端口是由两位十六进制数表示的PORTE,与、或、非等操作使端口值静态地置为下一步的值,这些操作可以很好地控制LED灯的亮灭效果,达到预期目的)。将这两种方法结合很容易获取一切所需要的效果。7位数码管的设计有三个步骤:一是对4位数码管的数值进行赋值(EasyAVR公司的库函数中定义了若要管显示0-9直接赋值,若让管灭赋值16),并调用Seg7_Led_Update();语句进行更新,数值就会短暂地出现在管中;二是使用循环使数值在管上停留一段时间,让人眼能清晰地感应到数值的存在;三是适时地对管上的数值进行改变,使其完成带补位的左移效果和单字左移效果等等。按键控制的思路是用key.c中的get_key()函数来读入按键,然后用case语句来判断按的是哪个按键;再设置标识符来观测是第几次进入同一个case(即第几次按同一个键),若对同一个按键进行多次触发,控制单片机实现不同的效果,并设置递归使按满三次后还原为第一个效果重新执行。2、 硬件原理图的介绍。LED KEY按键控制SEG7四位七段数码管DS18B20测温模块3、软件方面程序流程图的设计。开始初始化CPU,包括GPIO,TWI,DS18B20SPI显示瞬时温度设置警告温度值 低温1低温+1高温1高温+1 S4 S3S2 S1判断瞬时温度是否达到报警温度超过报警温度报警+闪灯结束4、关键代码介绍。/*文件:main.c用途:注意:内部8M晶振*/#include config.hunsigned char i=0,j;unsigned char LED_table=0xFF,0x00,0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F, 0xFF,0x00,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE, 0xFF,0x00,0xFF,0x7E,0xBD,0xDB,0xE7,0xFF,0x00,0xE7,0xDB, 0xBD,0x7E,0xFF,0x00;void main(void) float temp=0.0; unsigned char Key;Key_init();HC_595_init(); init_1820();temp=gettemp(); delay_nms(1000); while(1) temp=gettemp(); Seg7_Led_float(temp); deal_temp(unsigned char)(temp); led(); for(j=0;j50;j+) /产生灯延时 Seg7_Led_float(temp); deal_temp(unsigned char)(temp); delay_nms(5); Seg7_Led_float(temp); deal_temp(unsigned char)(temp); while(1) Seg7_Led_float(temp); Key=get_key(); switch(Key) case ( (1S4)0xF0) ): +temp; break; case ( (1S3)0xF0) ): -temp; break; case ( (1S2)0xF0) ): Seg7_Led_float(temp); break; case ( (1S1)0xF0) ): Seg7_Led_float(temp); break; default: break; void led(void) DDRE=0xff; PORTE=0xff; if(i=36) i=0; PORTE = LED_tablei+;/*文件:18b20.c用途:注意:*/#include config.h/* 函数名称: void init_1820(void)* 功能描述: 18b20初始化* 输入: 无* 全局变量: 无* 调用模块: 无* 说明:* 注意:*/void init_1820(void) TEM_DDR &= (1TEM_SDT);SET_TEM_DDR; /设置数据端口为输出 SET_TEM_SDT; CLR_TEM_SDT; delay_nus(480); /480us以上 SET_TEM_SDT; CLR_TEM_DDR; delay_nus(20); /1560us while(CHECK_TEM_SDT); SET_TEM_DDR; SET_TEM_SDT; delay_nus(140); /60240us /* 函数名称: void write_1820(unsigned char data)* 功能描述: 向18b20写入1B的数据* 输入: unsigned char data 要写入的数据* 全局变量: 无* 调用模块: 无* 说明:* 注意:*/void write_1820(unsigned char data) unsigned char i; for(i=0;i8;i+) CLR_TEM_SDT; /从高到低,产生写间隙 if(data&(1i) /写数据,先写低位 SET_TEM_SDT; else CLR_TEM_SDT; delay_nus(40); /1560us SET_TEM_SDT; SET_TEM_SDT; /* 函数名称: unsigned char read_1820(void)* 功能描述: 从18b20读出1B的数据* 输入: 无* 全局变量: 无* 调用模块: 无* 说明:* 注意:*/unsigned char read_1820(void) unsigned char temp,k,n; temp=0; for(n=0;n8;n+) CLR_TEM_SDT; SET_TEM_SDT; /从高到低再到高,产生读间隙 CLR_TEM_DDR; /设为输入 k=CHECK_TEM_SDT; /读数据,从低位开始 if(k) temp|=(1n); else temp&=(14; /只要高8位的低四位和低8位的高四位,温度范围099 / wm1=temh4; temp=temh; temp=8; /两个字节组合为1个字 temp=temp|teml; t=temp*0.0625; /温度在寄存器中是12位,分辨率是0.0625 temp=t*10+0.5; return t; /* wm2=wm1+wm0; /16进制转10进制 wm3=wm2/100; wmh=(wm2%100)/10; /wmh是显示的高位,wml是显示的低位 wml=(wm2%100)%10; temp=wmh*10+wml; return temp;*/void deal_temp(unsigned char tmp)/处理函数,当前温度与温度上下限比较 DDRG|=(1=TEM_MAX) PORTG|=(14);delay_nus(80);PORTE=0xf0;/警告灯:PEPORTG=0;delay_nus(200);else if(tmp=TEM_MIN)PORTG|=(14);delay_nus(100);PORTE=0x0f;/警告灯:PEPORTG=0;delay_nus(100);5、调试过程。调试过程中发生了许多显示效果不佳的状况或者bug,下面都一一列举。a/实验时遇到了闪烁时间不够长的问题,先是试图用中断置初值控制定时长度解决这一问题,可是程序功能如此庞大,又设计按键控制,若全置于中断中实现显然难度很大。于是改用多次调用增加延时的办法,同样一句语句,多次循环调用后便有很好的显示效果,显示的数字清晰可见又避免了中断的复杂。b/实验时出现了很多由自己设计不缜密造成的恶劣效果,都加以改善。如第一个按键的功能执行完直接跳入第二个按键功能,是因为case中缺少break语句造成的失误,补上break后做完直接跳出,等待下一个按键触发之后才会继续有灯亮起。6、最终的实现结果分析。1.能够在LED上显示瞬时温度。2. 可以通过改动程序来实现改变记录温度间隔。3.在高于警告温度时,单片机的后四位警告灯亮,低于警告温度时候,前四位亮。4按下A键,能够在初始设置的高温警告温度的基础上加一,按几下加几,来提升警告温度门限。5. 按下B键,能够在初始设置的高温警告温度的基础上减一,按几下减几,来提降低告温度门限。6.按下C键,能够在初始设置的低温警告温度的基础上加一,按几下加几,来提升警告温度门限。7. 按下D键,能够在初始设置的低温警告温度的基础上减一,按几下减几,来提降低告温度门限。四课程设计总结(收获、心得、建议等)在通过本次课程中,我们遇到很多问题,但是与此同时,我们也学到了很多,对于本次课题的心得体会,我们觉得有以下几点:1、不管做什么事,计划是很重要的。没有一个完好的计划,做事情就会没有一个好的顺序,做事情会比较乱,很难成功。而有一个好的计划,不管做什么事都会事半功倍,做事心中有数,明确重点和缓急,不会有疏漏。这样才能提高成功率。2、做事要多动脑,选出最好的方法。一件事往往有多种解决方法,一个好的方法,不仅能使事情事半功倍,而且往往决定最后的成与败,所以做事时一定要多动一下脑筋,想出最好的方法。3、要注意细节。细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中,一点点的错误就会使你整个程序不能运行。因此我们不仅仅要有整体意识,也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。4、团队合作很重要。团队做一件事时,要发挥出门一个人的长处。人无完人,但一个团队可以互相帮助,互相补充,只要互相合作,个人完成各自专长的,离成功就只有一步之遥。人人总是有疏漏的方面,但是只要互相合作,互相交流,就会考虑问题更全面化,在本次课题中,我们组团结合作不仅事半功倍,而且发现了一些好的有趣的构想,是我们对单片机有了更浓的兴趣。5、最后,也是最重要的一点,通过这次课题,我们学到了很多有关单片机方面的知识,也对单片机有了更深入的了解。使我们受益匪浅。五参考资料EasyAVR公司的一些官方资料:面向新手的AVR开发工具,及基本知识Eas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省中考道德与法治真题【含答案、解析】
- 泵站巡查人员管理制度
- 培训机构出入口管理制度
- 幼儿园黄码红码管理制度
- 公司已建立资金管理制度
- 公司小红书平台管理制度
- 施工劳务用工管理制度
- 景区兼职人员管理制度
- 普通制剂物料管理制度
- 复工前宿舍疫情管理制度
- 山东省威海市实验中学2025届七下英语期末达标检测试题含答案
- 2025年河北省中考麒麟卷地理(三)及答案
- 河南天一大联考2025年高二下学期期末学业质量监测英语试题
- 农药经营许可证培训考试题库及答案
- 财税法考试试题及答案
- 2025年青海省公务员录用考试《行测》真题及答案解析(记忆版)
- 2025入党考试试题及答案
- DB32/T 4593-2023研究型医院建设规范
- 基于轻量型CNN的无人机低空目标检测研究
- DB3415-T 82-2024 急流救援技术培训规范
- 智能制造系统-智能制造技术与未来
评论
0/150
提交评论