微机控制系统实习报告.doc

上传人:laozhun 文档编号:2882062 上传时间:2023-03-01 格式:DOC 页数:11 大小:463KB
返回 下载 相关 举报
微机控制系统实习报告.doc_第1页
第1页 / 共11页
微机控制系统实习报告.doc_第2页
第2页 / 共11页
微机控制系统实习报告.doc_第3页
第3页 / 共11页
微机控制系统实习报告.doc_第4页
第4页 / 共11页
微机控制系统实习报告.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《微机控制系统实习报告.doc》由会员分享,可在线阅读,更多相关《微机控制系统实习报告.doc(11页珍藏版)》请在三一办公上搜索。

1、微机控制系统实习报告课题:电子钟设计系 院:机械与控制工程学院专 业:自动化组成员:陈增林(3070419150)叶明广(3070419131)陈其宇(3070419132)庞业煌(3070419145)电子钟设计一、 设计要求电子钟的设计要求是用单片机组成一个具有键盘模块、显示模块、闹铃模块、单片机模块的电子钟,键盘采用4*4的键盘,键盘具有调整时间,设置闹铃开或关等功能。显示模块使用三个二联(0.5)数码管显示时、分、秒。数码管的驱动使用到三极管9012来驱动。单片机是使用上电复位。二、设计方案本设计采用AT89S52单片机为核心控制器件,系统组成框图如下图1所示。AT89S51是美国AT

2、MEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89S51单片机驱动电路闹铃模块4*4键盘复位及时钟电路数码管显示时间 时分 秒图1 系统组成框图三、 硬件设计原理电路图如图2所示,电路板PCB图如图3所示,图4为电源的PCB图。图3

3、 电子钟PCB图图4 电源PCB图四、 软件设计1、 程序流程图程序流程图如图5所示. 图五(a)主程序图五(b) 键功能程序流程图2、 参考程序#include#define uchar unsigned char#define uint unsigned int#define key P3void msec(uint x);void xianshi();uchar jianpan(void);void naolingsheji();void tiaoshijian();sbit nling=P10; /蜂鸣器sbit kaiguan=P11; /闹铃开关bit dian,keep=1;uc

4、har i,sum;uint k,n;uchar hour,min,sec;uchar hour1,min1,sec1; uchar shijian6=1,2,3,4,5,6;/时间 时-秒uchar naoling6=1,2,3,4,5,6;/闹铃 时-秒code uint shuzu11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;uchar weixuan6=0xfe,0xfd,0xfb,0xf7,0xef,0xdf; /位选初始化 void main() /*定时初始化* TMOD=0x01; TL0=(65536-20

5、000+35)%256; /35为实际校正 TH0=(65536-20000+35)/256; /35为实际校正 IE=0x82; TR0=1; /* kuaiguan=0; while(1) shijian0=hour/10; /时间 shijian1=hour%10; shijian2=min/10; shijian3=min%10; shijian4=sec/10; shijian5=sec%10; naoling0=hour1/10; /闹铃 naoling1=hour1%10; naoling2=min1/10; naoling3=min1%10; naoling4=sec1/10;

6、 naoling5=sec1%10; tiaoshijian(); /调时间 naolingsheji(); /闹铃设计 /*进入定时T0中断*void timet() interrupt 1 TL0=(65536-20000+35)%256; /35为实际校正 TH0=(65536-20000+35)/256; /35为实际校正 xianshi(); sum+; if(sum=25 | sum=50) dian=dian; /点闪 if(sum=50) nling=1; /整点报时1s sum=0; sec+; if(sec=60) sec=0;min+; if(min=60) min=0;

7、hour+; if(hour=24) hour=0; /*送数显示*void xianshi() for(i = 0;i = 0) & (k = 9) /0-9有效 shijianw=k; w+; msec(200); while(w 23 | min 59 | sec 59) /超范围时无效 goto nn; break; case 14:mm: keep=0; /调闹铃时间 naoling0=10; naoling1=10; naoling2=10; naoling3=10; naoling4=10; naoling5=10; do k=jianpan(); if(k = 0) & (k

8、= 9) /0-9有效 naolingw=k; w+; msec(200); while(w 23 | min1 59 | sec1 59) /超范围时无效 goto mm; keep=1; break; case 13: keep=keep; /看闹铃开/关 msec(255);break; case 12: kaiguan=kaiguan; /闹铃开关 msec(200); break; default:break; /*闹铃设计*void naolingsheji() if(min=0 & sec=0) nling=0; /整点报时 if(kaiguan=1 & hour=hour1 &

9、 min=min1 & n=1 ) k+; if(k = 5000) nling=nling; k=0; /*键盘扫描*uchar jianpan(void) / static ;静态变量 uchar n,m,leiyu; uchar bijiao=0x01; key=0x0f; if(key != 0x0f) msec(10); /消除抖动 if(key != 0x0f) /判断是否确有按键按下 for(n = 0;n 4; n+) /行扫描 leiyu=0x10; key=bijiao; for(m = 0;m 4; m+) /列扫描 if(key & leiyu) =0) return(

10、n*4+m); /有按下是取出键值 else leiyu = leiyu 1; /扫描下一列 bijiao = bijiao 1; /扫描下一行 return(22); /没按键按下时返回0/*延时1ms*void msec(uint x) uchar j; while(x-) for(j=0;j125;j+) ; 五、 调试六、 实习心得历时三个星期的综合电子实习就要结束了,三个星期以来,我们为了那个课题做了很多工作,在这个过程中感觉学到了很多东西。我们组选的题目不是实习指导书里的的,设计课题是电子钟设计,这个设计的要求是用单片机组成一个具有键盘模块、显示模块、闹铃模块、单片机模块的电子钟,

11、键盘采用4*4的键盘,键盘具有调整时间,设置闹铃开或关等功能。显示模块使用三个二联(0.5)数码管显示时、分、秒。数码管的驱动使用到三极管9012来驱动。单片机是使用上电复位。选好题目,明确功能要求之后就开始资料的收集。完成这些资料的准备之后我们开始了电路图的设计,按照设计的电路图画好PCB图之后开始软件部分的设计,软件部分主要设计到相关实验程序的编写,完成这些后就可以进行电路板的制作,制作过程在这里就省略了。做好电路板之后就开始原件的焊接,完成这一步就进到了最后一步,调试作品的过程,通常来说调试是最难的一部分。在调试过程是让。处理好这些细节之后我们的作品也就完成了。经过这次实习,我觉得我们以

12、前在学校所接触的书本上的东西远远不够,我们应该更多的投入到实际之中,更多的接触社会,只存在于理论中,不仅让我们觉得枯燥乏味,不易理解,而且让我们不能真正明白和懂得知识理论和实际的差距,学习更多的理论的同时我们也要积极接触社会实践,希望学校可以给我们更多这样的机会。以上是我本次实习学到的一些知识还有我的一些理解,总的来说收获很多,学到了很多,我想我们都应该认真的对待类似的实习或实践,这些都是我们能够学到操作本领的地方,可以让我们不满足于书本,学到更多的有用的知识。这样我们以后离开学校走上社会,也不至于仅仅是些空口空谈,没有一点实际技巧的人,可以让我们更加好的融入社会,适应社会,希望以后有更多实践自己动手的机会。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号