- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机嵌入式实验报告51秒表
单片机及嵌入式设计姓名:班级:信息工程学号:学院:信息科学与技术学院题目51秒表设计要求我们设计的是一个1602液晶显示的秒表,计时精度达到0.1秒,另外有两个独立的按键对秒表进行控制,一个键控制计时的开始,一个键控制计时的停止。使用的系统平台软件平台:keil51 keil51是美国keil software出品的51系列兼容单片机C语言软件开发系 统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真于一体,同时还支持PLM、汇编、和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有强大的功能。 硬件平台:STC89C52单片机、1602液晶显示器、按钮、发光二极管 STC89C52单片机:STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。 1602液晶显示器:1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。系统总体设计 如下图所示,整个秒表以STC89C52为核心,按下停止键或启动键控制秒表的停止和开始,同时反映给STC89C52,再经过处理显示在1602液晶显示器上,进行计时。 系统的详细设计硬件: 系统总的原理图如上图所示,按下暂停和启动按键,秒表开始计时并显示在LCD1602液晶显示器上。 对于STC89C52单片机,其内部带有定时/计数系统,此定时功能是通过对外部晶振的脉冲进行计数,从而达到计时功能。 对于LCD1602通过指令来控制它的读写操作。 软件流程图:系统的软件实现主要函数: 延时函数:void delay1ms(){ unsigned char i,j;for(i=0;i10;i++) for(j=0;j33;j++); } void delay(unsigned char n) { unsigned char i;for(i=0;in;i++) delay1ms(); }忙状态测试: unsigned char BusyTest(void) { bit result;RS=0; //根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; //E=1,才允许读写 _nop_(); //空操作 _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应3时间 result=BF; //将忙碌标志电平赋给result E=0; //将E恢复低电平 return result; }void WriteInstruction (unsigned char dictate){ while(BusyTest()==1); //如果忙就等待RS=0; //根据规定,RS和R/W同时为低电平时,可以写入指令RW=0;E=0; //E置低电平(根据表8-6,写指令时,E为高脉冲, // 就是让E从0到1发生正跳变,所以应先置0_nop_();_nop_(); //空操作两个机器周期,给硬件反应时间P0=dictate;
您可能关注的文档
最近下载
- 我爱这土地公开课一等奖市赛课一等奖课件.pptx VIP
- 2025社区工作者招聘考试综合基础知识试题(附答案).docx VIP
- 基于Javaweb的图书管理系统的设计与实现.docx VIP
- 医院危重孕产妇新生儿急救应急演练脚本.docx VIP
- 小学科学新教科版二年级上册1.6.“小房子”展示会教案(2025秋版).doc VIP
- 网络安全等级保护-重大风险隐患项描述实践指南(【2025】测评报告新增).docx VIP
- 社区工作者综合能力考试基础知识试题及答案.docx VIP
- 2025年秋新人教版数学三年级上册整册教案.pdf
- 抗菌药物临床应用分级管理目录(2023年版).doc VIP
- 急性左心衰护理课件ppt.pptx
文档评论(0)