单片机课设报告.docx_第1页
单片机课设报告.docx_第2页
单片机课设报告.docx_第3页
单片机课设报告.docx_第4页
单片机课设报告.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、项目设计目的本次课设是用热敏电阻做温度敏感器件,通过模数转换、校准等,最后显示在液晶屏上。通过做这次设计加强我们的动手操作能力和团队合作能力。同时也加深我们对c51单片机工作原理和其系统内部结构,如何工作等的理解。通过这次课程设计也锻炼了我们的编程能力,方便我们对各个编程软件的使用方法的掌握。2、项目设计正文2、1硬件设计2、1、1 方案设计传统的温度检测以热敏电阻为温度敏感元件,热敏电阻成本低,但需要接信号处理电路,而且热敏电阻的可靠性较差,测量温度的准确度低,检测系统的精度差。因此,采用单片机进行温度检测、数值显示和数据的传送,这样就会使效率高、性能稳定等。本系统的温度测量采用热阻效应。温度测量模块主要为温度测量电桥,当温度发生变化时,电桥失去平衡,从而在电桥输出端有电压输出,但该电压很小。将输出的微弱电压信号通过一个差分放大器放大,将放大后的信号输入ad转换芯片,进行a/d转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。2、1、2 单元电路设计本次实验中我主要是做汉显12864部分的设计。12864是一种带中文字库的128x64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ascii字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。其各个引脚图如下 :每个引脚的功能如下表所示管脚名称电平管脚功能描述1vss0v电源地2vcc3.0+5v电源正3v0-对比度(亮度)调整4rs(cs)h/lrs=“h”,表示db7db0为显示数据rs=“l”,表示db7db0为显示指令数据5r/w(sid)h/lr/w=“h”,e=“h”,数据被读到db7db0r/w=“l”,e=“hl”, db7db0的数据被写到ir或dr6e(sclk)h/l使能信号7db0h/l三态数据线8db1h/l三态数据线9db2h/l三态数据线10db3h/l三态数据线11db4h/l三态数据线12db5h/l三态数据线13db6h/l三态数据线14db7h/l三态数据线15psbh/lh:8位或4位并口方式,l:串口方式16nc-空脚17/reseth/l复位端,低电平有效18vout-lcd驱动电压输出端19avdd背光源正端(+5v)20kvss背光源负端2、2 软件设计2、2、1 系统分析本次课程设计所用的是模块化编程,所使用的编程软件为keil软件,仿真软件为proteus7.5。其中系统程序包括主程序、lcd12864汉显程序、及时钟芯片ds1302的程序。所有的源程序导入到keil软件中进行。系统的流程图如下:结束调用显示子程序调用初始化模块开始采集中断子程序中获得的ad转换后的数据调用数据处理子程序2、2、2 系统设计本次设计所用的电路图如下:2、2、3 lcd12864编程实现汉显功能的程序如下:#includelcd12864.h#include intrins.h #define uchar unsigned char#define uint unsigned intvoid v_lcd12864checkbusy_f( void ) /忙检测函数 unsigned int ntimeout = 0 ; set_inc set_read clr_en set_en while( ( io_lcd12864_dataport & 0x80 ) & ( +ntimeout != 0 ) ) ; clr_en set_inc set_readvoid v_lcd12864sendcmd_f( unsigned char bycmd ) /发送命令 v_lcd12864checkbusy_f() ; set_inc set_write clr_en io_lcd12864_dataport = bycmd ; _nop_(); _nop_(); set_en _nop_(); _nop_(); clr_en set_read set_incvoid v_lcd12864senddata_f( unsigned char bydata ) /发送数据 v_lcd12864checkbusy_f() ; set_data set_write clr_en io_lcd12864_dataport = bydata ; _nop_(); _nop_(); set_en _nop_(); _nop_(); clr_en set_read set_incvoid v_delayms_f( unsigned int ndelay ) /延时 unsigned int i ; for( ; ndelay 0 ; ndelay- ) for( i = 125 ; i 0 ; i- ) ; void v_lcd12864init_f( void ) /初始化 v_lcd12864sendcmd_f( 0x30 ) ; /基本指令集 v_delayms_f( 50 ) ; v_lcd12864sendcmd_f( 0x01 ) ; /清屏 v_delayms_f( 50 ) ; v_lcd12864sendcmd_f( 0x06 ) ; /光标右移 v_delayms_f( 50 ) ; v_lcd12864sendcmd_f( 0x0c ) ; /开显示void v_lcd12864setaddress_f( unsigned char x, y ) /地址转换 unsigned char byaddress ; switch( y ) case 0 : byaddress = 0x80 + x ; break; case 1 : byaddress = 0x90 + x ; break ; case 2 : byaddress = 0x88 + x ; break ; case 3 : byaddress = 0x98 + x ; break ; default : break ; v_lcd12864sendcmd_f( byaddress ) ;void v_lcd12864putstring_f( uchar x, uchar y, uchar *pdata ) v_lcd12864setaddress_f( x, y ) ; while( *pdata != 0 ) v_lcd12864senddata_f( *pdata+ ) ; 12864对各个引脚定义编程为:#ifndef _12864_h_#define _12864_h_#include#define uchar unsigned char#define uint unsigned intsbit io_lcd12864_rs = p20 ;sbit io_lcd12864_rw = p21 ;sbit io_lcd12864_en = p22 ;#define io_lcd12864_dataport p0/#define clr_cs1 io_lcd12864_cs1 = 0 ;/#define clr_cs2 io_lcd12864_cs1 = 0 ;#define set_data io_lcd12864_rs = 1 ;#define set_inc io_lcd12864_rs = 0 ;#define set_read io_lcd12864_rw = 1 ;#define set_write io_lcd12864_rw = 0 ;#define set_en io_lcd12864_en = 1 ;#define clr_en io_lcd12864_en = 0 ;/*fonction*/*/void v_lcd12864checkbusy_f( void );void v_lcd12864sendcmd_f( unsigned char bycmd );void v_lcd12864senddata_f( unsigned char bydata );void v_delayms_f( unsigned int ndelay ) ;void v_lcd12864init_f( void ) ;void v_lcd12864setaddress_f( unsigned char x, y ) ;void v_lcd12864putstring_f( unsigned char x, unsigned char y, unsigned char *pdata );/*/#endif3、项目设计总结及结论由于做设计之前对所要设计的电路和器件不是太了解,所以老师给我们时间查询了各个器件的资料及功能,让我们对此有了一个大致的了解。在编程时,由于温度需要用分段函数来显示,结果我们没有用,经过老师的指导我们改进了程序,使得其温度的显示有所精确。在设计时注意温度的范围。此次课程设计使我学到了很多知识。无论是在查阅资料还是动手编程焊接也好,都让我对单片机的认识加深。这中间有过问题,但都需要我们想办法去解决,这样才能取得最后的成功

温馨提示

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

评论

0/150

提交评论