《STC12C5A60S2单片机课程设计报告》由会员分享,可在线阅读,更多相关《STC12C5A60S2单片机课程设计报告(7页珍藏版)》请在金锄头文库上搜索。
1、v1.0可编辑可修改一、课程设计基本情况介绍 课程设计的基本目的与任务本课程设计旨在驾驭本专业学生理论指导实践能力以及电子产品工程设计与开发能力。 本实践课所要达到的主要目的是:1、通过本次课程设计,是对学生综合能力的检,提高学生综合运用专业知识,强化单片机 应用系统设计与防震能力。2、本次课程设计是在生产实习所完成的“单片机核心板+电子钟模块+MP3t莫块+RFID模块+无线传输模块+GPS莫块+脉搏传感模块”的基础上设计该硬件系统的工作程序。课程设计的基本内容1、在生产实习设计单片机硬件系统的基础上,设计相应的应用软件系统。2、在LCD1602上显示学号程序设计。3、基于DS1302的实时
2、时钟软件设计。4、基于DS18B20的温度测量软件设计。5、基于TL1838A的红外遥控解码软件设计。6、设计应用软件系统框图和流程图,完成所设计软件的调试。 课程设计的教学要求1、通过资料查阅及学习了解单片机应用系统的软件设计方法及单片机编程、软硬件联机调 试技巧。2、独立设计并编写下列应用程序:(1) LCD1602学号显示程序;(2) DS1302实时时钟程序;(3) DS18B2欧度测量程序;(4) TL1838A红外遥控解码程序;3、独立完成所设计程序与硬件系统的联机仿真。二、整机系统框图(硬件、软件)该设计方案是以 STC12C5A60S2I片机为核心,采用 LCD液晶屏幕显示模块
3、、实时时钟 模块、温度测量模块、红外遥控解码等模块所构建的系统,能在LCD1602液晶屏上显示当前的日期(年、月、日)、时间(时、分、秒)数据、当前环境温度值和红外遥控解码值。用 户可通过遥控器或单片机核心板上的按键来进行日期和时间的设置。本系统设计大部分功能由软件来实现,电路简单明了,系统稳定性也得到大大提高。1、总体硬件设计框架图:时钟蜻I翻触1路(DS1302) - 主控搬 STC12C5A60S22、总体软件设计框架图遑扫描电器I显示驱动LCD 1002#图电子时钟程序设计流程图2、温度测量模块温度测量程序主要包括主程序,读出温度子程序, 温度转换子程序,计算温度子程序,显示 数据子程
4、序等。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其系统程序流程见图所示。图温度测量主程序流程图图读温度流程图3、红外遥控解码模块(1)遥控器发射端程序流程图:装入发射脉冲个数 YR。停发:_L M3脉不卜发射1 MS咻冲停发1MJS脉冲(2)遥控器接收端程序流程图:l_- - -fix 电干月衣二一 寸妾号攵拜4三聿,|中月水产杉中十类父一. L 一湖:又、氏地日泾不星片(二)程序源代码1、实时时钟模块/*DS1302时钟显示程序 */ #include #include #include #d
5、efine uint unsigned int #define uchar unsigned char小数位disdata10=(int)tvalue%10+0x30;/disdata11=C;1个字Lcd_WriteAddress(0x40); 设置显示位置为第二行的第 for(i=0;i12;i+)/显示字符 Lcd_WriteData(disdatai); delay(100); void initLCD() Lcd_Int();huanying_show();int main()a=0x00;b=0x00;initLCD();Lcd_WriteCom(0x01); /清屏幕指令,将以前
6、的显示内容清除delay1ms(1000);while(1) read_temp();/读取温度DS18B20disp();/ 显示return 0;3、红外遥控解码模块#include #include #define uchar unsigned char unsigned int sys,dat;uchar flag; /标志变量,0x01为下降沿进,0x02为引导码,0x03为连发码uchar da4;sbit out=P3A3;sbit o1=P3A4;sbit o2=P3A5;/*/ void adjust (void) if(flag=0x01) start();if(flag=
7、0x02) / getdata();o1=0;else if(flag=0x03) o2=0;void getdata(void)int i;intj;for(j=0;j4;j+)for(i=0;i1;while(out);TL1=0x00;TH1=0x00;TR1=1;while(out);TR1=0;if(TH17) daj|=0x80;void start (void) while(out);TR0=0;if(TH060)EA=0;TR1=1;while(out);TR1=0;if(TH130)flag=0x02;else if(TH115) flag=0x03; else flag=0
8、x00;EA=1;void initintterrupt(void)TL0=0x00;TH0=0x00;TL1=0x00;TH1=0x00;IT1=1;EX1=1;EA=1;void Int1_Routine(void) interrupt 2EA=0;TL0=0x00;TH0=0x00;TL1=0x00;TH1=0x00;TMOD=0x91;TR0=1;ET0=1;flag=0x01;EA=1;int main(void)out=1;o1=1;o2=1;initintterrupt();while(1)EA=0;adjust。;EA=1;return 0;八、整机硬件、软件联机仿真调试中出现的问题,解决方案、结果九、设计总结十、参考文献