单片机实训报告.doc

上传人:文库蛋蛋多 文档编号:4147279 上传时间:2023-04-07 格式:DOC 页数:11 大小:117.50KB
返回 下载 相关 举报
单片机实训报告.doc_第1页
第1页 / 共11页
单片机实训报告.doc_第2页
第2页 / 共11页
单片机实训报告.doc_第3页
第3页 / 共11页
单片机实训报告.doc_第4页
第4页 / 共11页
单片机实训报告.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

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

1、 单片机实训报告 实训题目一、实训目的二、整体设计三、硬件电路图四、程序流程图五、源程序六、实训体会一、 实训目的通过数字钟的设计与制作,将前面所学的单片机内部定时器资源、I/O端口、键盘和现实接口等知识融会贯通,锻炼独立设计、制作和调试应用系统的能力,深入领会单片机应用系统的硬件设计、模块化程序设计及软硬件调试方法等,并掌握单片机应用系统的开发过程。本设计主要实现以下功能: (1)自动计时,由6位LED显示器显示时、分、秒; (2)具有校准功能,可以设置当前时间; (3)具备定时启闹功能,可以设置启闹,启闹1分钟后自动关闭闹钟。二、整体设计1. 设计要求(1)自动计时,由6位LED显示器显示

2、时、分、秒。(2)具备校准功能,可以设置当前时间。 -按键调整时间(3)具备定时启闹功能,可以设置启闹时间,闹60秒后自动关闭闹铃。2. 系统总体设计方案 3.系统方案选择(1)单片机选型及最小系统选用MCS-51系列主流芯片STC89C52RC,内部带有4KB的Flash ROM,无须外扩程序存储器。由于数字钟无需大量运算和暂存数据,片内128字节RAM可以满足设计要求。(2)计时方案选择(1)实现时钟功能,各大厂家推出了一系列实时时钟电路,如DS1287、DS12887、DS1302、PCF8563、S35190等。这些芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据每秒自动

3、更新一次,不需程序干预。单片机可通过中断或查询方式读取计时数据。(2)利用单片机内部定时器进行中断定时,配合软件延时实现时、分、秒计时功能。(3)显示及键盘方案利用单片机并行I/O口,实现LED动态显示该方案直接使用单片机并行口作为显示接口,无需外扩接口芯片,但占用资源较多,且动态扫描显示方式需占用CPU时间。在非实时测控或单片机具有足够并行口资源的情况下可以采用。所以选用LED数码管。利用液晶LCD1602显示,实现液晶显示,该方案显示信息量大,编程麻烦。设计按键,按键采用44键盘,使显示结果更简洁。功能键:时间设定,首先按下是时钟秒的调节;其次为时钟分的调节;再次为时钟时的调节;加1键:加

4、1键为每次按下功能键时,分别对时、分、秒进行加1;减1键:减1键为每次按下功能键时,分别对时、分、秒进行减1;时钟与闹铃转换键:闹钟设置/启闹/停闹键。三、硬件电路图四、程序流程图开始初始化启动定时器显示时钟检测键盘键盘模块显示模块响闹钟停止NY是否有键按下闹钟时间是否到主函数是否有键按下切功能键显示模块分加调试程序分加1分减时加时减调试程序分减1调试程序时加1调试程序时减1YYYYYYN键盘模块显示模块切换键按下U=1显示时钟显示闹钟YYU=2显示模块五、源程序#include#define uchar unsigned char #define uint unsigned intsbit

5、p10=P10;sbit p14=P14;sbit p15=P15;sbit p16=P16;sbit p17=P17;sbit p3=P33;uchar t0;/定义 hang lie key t0uint n,x,p,w,z,h;int i,j,m,a,b,c,d,k,e,f,r,y,a1,b1,c1,d1,e1,f1,u,h1,k1,r1,v;uchar code tab=0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90;void delay(uint q);/延时函数声明void saomiao();/键盘扫描函数声明void xian

6、shi();void naozongxianshi();void dingshi();void saomiao();/*显示*/void xianshi() a=h%10;b=h/10;c=k%10;d=k/10;e=r%10;f=r/10;P0=taba;delay(1);P0=tabb+0x01;delay(1);P0=tabc+0x02;delay(1);P0=tabd+0x03;delay(1);P0=tabe+0x04;delay(1);P0=tabf+0x05;delay(1); /*闹钟显示*/ void naozongxianshi() a1=h1%10;b1=h1/10;c1

7、=k1%10;d1=k1/10;e1=r1%10;f1=r1/10;P0=taba1;delay(1);P0=tabb1+0x01;delay(1);P0=tabc1+0x02;delay(1);P0=tabd1+0x03;delay(1);P0=tabe1+0x04;delay(1);P0=tabf1+0x05;delay(1);/*定时器t0*/ void dingshi() EA=1; ET0=1; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; void timer() interrupt 1 TH0=(6

8、5536-50000)/256;TL0=(65536-50000)%256; m+;if(m=20) m=0;h+; if(h=60) h=0;k+; if(k=60) k=0;r+; if(r=24) r=0; /*键盘扫描函数*/void saomiao() unsigned char hang=0,lie=0,key=0; P1=0x0f; /赋初值if(P1!=0x0f) /判断是否有键按下 hang=P1; /读行号 P1=0xf0; /行列反转 lie=P1; /读列号 key=hang|lie; /读键值 switch(key)/根据键值不同 调用不同的处理函数 case 0xe

9、e:n=1;break;case 0xde:n=2;break;case 0xbe:n=3;break;case 0x7e:n=4;break;case 0xed:n=5;break;case 0xdd:n=6;break;case 0xbd:n=7;break;case 0x7d:n=8;break;case 0xeb:n=9;break;case 0xdb:n=10;break;case 0xbb:n=11;break;case 0x7b:n=12;break;case 0xe7:n=13;break;case 0xd7:n=14;break;case 0xb7:n=15;break;ca

10、se 0x77:n=16;break; /*延时函数*/ void delay(uint o ) for(i=0;i0;j-);/*功能选择键*/void gongnengjian() if(n=5) if(n!=5);n=0;u+;if(u=3) u=1; delay(30); /*时间调试+闹钟调试*/void shijiantiaoshi() if(u=1) if(n=1) if(n!=1);n=0; k+;delay(30); if(k=60) r=r+1; k=0;if(r=24) r=0; if(n=2) if(n!=2);n=0; k-;delay(30); if(k=0) k=

11、59; if(n=3) if(n!=3);n=0;r+;delay(30);if(r=24) r=0; if(n=4) if(n!=4);n=0; r-;delay(30); if(r=-1) r=23; xianshi();/*闹钟*/if(u=2)if(n=1) if(n!=1);n=0; k1+;delay(30); if(k1=60) k1=0;r1=r1+1; if(r1=24) r1=0; if(n=2) if(n!=2);n=0; k1-;delay(30); if(k1=0) k1=59; if(n=3) if(n!=3);n=0; r1+;delay(30); if(r1=2

12、4) r1=0; if(n=4) if(n!=4);n=0; r1-;delay(30); if(r1=-1) r1=23; naozongxianshi(); /*闹钟*/void naozhong() if(k=k1)&(r=r1) for(v=0;v50;v+) p3=0; p3=1; /*主函数*/void main() dingshi(); while(1) saomiao(); gongnengjian(); shijiantiaoshi(); naozhong(); 六、实训体会十天的单片机实训结束了,这次让我学到了很多东西, 为期10天的单片机实训虽然不是很长,但是让我感觉到了

13、原来编程不是很简单,先开始的显示时钟不是很难,下面的闹钟设置及调试部分就花费了相当长的时间,本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提。我们竭尽全力思考,在老师的精心指导以及同学的互助下,程序基本编写成功,这是我们共同努力的结果,我不得不感慨单片机的重要性与高难度性,所以为期10天的单片机实训没有浪费,我从中学到了很多知识,也让我对单片机有了更深一步的了解。这次实训中出现了很多问题,第一、是在学习上,没动脑,这次实训所遇到的多半问题多数都是由于我们不够严谨。第二,实训中,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,加上足够的挑战困难的勇气,就没有什么办不到的。“世上无难事,只怕有心人”。

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号