大四电子课程设计报告_第1页
大四电子课程设计报告_第2页
大四电子课程设计报告_第3页
大四电子课程设计报告_第4页
大四电子课程设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子信息工程应用综合设计目录一. 课程设计的目的 2二. 课程设计的要求 2三. 硬件设计 31. 89C52介绍 32. ADC0804介绍 33. DAC0832介绍 34. AT24C02介绍 35. DS1302介绍 36. DS18B20介绍 3四. 软件设计 31. 按键部分 32. 声音告警 33. LED部分 34. LCD部分 35. DA数模转换 36. AD模数转换 37. 串口232通信 38. EEPROM 39. 实时时钟 310. 温度检测 311. 红外接收 3五. 结束语 3课程设计的目的运用单片机原理及其常规常用电路等知识,根据题目要求对各种功能进行软件仿真和制作硬件电路,并在电路板上实际调试实现。从而加深对本专业综合知识的理解,把学过的比较零碎的知识系统化,比较系统的学习开发单片机应用系统的基本步骤和基本方法,使学生应用知识能力、设计能力、调试能力以及报告撰写能力等有一定的提高。课程设计的要求(1)按键部分:能通过数码管显示所有20个按键值(能区别就可以)(2)声音告警:通过IO口能控制蜂鸣器发声。(3)LED部分:要实现8个LED灯的轮流点亮(跑马灯)(4)LCD部分:液晶屏1602只需要显示自己的学号,12864的液晶屏上还需要显示自己的中文姓名。显示要求如:XB123200101张三(5)DA数摸转换电路:要求通过DAC0832芯片,控制一个红色的发光二极管,从亮到灭逐渐变化的过程(6)AD模数转换电路:通过调节电位器,改变模拟输入电压,通过ADC0804,进行电压采集转换,并在数码管上简单实时显示(0~255之间)。(7)串口232通信:实现电脑与单片机的通讯(能实现程序下载就可以)。(8)EEPROM:能够改变AT24C02某个单元的内容,并显示到数码管上如:对AT24C02里某个特定单元每隔一秒加一,并实时显示数值(9)实时时钟:能够控制时钟芯片DS1302,读写当前日期,并显示到LCD上显示要求如:2012/10/2608:18:00(10)温度检测:利用传感器DS18B02检测温度。并在LCD上显示最高温度,最低温度和当前温度,显示要求如:TEMP:25.5OC(11)红外接收:利用红外接收头VS1838B能够接收,红外遥控器发射的信号,并在LCD上显示要求如:00FF(用户码)1CE3(数据码)(12)USB转串口:系统要求实现USB转串口电路(使用CH340T),系统可以通过串口直接对宏晶STC的单片机进行程序烧写。(可选做)硬件设计硬件设计方面,开发板集成了本次课程设计所需要的绝大部分元器件包括AT89C52、数码管、LED、ADC0804、DAC0832、AT24C02、DS1302、DS18B20、串口、红外接收头等。89C52介绍89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统。ADC0804介绍集成A/D转换器品种繁多,选用时应综合考虑各种因素选取集成芯片。一般逐次比较型A/D转换器用的比较多,ADC0804就是这类单片集成A/D转换器。ADC0804是一款8位、单通道、低价格A/D转换器,主要特点是:模数转换时间大约100us;方便TTL或CMOS标准接口;可以满足差分电压输入;具有参考电压输入端;内含时钟发生器;单电源工作时(0~5)V输入电压范围是0~5V;不需要调零等等。ADC0804是一款早期的AD转换器,因其价格低廉而在要求不高的场合得到广泛应用。DAC0832介绍DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。AT24C02介绍AT24C02是一个2K位串行CMOSEEPROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个8字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。DS1302介绍DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS18B20介绍DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。软件设计按键部分发0扫描,列项输入,判断是否有键按下,延时去抖动,如果有键按下,逐行扫描初值,返回相应的值,无键按下,返回0。硬件图示如下:图4-1:按键图4-2数码管该部分的主体程序如下:main(){while(1){key=keyscan();DULA=1;SHUMA=0;//锁存使能端为高时,对于数据是透明的。锁存使能变低时,数据被锁存。P0=table[key];DULA=0;delay(20);SHUMA=1;P0=0xfe;DULA=1;SHUMA=0;}}其中键扫程序如下:/*******************矩阵按键*******************/charkeyscan(){unsignedcharkeye;P3=0x0f;if((P3&0x0f)!=0x0f){delay(40);if((P3&0x0f)!=0x0f){P3=0x7f;if(P30==0){while(P30==0)keye=0;}if(P31==0){while(P31==0)keye=1;}if(P32==0){while(P32==0)keye=2;}if(P33==0){while(P33==0)keye=3;}P3=0xbf;if(P30==0){while(P30==0)keye=4;}if(P31==0){while(P31==0)keye=5;}if(P32==0){while(P32==0)keye=6;}if(P33==0){while(P33==0)keye=7;}P3=0xdf;if(P30==0){while(P30==0)keye=8;}if(P31==0){while(P31==0)keye=9;}if(P32==0){while(P32==0)keye=10;}if(P33==0){while(P33==0)keye=11;}P3=0xef;if(P30==0){while(P30==0)keye=12;}if(P31==0){while(P31==0)keye=13;}if(P32==0){while(P32==0)keye=14;}if(P33==0){while(P33==0)keye=15;}}}returnkeye;}声音告警当FM为低电平时,蜂鸣器报警,FM为高电平时,蜂鸣器不报警。硬件图示如下:图4-3:蜂鸣器该部分的主体程序如下:while(1)FM=0;LED部分SL74HC573跟LS/AL573的管脚一样。器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出兼容。当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。图4-4:LED该部分的主体程序如下:P1=0x00;LEDControl=1;while(1){P1=0xfe;delay(500);P1=0xfD;delay(500);P1=0xfB;delay(500);P1=0xf7;delay(500);P1=0xEF;delay(500);P1=0xDF;delay(500);P1=0xBF;delay(500);P1=0x7F;delay(500);}LCD部分使用LCD1602,第四脚RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;第五脚R/W为读写信号线,高电平时进行读操作,低电平时进行写操作;第六脚E为使能端,当E端由高电平跳到低电平时,液晶模块执行命令。选择1602的优点是1602是字符型液晶,显示字母和数字比较方便,控制简单,成本较低。需要注意的是第一行第一个位置写地址0x80,第二行第一个位置写地址0xc0图4-5:LCD该部分的主体程序如下:main(){while(1){for(n=0;n<10;n++){LCD_SET_CURSOR(1,n+1);//光标writedat(xuehao[n]);//写数据}}}DA数模转换此模块使用了DAC0832,电流放大器和反相器。CS片选信号,低电平有效;WR1写信号1,低电平有效。通过一个for循环语句降低P0口,LED变暗。该部分的主体程序如下:图4-6:DAC0832该部分的主体程序如下:mian(){P0=0x00;DULA=0;SHUMA=0;while(1){P0=0xff;P32=0;//CSP36=0;//WRfor(i=0;i<100;i++){P0=(5.0-i*0.05)/5.0*255;delay(20);}}}AD模数转换图4-7:AD模数转换流程图当输入电压为5V时,A/D输出为FFH,即输入电压=AD数据/255*5,所以AD数据=输入电压/5*255。图4-8:ADC0804该部分的主体程序如下:main(){LEDControl=0;while(1){SHUMA=1;P0=0;//选通ADCSP36=0;//AD写入_nop_();P36=1;P0=0xff;//关闭ADCSdelay(5);SHUMA=0;for(i=20;i>0;i--)//读写之间延时display(A1,A2,A3);SHUMA=1;P1=0xff;//全置1P0=0;//选通ADCP37=0;//AD读使能adv=P1;//AD数据读取赋给P1口P37=1;P0=0xff;//关闭ADCSP36=0;P1=adv;//同时把AD的值送八个发光二极显示A1=adv/100;//分出百,十,和个位A2=adv%100/10;A3=adv%100%10;}}串口232通信使用串口调式助手SComAssistant联合开发版实现串口232通信。该部分的主体程序如下:main(){USART_Init();//初始化while(1)//死循环{if(flag==1)//如果有数据则进入这个语句{flag=0;ES=0;//进入发送数据时先关闭串行中断SBUF=ck1;//将数据原样发回while(!TI);//等待数据发完TI=1发完TI=0;ES=1;//重新开启串口中断}}}EEPROM图4-9:EEPROM流程图改变AT24C02中的的内容,并显示到数码管上,对AT24C02里某个特定单元每隔一秒加一,并显示数值。图4-10:AT24C02该部分的主体程序如下:main(){init();EEPROM_FLAG=1;sec=read_add(23);//读23的数据while(1){A1=sec/100;//分出百,十,和个位A2=sec%100/10;A3=sec%10;display(A1,A2,A3);write_add(23,sec);//写入数据}}实时时钟图4-11:实时时钟时序图DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作输出数据,写操作时输出数据。在对DS1302输出的数据进行处理后将其显示在LCD上。图4-12:DS1302该部分的主体程序如下:main(){init_1302(time_1302);initlcd();while(1){get_1302(time_1302);change();sprintf(line1,"Time:");sprintf(line2,"Date:");strcat(line1,times);strcat(line2,date);showline(line1);show2line(line2);}}温度检测图4-13:温度检测时序图温度检测DS13B20的初始化最需要注意的是延时的时间长短。初始化成功后,跳过读序号列号的操作,然后启动温度转换。再次跳过读序号列号的操作,读取温度寄存器。分别读取温度的低八位、高八位,合在一起后转换成摄氏度。通过lcd1602显示。图4-14:DS18B20该部分的主体程序如下:main(){while(1){Init_DS18B20();delay(1);WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换Init_DS18B20();delay(1);WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器a=ReadOneChar();//温度低8位b=ReadOneChar();//温度高8位te1=b;te1<<=8;te1=te1|a;te=te1*0.0625;if(temax>80)temax=0;if(te>temax)temax=te;if(te<temin)temin=te;sprintf(line1,"Now:%.3f`C",te);sprintf(line2,"Max:%.1fMin:%.1f",temax,temin);showline(line1);show2line(line2);}}红外接收图4-15:红外接收流程图VS1838B红外接收头接收到的是一串方波,其发送波形如下图:图4-16:发送波形图接收到的码中有32bit,即4个字节。第一个字节为用户码1,接着是第二个字节用户码2,接着是第三个字节数据码,最后是数据码的反码。“0”的高电平和低电平持续时间基本相等,均为0.5ms左右,高低电平一共持续时间约为1ms;“1”的低电平持续时间约为0.5ms,高电平持续时间约为1.5ms,高低电平一共持续时间为2ms左右。在分析通过定时器得到的时间值时的计算公式为:晶振频率(11.059MHZ)/12分频*时间。该部分的主体程序如下:main(){HW_FLAG=1;IT0=1;//下降沿出发EX0=1;//外部中断允许EA=1;TMOD=0x02;//8位自动重装TH0=0x00;TL0=0x00;ET0=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论