单片机程控打铃器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机程控打铃器

1 设计任务描述 1.1 设计题目:程控打铃器程序设计 1.2 设计要求 1.2.1 设计目的 (1)掌握程控打铃器原理,调试方法 (2)综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解, 具备设计单片机应用系统的能力。 1.2.2 基本要求 编写程控打铃控制器程序。 要求:1) 编写时钟程序,显示时间。 2) 控制打铃时间并予以显示。 3) 时间可以调整。 1.2.3 注意事项 (1) 实践中所用仪器及设备均应按操作规程操作。 (2) 设计应独立思考,发现问题尽量自己解决。 (3) 实验结果需经老师检查后方算完成。 2 设计思路 根据此次课程设计的要求,我设计的程控打铃器由以下几个部分组成,主程序、初始化(包括系统时钟初始化、通用I/O口及交叉开关初始化、定时器0的初始化、LCD初始化、数据初始化。)、时钟程序、时钟校准、定时、响铃。 主程序中,主要执行以下步骤:显示器初始化,计时器清零,各计时时间到标志清零,定时器初始化,开定时器,开定时器中断,进入计时显示程序。 按照要求,要实现编写时钟程序,显示时间。控制打铃时间并予以显示。 时间可以调整。所以时钟部分,可以实现时、分、秒的显示,通过建立时钟基准和计数单元实现计数。通过计数器加一实现,通过预设进位限制和要求实现准确计时。 打铃时,利用单片机及定时器设计的一个时钟,在每次秒加 1的计时过程中,都与规定的时间作比较,如果相等就进行开关电铃,不等则返回. 模拟学校打铃时间,所以设定每隔15秒灯亮铃响,再过5秒灯亮铃响。该打铃器可任意设定时间达到定时控制,定时时间到,打铃,然后自动关闭打铃。该打铃器具有功耗低,体积小,可靠性好,性价比高等优点,增加了系统的稳定性。比较全面的体现了单片机定时器的功能。4.1初始化 4.1.1 初始化程序 $include (c8051f020.inc) ORG 0000H AJMP MAIN ORG 0093H LJMP INT6 ORG 009BH AJMP INT7 ORG 000BH LJMP Timer0_ISR ORG 001BH LJMP T1 ORG 100h ;延时子程序 Delay: MOV R7, #0F0H Delay0: MOV R6, #80H Delay1: DJNZ R6, Delay1 DJNZ R7, Delay0 RET MAIN: MOV WDTCN,#0DEH ;禁止看门狗定时器 MOV WDTCN,#0ADH MOV EIE2,#30H ;允许外部中断6/7的请求 MOV TMOD,#11H MOV XBR2,#40H MOV P3IF,#00H ;当检测到P3.6/P3.7引脚的下降延时该由硬件置位 SETB P3.5 MOV 30H,#14H LCALL SYSCLK_Init ;初始化系统时钟 LCALL PORT_Init ;交叉开关和通用I/O口初始化 LCALL data_init MOV TH0,#3CH MOV TL0,#0B0H MOV 33H,#0AH MOV 36H,#0AH MOV 50H,#00H MOV 51H,#00H MOV R3,#40 MOV P3MDOUT,#0FFH SETB ET0 SETB ET1 SETB EA SETB TR0 SETB TR1 Rep: LCALL Delay LCALL LCD_Init ;LCD初始化 MOV P6,#0DH ;写命令 LCALL Delay MOV DPTR,#writedata MOV R4,#08H ;显示字的数目 Line1: ;显示第一行字符 CLR A MOV R1,#38H line11: MOV A,@R1 MOVC A,@A+DPTR DEC R1 MOV P7,A MOV P6,#0CH MOV P6,#0DH LCALL Delay DJNZ R4,Line11 MOV P6,#09H MOV P7,#0C0H ;换行 MOV P6,#08H MOV P6,#09H LCALL Delay MOV DPTR,#writedata MOV R4,#06H Line2: ;显示第二行字符 CLR A MOV R1,#40H Line22: MOV A,@R1 MOVC A,@A+DPTR INC R1 MOV P7,A MOV P6,#0CH MOV P6,#0DH LCALL Delay DJNZ R4,Line22 LJMP Re

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档