- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机综合课程设计(温度控制器)
杭州电子科技大学信息工程学院
单片机课程设计报告
(电气工程与自动化专业)
姓名
班级:
学号:
指导教师:
2011年10月14日
一 引言
单片机课程设计是一项综合性的专业实践的活动,基本任务是利用STC12C5A08S2单片机等电子元器件设计一个温度测量显示和控制的装置
图 1
此数码管为共阴极数码管,其8个发光二极管的阴极在数码管内部全部连接在一起,它们的阳极是独立的,通常在设计电路时一般把阴极接地。数码管的显示方法静态显示。当多位数码管应用于某一系统时,它们的“位选”是可独立控制的,而“段选”是连接在一起的,我们可以通过位选信号控制哪几个数码管,而在同一时刻,位选选通的所有数码管上显示的数字始终都是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选信号都是相同的,那它们显示的数字必定一样。图1 中的三极管9013的起到开关“位选”的作用,
当三极管导入高电平的时候,相对应的数码管发光。
2 2*2矩阵键盘
图 2
矩阵键盘的两端都与单片机I/O口相连,因此检测时给单片机I/O口送入低电平。检测时,先送一列为低电平,其余几列全为高电平,然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平则我们便可确认当前被按下的键是哪一行那一列,用同样的方法轮流送各列一次低电平,轮流检测一次各行是否变为低电平,这样即可检测完所有的按键,当有键被按下时便可判断出按下的键是哪一个键。图2中二极管IN4148 检测是否有按键按下。
3 测温电路
图3
图3中的电容用来滤波的作用。R120滑动变阻器用来调节A/D采样值的变化。AT502热敏电阻。
4 蜂鸣器
试验采用无源蜂鸣器,通过输入震荡电流,是蜂鸣器达到蜂鸣的效果,在本次使用的期间中,对P14管脚加入震荡电流,便可以达到试验效果
5.整个原理图
三 软件部分
#includereg51.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
sbit shuma2=P2^6;
sbit shuma1=P2^7;
sbit shuma3=P2^5;
sbit shuma4=P2^4;
sbit adwr=P3^6;
sbit adrd=P3^7;
sbit beep=P1^4;
sbit dat=P1^1;
sbit warm=P1^3;
sbit led=P2^0;
uint wendu=25,numt0=0,cede=0,bzflag=0,flag=1;
/*--定义数码管显示的0~9,10个数据--*/
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
/*--单片机初始化函数,对定时器进行设置,开总中断,开定时器中断,开定时器--*/
/*--入口参数:无
----出口参数:无--*/
void init()
{
TMOD=0x01;
TH0=(65536-2500)/256;
TL0=(65536-2500)%256;
EA=1;
ET0=1;
TR0=1;
}
/*--延时函数,通过for循环函数实现延时功能--*/
/*--入口参数:uint;
----出口参数:无---*/
void delayms(uint xms)
{
uint i,j;
for(i=0;ixms;i++)
for(j=0;j110;j++);
}
/*--显示函数,利用2个全局变量对他们求余和求商,用于表示检测的温度的十位和个位,及设定温度的十位和个位
----入口参数:无
----出口参数:无---*/
void display()
{
uchar shi=wendu/10;
uchar ge=wendu%10;
uchar cge=cede%10;
uchar csh=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矩阵键盘进行设定,分别为温控开关及设定温
文档评论(0)