




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子装置与系统课程设计班级:电科1班 姓名:周奇超 学号:Xb11640119 前言AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系列可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,也适用于常规编程。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超高效的解决方案。课程设计的目的和要求使学生通过本次课程设计,得到一次综合性的工程和动手能力的锻炼,它要求学生从系统的性能指标出发,在理解硬件总体方案的基础上设计系统的软件总体方案。在软件方案中还应对传感器建模、补偿等。进行电路调试,软件设计、制作及调试。学生经过本课题的训练能为今后的学习打下良好的基础。单片机常规应用综合设计要求如下:(1)LCD部分:液晶屏1602只需要显示自己的学号,12864的液晶屏上还需要显示自己的中文姓名。显示要求如:XB123200101 张三 (2)实时时钟:能够控制时钟芯片DS1302,读写当前日期,并显示到LCD上。显示要求如:2012/10/26 08:18:00(3)温度检测:利用传感器DS18B02检测温度。并在LCD上显示最高温度,最低温度和当前温度,显示要求 如:TEMP:25.5 OC基于51单片机的压力测量仪设计要求如下:(1)理解硬件总体方案,掌握硬件电路工作原理。(2)编写程序,实现LCD显示。 (3)编程实现对压力传感器的数据转换和显示。(4)综合调试。总体设计一、单片机常规应用:图 1单片机常规应用系统图二、压力测量仪:图 2压力采集放大电路硬件设计一、单片机常规应用:AT89C52主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。图 3AT89C52单片机LCD1602工业字符型液晶,能够同时显示16x02即32个字符。管脚定义:第1脚:GND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。图 4LCD1602DS1302DS1302的在实时显示时间中的应用。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302的引脚排列,其中Vcc2为主电源,VCC1为后备电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据传送的方法。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向)。SCLK为时钟输入端。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。图 5DS1302DS18B20DS18B20,常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始。控制命令:指令约定代码操作说明温度转换44H启动DS18B20进行温度转换读暂存器BEH读暂存器9字节二进制数字写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2PROM中重新调E2PROMB8H把E2PROM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU图 6 DS18B20二、压力测量仪:将读取到的微小电压值通过放大器进行放大,再将放大的电压值被单片机的I/O口接收,经内部ad转换成数字信号,再通过算法将真实的电压值及压力值算出,最后控制LCD1602进行显示。软件设计一、单片机常规应用:1、LCD:液晶屏1602显示自己的学号。软件部分主要包括lcd1602相关控制及显示部分、延时程序等。其主要流程是通过单片机的I/O口接收数据,并将数据写入到液晶显示屏,并将数据进行显示。主程序图 7主程序流程图主程序:#include /包含头文件#include sbit rs= P20; /1602的数据/指令选择控制线 sbit rw = P21; /1602的读写控制线sbit ep = P22; /1602的使能控制线unsigned char code dis2 = Xb11640119; /输入要显示的内容void delay(unsigned char ms) /延时函数 unsigned char i; while(ms-) for(i = 0; i= 60) tmiao = 0; tfen+; if(tfen = 60) tfen = 0; tshi+; if(tshi = 24) tshi = 0; ri+; switch(yue) case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(ri = 32) ri = 1; yue+; break; case 4: case 6: case 9: case 11: if(ri = 31) ri = 1; yue+; break; case 2: if(nian % 4 ) = 0 & (nian % 100) != 0) | (nian % 400 = 0) if(ri = 30) ri = 1; yue+; else if(ri = 29) ri = 1; yue+; break; default: break; if(yue = 13) yue = 1; nian+; if(nian = 10000) nian = 0; 3、温度检测:利用传感器DS18B02检测温度。并在LCD上显示最高温度,最低温度和当前温度。主程序图 9温度报警主程序流程即总体流程,以下是主程序清单:void main() uchar m; TMOD=0x01; TH0=0x4c; TL0=0x00; /50ms定时 EA=1; ET0=1; TR0=1; P0=0; P2&=0x1F; Init_DS18B20(); Write_Temperature_alarm();/设定报警上下限温度值 if(presence) Error_Menu (); do Init_DS18B20(); beep(); while(presence); RomCode_Menu (); /显示RomCode for(m=0;m=20|temp_comp=10)BEEP=0;elseBEEP=1; Disp_Temperature(); /更新当前温度 /end of while(1) /end of main()二、压力测量仪1、显示学号主程序流程即总体流程,以下是主程序清单:main()LCD1602_Init();sprintf(lcd_buff0,Xb11640103 ); LCD_SET_CURSOR(1,1);/设置1602显示坐标在第一行第一个字Print(lcd_buff0,16); /LCD1602显示第一行2、编程实现压力传感器的数据转换和显示软件部分主要包括lcd1602相关控制及显示部分,矩阵按键模块,STC12C5A32AD的adc转换模块,主程序模块,其主要流程是通过压力测量电路转换的电压值被单片机的I/O口接收,经内部ad转换成数字信号,再通过算法将真实的电压值及压力值算出,最后控制lcd1602显示相关参数。总体流程图如下所示:图 10主程序流程图主程序主程序流程即总体流程,以下是主程序清单:void main(void)float vol=0,m=0;unsigned char key; initlcd(); /lcd初始化init_adc(); /adc初始化while(1)key=keyscan();/获取键值vol=adc(7); /ad转换获取电压值if(vol=0.032)m=vol/25*1000;else if(vol=0.121)m=vol/33*1000;else if(vol=0.524)m=vol/38*1000;else if(vol=1.20)m=vol/39.5*1000;elsem=vol/40*1000; /100g为4v,1g为40mvdelay(10);sprintf(lcd0,U :%.3fv ,vol );sprintf(lcd1,M :%.3fg ,m); display(line);line+;display(line);lcd显示模块lcd显示主要是通过给lcd1602的寄存器写相关的指令来实现它的各种功能,写入数据来显示相关信息,包含有,写指令程序、写数据程序、初始化程序、显示程序。显示的原理是设定lcd每行的16个字符成两个数组,先第一行逐个显示每16个字符,再换行显示。程序如下:图 11lcd控制流程图LCD显示程序清单:void writecom(unsigned char com) /写lcd指令rs=0;rw=0;P0=com;e=1;delay(30); /检测忙信号e=0;void writedat(unsigned char da) /写lcd数据rs=1;rw=0;P0=da;e=1;delay(30);e=0;void initlcd() /lcd初始化writecom(0x01); /清屏writecom(0x38); /8位总线,5*7点阵writecom(0x0c); /开显示,有光标,闪烁writecom(0x06); /AC自动增一 画面不动void display(unsigned char line) /lcd显示unsigned char i;switch(line)case 1:for(i=0;i16;i+)writecom(0x80+i);writedat(lcd0i);break;case 2:for(i=0;i=16;i+)writecom(0xc0+i);writedat(lcd1i);break; default:break;矩阵按键模块矩阵按键可以通过占用较少的I/O口资源来设置较多的按键,其基本原理是(4*4按键)先设置P2口的高四位为低电平,低四位为高电平(0x0f),判断有键按下,则先置P2最高位为0,另外的都为1,在判断P2低四位是否有被拉低电平的,如此进行逐行扫描,逐列判断来确定按下的键值。程序如下:char keyscan() /矩阵按键unsigned char keye;P2=0x0f;if(P2&0x0f)!=0x0f)delay(40);if(P2&0x0f)!=0x0f)P2=0x7f;if(p20=0)keye=#;if(p21=0)keye=*;if(p22=0)keye=0;if(p23=0)keye=d;P2=0xbf;if(p20=0)keye=7;if(p21=0)keye=8;if(p22=0)keye=9;if(p23=0)keye=c;P2=0xdf;if(p20=0)keye=4;if(p21=0)keye=5;if(p22=0)keye=6;if(p23=0)keye=b;P2=0xef;if(p20=0)keye=1;if(p21=0)keye=2;if(p22=0)keye=3;if(p23=0)keye=a;return keye;adc转换模块:STC12C5A32AD单片机拥有内置的精度10位的ad转换模块,用户可以通过设置相关的P1ASF、ADC_CONTR、ADC_RES、ADC_RESL、AUXR1等寄存器来实现adc的工作。图 12adc转换流程adc转换程序清单:float adc(unsigned char land_i) /adc转换程序float temp=0,sum=0;unsigned char i;P1ASF=landland_i;/P1口用途选择for(i=0;i10;i+)ADC_CONTR=ADC_CONTR|0x60|0x80|0x08|ADC_CHSland_i; /开adc电源,选择转换周期,通道,启动转换/ADC_CONTR=ADC_CHSland_i+SPEED3+ADC_POWER+ADC_STA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初级的电子电路设计模拟题集及解析
- 2025年乡镇农技站招聘农业物联网维护员考试重点与难点解析
- 抹灰安全教育培训记录课件
- 2025年低熔点金属胶合作协议书
- 2025年大坝建设项目发展计划
- 辽宁省葫芦岛市连山区2025-2026学年上学期七年级开学摸底考试数学试卷(含部分简单答案)
- 2025年微机励磁屏项目合作计划书
- 职教云诊断学题库及答案
- 考试英语搞笑题及答案
- 技能培训知识课件
- 桥梁基本知识-桥梁养护课件
- 外科学-腹外疝
- 华为供应链管理(6版)
- 幼儿园秋季传染病预防知识课件
- 化工原理-传热课件
- 劳务派遣劳务外包服务方案(技术方案)
- 第09章资本市场有效性理论及其实证分析
- 《商务分析方法与工具》课程教学大纲
- 模块化硬件设计方案
- 高中日语开学第一课导入课课件
- 关键工序质量控制表
评论
0/150
提交评论