ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:118.89KB ,
资源ID:2285876      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2285876.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机综合课程设计.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机综合课程设计.docx

1、单片机综合课程设计杭州电子科技大学信息工程学院单片机课程设计报告 (电气工程与自动化专业) 姓名: 班级: 学号: 指导教师:2011年10月14日 一 引言单片机课程设计是一项综合性的专业实践的活动,基本任务是利用STC12C5A08S2单片机等电子元器件设计一个具有温度测量、显示和控制的装置。通过本课程综合应用所学知识,分析和解决工程实际问题的能力,将所学的基础理论和专业知识运用到具体的工程实践中去。培养学生的实际动手能力和工程实践能力,为此后的毕业设计打下良好的基础。 二 硬件设计v 1 数码管显示 图 1此数码管为共阴极数码管,其8个发光二极管的阴极在数码管内部全部连接在一起,它们的阳

2、极是独立的,通常在设计电路时一般把阴极接地。数码管的显示方法静态显示。当多位数码管应用于某一系统时,它们的“位选”是可独立控制的,而“段选”是连接在一起的,我们可以通过位选信号控制哪几个数码管,而在同一时刻,位选选通的所有数码管上显示的数字始终都是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选信号都是相同的,那它们显示的数字必定一样。图1 中的三极管9013的起到开关“位选”的作用,当三极管导入高电平的时候,相对应的数码管发光。v 2 2*2矩阵键盘图 2矩阵键盘的两端都与单片机I/O口相连,因此检测时给单片机I/O口送入低电平。检测时,先送一列为低电平,其余几列全为高电平,然

3、后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平则我们便可确认当前被按下的键是哪一行那一列,用同样的方法轮流送各列一次低电平,轮流检测一次各行是否变为低电平,这样即可检测完所有的按键,当有键被按下时便可判断出按下的键是哪一个键。图2中二极管IN4148 检测是否有按键按下。v 3 测温电路图3图3中的电容用来滤波的作用。R120滑动变阻器用来调节A/D采样值的变化。AT502热敏电阻。v 4 蜂鸣器试验采用无源蜂鸣器,通过输入震荡电流,是蜂鸣器达到蜂鸣的效果,在本次使用的期间中,对P14管脚加入震荡电流,便可以达到试验效果v 5.整个原理图 三 软件部分#include#includ

4、e#define uchar unsigned char#define uint unsigned intsbit shuma2=P26;sbit shuma1=P27;sbit shuma3=P25;sbit shuma4=P24;sbit adwr=P36;sbit adrd=P37;sbit beep=P14;sbit dat=P11;sbit warm=P13;sbit led=P20;uint wendu=25,numt0=0,cede=0,bzflag=0,flag=1;/*-定义数码管显示的09,10个数据-*/unsigned char code table= 0x3f,0x0

5、6,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;

6、for(i=0;ixms;i+) for(j=0;j0;i-) beep=1; delayms(1); beep=0; /*-温度检测函数,利用温度传感器,来检测温度-入口参数:无-出口参数:无-*/void check() adwr=1; _nop_(); adwr=0; _nop_(); adwr=1; adrd=1; _nop_(); adrd=0; _nop_(); cede=dat; adrd=1; if(cede=wendu) warm=0; bzflag=0; led=0; /*-定时器函数-*/void T0_time()interrupt 1 TH0=(65536-2500)

7、/256; TL0=(65536-2500)%256; if(flag) display(); /*-主函数-*/void main() init(); while(1) keyscan(); if(flag) check(); 四 总结本次短学期的内容是是设计温度控制器。经过半个多月的构思,设计到最后的实践,遇到不少困难,所以结果也有很多瑕疵。不过过程是蛮有意义的,从数码管显示到矩阵键盘的控制再到温度的读取与显示,无不遇到困难并解决之。下面把主要遇到困难的经历说一下。首先是数码管显示问题。由于我们之前所学的是89C51单片机,与这次所实践的板不同,虽然感觉这板更简单,但毕竟不是很专业,依然使

8、用原来学过的程序,结果当然不能运行。后来仔细研究了原理图,发现端口就不一样,还有STC12C5A08S2没有锁存器,于是按照原理图先定义好每一位选端口,因为此单片机默认的是高电平,所以先把四个位先置底,然后按照原来的思路就可以进行下去了。还有就是矩阵键盘调试过程中,对P3口的赋值要注意,因为要跟C51的高低电平刚好相反。最遗憾的是用一个按钮作为开关机键这一过程还没有实现,总觉得程序没有什么错,是不是板子的缘故就不知道了(据说这些板子汗的不是很好)。这可以说是一个工程,一个不小的工程。这不但是一次对我们知识的检验,还是一次温故而知新的过程。实践的机会少之又少,抓好一次就是一次进步,而且亲自实践过才能更好的,更深刻的掌握。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2