




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机综合实验报告题 目: 多功能数字时钟 班 级: 姓 名: 学 号: 一、实验内容:设计一个单片机控制的秒表系统。利用单片机的定时器的原理,结合显示电路、LED数码管以及按键来设计计时器,使系统能够正确地进行加、减(倒)计时,数码管能够正确地显示时间。l 目的要求1) 两位LED显示,显示时间为0099秒。2) 每秒自动加1。3) 一个开始按键、一个复位按键和一个暂停按钮。 4) 翻页按钮查看四个不同的计时值 。 5) 添加倒计时初始值设置功能6) 不同功能通过功能键Setup实现切换。二、实验电路及功能说明本实验以51单片机为核心,应用其中断来定时,通过按键来控制时间和日期的调整,通过1602LCD来数字显示时钟,做成一个简易的数字时钟。本实验要求能定时,还要能设置闹铃,由于对C51程序代码的写法不是很熟,没能实现闹铃功能。所以,最后该实验能实现的功能为时间和日期的调整。其原理图如下图所示:三、实验程序流程图:主程序:主程序流程图子流程图(按键功能设置)四、实验结果分析经过proteus仿真可知:该方案可行,能够对时间进行精确的调整,也能对日期进行更正,基本上能实现上述功能。五、心得体会通过该试验我对51的了解更加深入了一层,特别是对C51的写法更加了解,还对1602的基本操作有了一定的了解。同时,也发现C语言的重要性,以后要多加强对C语言的学习.六、程序清单#include #include /库函数头文件,代码中引用了_nop_()函数/ 定义控制信号端口sbit RS=P24; /P2.4sbit RW=P25; /P2.5sbit E=P26; /P2.6sbit set=P14; /设置键sbit add1=P15; /加1键sbit sub1=P16; /减1键sbit enter=P17; /确认键bit k=0,f=0;/k为0表示运行状态,k为1表示设置状态;f为0表示第一行显示,f为1表示第二行显示char sec,n,m;unsigned char count,key;unsigned char lcdd=0123456789; /*声明调用函数*/void dispd(); /日期显示函数void dispt(); /时间显示函数unsigned char keys();/按键扫描函数void lcd_w_cmd(unsigned char com); /写命令字函数void lcd_w_dat(unsigned char dat); /写数据函数unsigned char lcd_r_start(); /读状态函数void int1(); /LCD初始化函数void delay(unsigned char t); /可控延时函数void delay1(); /软件实现延时函数,5个机器周期/*主函数*/void main() TMOD=0x01; /设置为定时器模式1TH0=(65536-50000)/256; /晶振6MHz,定时时间100msTL0=(65536-50000)%256;IE=0x82; /开全局中断和定时中断TR0=1; /启动定时器sec=0; /秒count=0; /中断次数清0n=-3; /设置键按下次数,第一行日期m=-3; /设置键按下次数,第二行时间 P0=0xff; / 送全1到P0口 int1(); / 初始化LCD delay(255); while(1) key=keys(); /读取按键 switch(key) case 0xe0: /按下设置键 TR0=0; k=1; if(f=0) n=n+3; if(n=9) n=0; m=0; f=1; else m=m+3; if(m=12) m=0; n=0; f=0; if(f=0) lcd_w_cmd(0x0d); lcd_w_cmd(0x86+n); else lcd_w_cmd(0x0d); lcd_w_cmd(0xc4+m); break; case 0x70: /按下确认键 k=0; TR0=1; n=-3; m=-3; f=0; break; case 0xd0: /按下加1键 if(k=1) if(f=0) (m=6)sec+;if(sec=100) sec=0;dispt(); /调用第二行显示函数 lcd_w_cmd(0x0d); /光标闪烁 lcd_w_cmd(0xc4+m);/返回设置值显示地址 break; case 0xb0: /按下减1键 if(k=1) if(f=0) if(m=6)sec-;if(sec0) sec=99; dispt(); /调用第二行显示函数 lcd_w_cmd(0x0d); /光标闪烁 lcd_w_cmd(0xc4+m);/返回设置值显示地址 break; if(k=0) dispd();dispt(); /调用LCD显示函数 /*延时函数*/void delay(unsigned char t) unsigned char j,i; for(i=0;it;i+) for(j=0;j20;j+); /*延时函数1*/void delay1() _nop_(); _nop_(); _nop_();/*LCD初始化函数*/void int1() lcd_w_cmd(0x3c); / 设置工作方式 lcd_w_cmd(0x0c); / 设置光标 lcd_w_cmd(0x01); / 清屏 lcd_w_cmd(0x06); / 设置输入方式 lcd_w_cmd(0x80); / 设置初始显示位置/*LCD读状态函数*/返回值:返回状态字,最高位D7=0,LCD控制器空闲;D7=1,LCD控制器忙unsigned char lcd_r_start() unsigned char s; RW=1; /RW=1,RS=0,读LCD状态 delay1(); RS=0; delay1(); E=1; /E端时序 delay1(); s=P0; /从LCD的数据口读状态 delay1(); E=0; delay1(); RW=0; delay1(); return(s); /返回读取的LCD状态字/*LCD写命令函数*/void lcd_w_cmd(unsigned char com) unsigned char i; do / 查LCD忙操作 i=lcd_r_start(); / 调用读状态字函数 i=i&0x80; / 与操作屏蔽掉低7位 delay(2); while(i!=0); / LCD忙,继续查询,否则退出循环RW=0;delay1();RS=0; / RW=0,RS=0,写LCD命令字delay1();E=1; /E端时序delay1();P0=com; /将com中的命令字写入LCD数据口delay1();E=0;delay1();RW=1;delay(255);/*LCD写数据函数*/void lcd_w_dat(unsigned char dat) unsigned char i; do / 查忙操作 i=lcd_r_start(); / 调用读状态字函数 i=i&0x80; / 与操作屏蔽掉低7位 delay(2); while(i!=0); / LCD忙,继续查询,否则退出循环 RW=0; delay1(); RS=1; / RW=1,RS=0,写LCD数据 delay1(); E=1; / E端时序 delay1(); P0=dat; / 将dat中的显示数据写入LCD数据口 delay1(); E=0; delay1(); RW=1; delay(255);/*定时中断函数*/void timer0() interrupt 1 TH0=(65536-50000)/256; /晶振6MHz,定时时间100msTL0=(65536-50000)%256;count+;if(count=20) count=0; sec+; if(sec=99) sec=0; /*按键扫描函数*/unsigned char keys()unsigned char cod,del;P1=0xf0;cod=P1&0xf0; /读入P3口键值if(cod!=0xf0) /先检测有无按键按下 delay(100); /去抖 if(cod!=0xf0) cod=P1&0xf0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年乡镇退役军人服务站招聘考试热点分析
- 2025年农村医疗保障员招聘面试模拟题及答案详解
- 2025年人力资源管理实战模拟题及案例分析教程
- 2025年中成药制药生产线合作协议书
- 2025年市政工程项目建议书
- 2025年镍压延加工材项目发展计划
- 福建省莆田市某校2024-2025学年一年级上学期第一次月考数学试题
- 心内科考试试题及答案
- 抗焦虑失眠药课件
- 抗心律失常课件
- 2025年重庆市永川区社区工作者招聘考试笔试试题(含答案)
- 电气自动化基础知识课件
- 家畜繁殖员上岗证考试题库及答案
- DG-TJ08-2097-2025 地下管线探测技术标准
- 数学鲁教版九年级上学期分层计划
- 甘肃省合理用药管理办法
- 新解读《建筑工程消防施工质量验收规范 DBJ-T 15-248-2022》
- 第十三章 三角形 单元测试 2025-2026学年人教版(2024)八年级数学上册
- 女生的青春期健康教育
- 以《论语》为翼:高中生价值观构建的教学实践与探索
- 妇产科电子护理文书书写规范
评论
0/150
提交评论