已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机实训报告单片机实训报告 实训题实训题目目 一、一、实训实训目的目的 二、整体二、整体设计设计 三、硬件三、硬件电电路路图图 四四、程序、程序流程流程图图 五、源五、源程序程序 六、六、实训实训体会体会 实训报告 第 一 页 一、一、实训目的实训目的 通过数字钟的设计与制作,将前面所学的单片机内部定时器资源、i/o 端 口、键盘和现实接口等知识融会贯通,锻炼独立设计、制作和调试应用系统的 能力,深入领会单片机应用系统的硬件设计、模块化程序设计及软硬件调试方 法等,并掌握单片机应用系统的开发过程。 本设计主要实现以下功能: (1)自动计时,由 6 位 led 显示器显示时、分、秒; (2)具有校准功能,可以设置当前时间; (3)具备定时启闹功能,可以设置启闹,启闹 1 分钟后自动关闭闹钟。 二、整体设计二、整体设计 1. 设计要求 (1)自动计时,由 6 位 led 显示器显示时、分、秒。 (2)具备校准功能,可以设置当前时间。 -按键调整时间 (3)具备定时启闹功能,可以设置启闹时间,闹 60 秒后自动关闭闹铃。 2. 系统总体设计方案 实训报告 第 二 页 3.系系统统方案方案选择选择 (1)单片机选型及最小系统 选用 mcs-51 系列主流芯片 stc89c52rc,内部带有 4kb 的 flash rom,无须 外扩程序存储器。由于数字钟无需大量运算和暂存数据,片内 128 字节 ram 可以 满足设计要求。 (2)计时方案选择 (1)实现时钟功能,各大厂家推出了一系列实时时钟电路,如 ds1287、ds12887、ds1302、pcf8563、s35190 等。这些芯片具备年、月、日、时、 分、秒计时功能和多点定时功能,计时数据每秒自动更新一次,不需程序干预。 单片机可通过中断或查询方式读取计时数据。 (2)利用单片机内部定时器进行中断定时,配合软件延时实现时、分、秒计时 功能。 (3)显示及键盘方案 利用单片机并行 i/o 口,实现 led 动态显示 该方案直接使用单片机并行口作为显示接口,无需外扩接口芯片,但占用 资源较多,且动态扫描显示方式需占用 cpu 时间。在非实时测控或单片机具有 足够并行口资源的情况下可以采用。所以选用 led 数码管。 利用液晶 lcd1602 显示,实现液晶显示,该方案显示信息量大,编程麻烦。 mcu 显示模块 键盘模块 实时时钟ds1302模块 数据存储 eeprom 24lc02 串口通信模块 实训报告 第 三 页 设计按键,按键采用 44 键盘,使显示结果更简洁。 功能键:时间设定,首先按下是时钟秒的调节;其次为时钟分的调节;再次 为时钟时的调节; 加 1 键:加 1 键为每次按下功能键时,分别对时、分、秒进行加 1; 减 1 键:减 1 键为每次按下功能键时,分别对时、分、秒进行减 1; 时钟与闹铃转换键:闹钟设置/启闹/停闹键。 三、硬件电路图三、硬件电路图 实训报告 第 四 页 123456 a b c d 654321 d c b a title numberrevisionsize b date:26-dec-2011sheet of file:c:documents and settingsadministrator件件件件件件件backup1.ddbdrawn by: p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 rst 9 p3.0rxd 10 p3.1txd 11 p3.2int0 12 p3.3int1 13 p3.4 t0 14 p3.5 t1 15 p3.6 wr 16 p3.7 rd 17 xtal2 18 xtal1 19 vss 20 p2.0 21 p2.1 22 p2.2 23 p2.3 24 p2.4 25 p2.5 26 p2.6 27 p2.7 28 psen 29 ale 30 ea 31 p0.7 32 p0.6 33 p0.5 34 p0.4 35 p0.3 36 p0.2 37 p0.1 38 p0.0 39 vcc 40 stc89c52 vcc 1 f 2 g 3 e 4 d 5 vcc 6 dp 7 c 8 b 9 a 10 gnd 1k 200 22uf vcc reset vcc p00 p01 p02 p03 p04 p05 p06 p07 vcc 1 f 2 g 3 e 4 d 5 vcc 6 dp 7 c 8 b 9 a 10 vcc 1 f 2 g 3 e 4 d 5 vcc 6 dp 7 c 8 b 9 a 10 vcc 1 f 2 g 3 e 4 d 5 vcc 6 dp 7 c 8 b 9 a 10 vcc 1 f 2 g 3 e 4 d 5 vcc 6 dp 7 c 8 b 9 a 10 vcc 1 f 2 g 3 e 4 d 5 vcc 6 dp 7 c 8 b 9 a 10 q1 pnp q2 pnp q3 pnp q4 pnp q5 pnp q6 pnp a 1 b 2 c 3 e1 4 e2 5 e3 6 y0 15 y1 14 y2 13 y3 12 y4 11 y5 10 y6 9 y7 7 u? 74ls138 r1 1k r2 1k r3 1k r4 1k r5 1k r6 1k vcc p00 p01 p02 a 7 b 1 c 2 d 6 lt 3 bi/rbo 4 rbi 5 a 13 b 12 c 11 d 10 e 9 f 15 g 14 u? 74ls47 r9 100 r10 100 r11 100 r12 100 r13 100 r14 100 r15 100 vcc p04 p05 p06 p07 c1+ 1 c1- 3 c2+ 4 c2- 5 t1 in 11 t2 in 10 r1 in 13 r2 in 8 gnd 15 vcc 16 vs+ 2 vs- 6 t1 out 14 t2 out 7 r1 out 12 r2 out 9 max232 1 6 2 7 3 8 4 9 5 j1 db9 + c2 10u + c310u + c5 10u + c610u + c7100u vcc rxd txd s1 s2 s3 s4 p14 p15 p16 p17 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 p10p11p12p13 ls1 speaker q7 pnp r20 10k r21 1k r22 200 vcc p33 四四、程序、程序流程图流程图 实训报告 第 五 页 开始 初始化 启动定时器 显示时钟 检测键盘 键盘模块 显示模块 响闹钟 停止 n y 是否有键按下 闹钟时间是否到 主函数 实训报告 第 六 页 是否有键按下 切功能键显示模块 分加 调试程序 分加 1 分减时加时减 调试程序 分减 1 调试程序 时加 1 调试程序 时减 1 y yyyy y n 键盘模块键盘模块 显示模块 切换键按下 u=1 显示时钟显示闹钟 yy u=2 显示模块显示模块 五、源五、源程序程序 #include #define uchar unsigned char #define uint unsigned int sbit p10=p10; sbit p14=p14; sbit p15=p15; sbit p16=p16; sbit p17=p17; sbit p3=p33; uchar t0;/定义 hang lie key t0 uint n,x,p,w,z,h; int 实训报告 第 一 页 i,j,m,a,b,c,d,k,e,f,r,y,a1,b1,c1,d1,e1,f 1,u,h1,k1,r1,v; uchar code tab=0x00,0x10,0x20,0x30,0x40,0x50,0 x60,0x70,0x80,0x90; void delay(uint q);/延时函数声明 void saomiao();/键盘扫描函数声明 void xianshi(); 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=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=(65536-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 0xee: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; case 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=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=24) r1=0; if(n=4) if(n!=4); n=0; r1-; delay(30); 实训报告 第 四 页 if(r1=-1) r1=23; naozongxianshi(); /*闹钟 */ void naozhong() if(k=k1)v50;v+) p3=0; p3=1; /*主函数*/ void main() dingshi(); while(1) saomiao(); gongnengjian(); shijiantiaoshi(); naozhong(); 六、六、实训实训体会体会 十天的单片机实训结束了,这次让我学到了很多东西, 为期 10 天的单片机实训虽然不是 很长,但是让我感觉到了原来编程不是很简单,先开始的显示时钟不是很难,下面的闹钟设置及 调试部分就花费了相当长的时间,本来还以为编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSHE 0008-2023压缩空气储能电站初步设计报告编制规程
- T/WHAS 061-2023光声断层成像系统
- T/GZJXC 08-2025贵州省岩土工程信息模型技术标准
- T/CIC 421-2025封隔器有限元仿真分析规程 第1部分:密封机构
- T/CAIEC 173-2025盾构隧道主体结构安全检测技术规程
- T/CSAE 408-2025越野汽车断开式电驱动桥总成技术条件及台架试验方法
- AI在运动人体科学中的应用
- AI在朝鲜语中的应用
- 2025-2026学年黑龙江省海伦市初中生物七年级期末上册深度自测黑金考题附答案
- 2025-2026学年甘肃省兰州市初中数学八年级期末下册自测黑金试卷(详细参考解析)
- 2026年西安秦华燃气集团校园招聘(15人)笔试历年难易错考点试卷带答案解析
- 2026年风险管理中级试题及答案
- 中国伯基特淋巴瘤诊疗指南(2025版)
- 2026软考网络工程师案例分析真题汇编 高频考题专项训练 含详细答案解析+答题技巧
- 中国近现代史纲要(2023年版)系统解读
- 城市轨道交通接触网维护(第2版)课件:架空刚性接触网设备的维护
- 2026年国家开放大学非英语类《学位英语》考试(试卷号11908)模拟试题及答案解析
- 婴幼儿伤害预防与处理配套教材电子课件(完整版)
- 麦可思2025年中国大学生就业报告(完全详细版)
- 2026中国电科29所校园招聘笔试历年备考题库附带答案详解
- 2026年病原微生物实验室生物安全管理条例考试试题及答案(A卷)
评论
0/150
提交评论