资源描述:
《单片机综合课程设计(温度控制器)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、杭州电子科技大学信息工程学院单片机课程设计报告(电气工程与自动化专业)姓名班级:学号:指导教师:2011年10月14日Ø一引言单片机课程设计是一项综合性的专业实践的活动,基本任务是利用STC12C5A08S2单片机等电子元器件设计一个具有温度测量、显示和控制的装置。通过本课程综合应用所学知识,分析和解决工程实际问题的能力,将所学的基础理论和专业知识运用到具体的工程实践中去。培养学生的实际动手能力和工程实践能力,为此后的毕业设计打下良好的基础。Ø二硬件设计v1数码管显示图1此数码管为共阴极数码管,其8个发光二极管的阴极在数码管内部全部连接在
2、一起,它们的阳极是独立的,通常在设计电路时一般把阴极接地。数码管的显示方法静态显示。当多位数码管应用于某一系统时,它们的“位选”是可独立控制的,而“段选”是连接在一起的,我们可以通过位选信号控制哪几个数码管,而在同一时刻,位选选通的所有数码管上显示的数字始终都是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选信号都是相同的,那它们显示的数字必定一样。图1中的三极管9013的起到开关“位选”的作用,当三极管导入高电平的时候,相对应的数码管发光。v22*2矩阵键盘图2矩阵键盘的两端都与单片机I/O口相连,因此检测时给单片机I/O
3、口送入低电平。检测时,先送一列为低电平,其余几列全为高电平,然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平则我们便可确认当前被按下的键是哪一行那一列,用同样的方法轮流送各列一次低电平,轮流检测一次各行是否变为低电平,这样即可检测完所有的按键,当有键被按下时便可判断出按下的键是哪一个键。图2中二极管IN4148检测是否有按键按下。v3测温电路图3图3中的电容用来滤波的作用。R120滑动变阻器用来调节A/D采样值的变化。AT502热敏电阻。v4蜂鸣器试验采用无源蜂鸣器,通过输入震荡电流,是蜂鸣器达到蜂鸣的效果,在本次使用的期间中
4、,对P14管脚加入震荡电流,便可以达到试验效果v5.整个原理图Ø三软件部分#include#include#defineucharunsignedchar#defineuintunsignedintsbitshuma2=P2^6;sbitshuma1=P2^7;sbitshuma3=P2^5;sbitshuma4=P2^4;sbitadwr=P3^6;sbitadrd=P3^7;sbitbeep=P1^4;sbitdat=P1^1;sbitwarm=P1^3;sbitled=P2^0;uintwen
5、du=25,numt0=0,cede=0,bzflag=0,flag=1;/*--定义数码管显示的0~9,10个数据--*/unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};/*--单片机初始化函数,对定时器进行设置,开总中断,开定时器中断,开定时器--*//*--入口参数:无----出口参数:无--*/voidinit(){TMOD=0x01;TH0=(65536-2500)/
6、256;TL0=(65536-2500)%256;EA=1;ET0=1;TR0=1;}/*--延时函数,通过for循环函数实现延时功能--*//*--入口参数:uint;----出口参数:无---*/voiddelayms(uintxms){uinti,j;for(i=0;i7、u/10;ucharge=wendu%10;ucharcge=cede%10;ucharcsh=cede/10;P2=0x10;P0=table[ge];delayms(2);P2=0x20;P0=table[shi];delayms(2);P2=0x40;P0=table[cge];delayms(2);P2=0x80;P0=table[csh];delayms(2);P2=0x00;}/*--键盘检测函数,对2*2矩阵键盘进行设定,分别为温控开关及设定温度加减----入口参数:无----出口参数:无--*/voidkeyscan(){
8、uchartemp;P3=0x70;if(P3==0x60){delayms(10);if(P3==0x60){if(wendu!=0)wendu--;}temp=P3&0x30;while(