- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课设报告单片机课设报告精选
1、项目设计目的本次课设是用热敏电阻做温度敏感器件,通过模数转换、校准等,最后显示在液晶屏上。通过做这次设计加强我们的动手操作能力和团队合作能力。同时也加深我们对C51单片机工作原理和其系统内部结构,如何工作等的理解。通过这次课程设计也锻炼了我们的编程能力,方便我们对各个编程软件的使用方法的掌握。2、项目设计正文2、1硬件设计2、1、1 方案设计传统的温度检测以热敏电阻为温度敏感元件,热敏电阻成本低,但需要接信号处理电路,而且热敏电阻的可靠性较差,测量温度的准确度低,检测系统的精度差。因此,采用单片机进行温度检测、数值显示和数据的传送,这样就会使效率高、性能稳定等。本系统的温度测量采用热阻效应。温度测量模块主要为温度测量电桥,当温度发生变化时,电桥失去平衡,从而在电桥输出端有电压输出,但该电压很小。将输出的微弱电压信号通过一个差分放大器放大,将放大后的信号输入AD转换芯片,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。2、1、2 单元电路设计本次实验中我主要是做汉显12864部分的设计。12864是一种带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。其各个引脚图如下 :每个引脚的功能如下表所示管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”, DB7——DB0的数据被写到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软件中进行。系统的流程图如下: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_READ}void 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_INC}void v_Lcd12864SendData_f( unsigned char byData ) //发送数据{ v_Lcd12864CheckBusy_f() ; SET_DATA SET_WRITE CLR_EN io_LCD12864_DATAPORT = byData ; _nop_()
文档评论(0)