单片机 程控打铃器Word文档下载推荐.docx
- 文档编号:16506583
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:24
- 大小:76.25KB
单片机 程控打铃器Word文档下载推荐.docx
《单片机 程控打铃器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机 程控打铃器Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
该打铃器可任意设定时间达到定时控制,定时时间到,打铃,然后自动关闭打铃。
该打铃器具有功耗低,体积小,可靠性好,性价比高等优点,增加了系统的稳定性。
比较全面的体现了单片机定时器的功能。
3设计方框图
4各部分程序设计
4.1初始化
4.1.1初始化程序
$include(c8051f020.inc)
ORG0000H
AJMPMAIN
ORG0093H
LJMPINT6
ORG009BH
AJMPINT7
ORG000BH
LJMPTimer0_ISR
ORG001BH
LJMPT1
ORG100h
;
延时子程序
Delay:
MOVR7,#0F0H
Delay0:
MOVR6,#80H
Delay1:
DJNZR6,Delay1
DJNZR7,Delay0
RET
MAIN:
MOVWDTCN,#0DEH;
禁止看门狗定时器
MOVWDTCN,#0ADH
MOVEIE2,#30H;
允许外部中断6/7的请求
MOVTMOD,#11H
MOVXBR2,#40H
MOVP3IF,#00H;
当检测到P3.6/P3.7引脚的下降延时该由硬件置位
SETBP3.5
MOV30H,#14H
LCALLSYSCLK_Init;
初始化系统时钟
LCALLPORT_Init;
交叉开关和通用I/O口初始化
LCALLdata_init
MOVTH0,#3CH
MOVTL0,#0B0H
MOV33H,#0AH
MOV36H,#0AH
MOV50H,#00H
MOV51H,#00H
MOVR3,#40
MOVP3MDOUT,#0FFH
SETBET0
SETBET1
SETBEA
SETBTR0
SETBTR1
Rep:
LCALLDelay
LCALLLCD_Init;
LCD初始化
MOVP6,#0DH;
写命令
MOVDPTR,#writedata
MOVR4,#08H;
显示字的数目
Line1:
;
显示第一行字符
CLRA
MOVR1,#38H
line11:
MOVA,@R1
MOVCA,@A+DPTR
DECR1
MOVP7,A
MOVP6,#0CH
MOVP6,#0DH
DJNZR4,Line11
MOVP6,#09H
MOVP7,#0C0H;
换行
MOVP6,#08H
MOVR4,#06H
Line2:
显示第二行字符
CLRA
MOVR1,#40H
Line22:
MOVA,@R1
INCR1
DJNZR4,Line22
LJMPRep
系统时钟初始化
SYSCLK_Init:
MOVOSCXCN,#67H
OSC_WAIT:
MOVA,OSCXCN
JNBACC.7,OSC_WAIT
ORLOSCICN,#08H;
系统时钟初始化为片外的时钟
通用I/O口及交叉开关初始化
PORT_Init:
MOVXBR0,A;
没有选择数字外设
MOVXBR2,#40H
MOVP74OUT,#0FFH;
P0口设为推挽方式
定时器0的初始化
LCD_Init:
MOVP7,#038H;
两行显示
MOVP7,#0EH;
开显示,开光标,字符不闪烁
MOVP7,#06H;
I/D=1,AC自动增1;
S=0,整体显示不移动
MOVP7,#01H;
清除DDRAM,置AC=0
数据初始化
data_init:
MOVR7,#20H
MOVR1,#31H
LOOG:
MOV@R1,#0
INCR1
DJNZR7,LOOG
----------------------30h~38h留给定时器0用-------------------------------------------------
30h----------判断一秒常数
31h----------秒变量低位
32h----------秒变量高位
33h----------冒号
34h----------分变量低位
35h----------分变量高位
36h----------冒号
37h----------时变量低位
38h----------时变量高位
本部分主要参照以前做过的一个液晶显示器程序,主要包括关看门狗,防止干扰,还包括系统时钟初始化、通用I/O口及交叉开关初始化、定时器0的初始化、LCD初始化、数据初始化。
和以前的主要区别是显示位数不同,而且本次时间显示只用第一行字符显示就可以了。
还有我所编的程序在时间到时灯亮同时打铃,p3.5低电平时控制响铃,所以只要让p3.5推挽输出即可,并将p3.5与小灯用导线连接,即可完成低电平亮灯响铃。
4.2时钟电路设计
4.2.1时钟电路程序:
Timer0_ISR:
CLRTF0
MOVTL0,#0B0H
DJNZ30H,EXIT;
判断是否到了1s
MOVR0,#31H
INC50H
INC31H
CJNE@R0,#10,EXIT
MOV31H,#0
INCR0
INC32H
CJNE@R0,#6,EXIT
MOV32H,#0
INCR0
INC34H
MOV34H,#0
INC35H
MOV35H,#0
INC37H
MOV37H,#00H
INC38H
//CJNE@R0,#2,EXIT
//MOV38H,#0
CJNE@R0,#2,EXIT
DECR0
CJNE@R0,#4,EXIT
MOV37H,#0
MOV38H,#0
EXIT:
mova,51h
CJNEa,#0,DL
mova,50h
CJNEa,#15,DL1
CLRP3.5
MOVTH1,#3CH
MOVTL1,#0B0H
INC51H
MOV50H,#0
DL1:
RETI
DL:
CJNEa,#5,DL1
MOV51H,#0
设计此电子钟程序的基本思路为:
让定时器T0作为时钟基准,每50ms产生一次定时中断。
此外,还须建立50ms计数单元,分计数单元,时计数单元各一个,每次定时中断时,50ms计数单元加1。
50ms计数单元满20时令秒计数单元加一,秒计数单元满60令分计数单元加1,分计数单元满60时令计数单元加1,时计数单元满24时令时、分计数清零。
另外分别建立数码管显示子程序及一个按键判断子程序,用于显示及调整时间。
4.2.2时钟程序框图:
图4.2总体软件流程图和校时程序流程图
图4.3校分及显示流程图
4.3校时部分
4.3.1校时部分程序
INT6:
PUSHACC
PUSHPSW
MOVA,34H
ADDA,#01H
CJNEA,#0AH,LOP1
MOV34H,#00H
INC35H
MOVA,35H
CJNEA,#06H,LOP2
MOV35H,#00H
LJMPLOP
LOP1:
MOV34H,A
LOP2:
MOV35H,A
LOP:
MOVP3IF,#00H
POPPSW
POPACC
INT7:
MOVA,37H
CJNEA,#05H,LOP3
MOV37H,#00H
MOVA,38H
CJNEA,#03H,LOP4
MOV38H,#00H
LJMPLOP5
LOP3:
MOV37H,A
LOP4:
MOV38H,A
LOP5:
MOVP3IF,#00H
在校时程序中,由中断6和中断7控制分加一和时加一,分加一到六十进位。
时加一到24时分都清零。
4.5响铃停止
4.5.1响铃停止程序
T1:
DJNZR3,FB
FB:
MOVTL1,#0B0H
RETI
500Hz
程序中设定计时开始,隔15秒灯亮响铃,隔5秒后灯亮响铃,如此循环,代表上课铃响,和下课铃响。
5工作过程分析
本次设计的程控打铃器,能实现对秒、分、时数字显示的计时装置,小时的周期为24,显示满刻度为23时59分59秒,并具有手动校时功能.
本次设计的程控打铃器由以下几个部分组成,主程序、初始化(包括系统时钟初始化、通用I/O口及交叉开关初始化、定时器0的初始化、LCD初始化、数据初始化。
6元器件清单
(1)C8051F020单片机
(2)电脑
(3)电源
7主要指令介绍
(1)MOV
(2)LCALL
(3)DJNZ
(4)CJNZ
(5)SETB
(6)CLR
(7)INC
(8)RETI
(9)AJMP
(10)XBR2
(11)EIE2等
小结
程控电子打铃器,以即单片机为核心,由软件实现打铃时刻表的预置与修改,实现时间的显示、校正和铃响控制,软件采用子程序模块化结构设计,使程序功能强,调试效率高此种响铃器实际为一种可编程时间控制器,使用方便,操作简单。
通过本次设计,从茫然毫无头绪到开始编单片程序再到把程序结合在一起,进行调适。
我对单片机编程的应用有了更加深入地了解。
并在在设计的过程中,融入了自己的想法,增加了设计的兴趣。
通过这次对程控打铃器的设计与制作,我了解了一些编程的步骤,同时也了解了关于单片机的设计原理与设计思想,更进一步地熟悉了C8051系列单片机的结构及掌握了各芯片的工作原理和其具体的使用方法。
我觉得要熟悉单片机箱芯片各引脚的功能和牢记程序指令,那么在程序出错时便能准确地找出错误所在并及时纠正了。
虽然设计时间很紧迫,但在设计的过程中我们还是学到不少东西的,由于有些程序的语句我们学的不多,这样我们在查找这些资料的过程中就学到了很多东西。
通过老师的指导,同学的帮助和在图书馆查找资料,借阅大量图书,和自主学习,我学到了许多知识,并增加了以后对单片机学习的信心。
致谢
感谢我的指导老师吕老师在此次课程设计中给予我热情而耐心的指导。
吕老师不仅在我的开始毫无头绪时给了我很多提示,纠正了我许多错误,还指导了我应该去查找哪些方面的资料去完善这次设计,弥补出现的设计漏洞。
使我的设计有一个明确的主导思想,能够顺利而有条不紊地进行。
其次我要感谢我的同学们,无论是否和我一组的同学,都热心的给与我很多帮助。
在我设计出现障碍不能继续进行的时候,通过和他们一起讨论研究,最终攻克了许多难题,并且因为交流思想心得,也学到了许多新知识。
最后感谢学校图书馆给我们提供了很丰富的资源,可以让我们去查找资料,开扩了眼界,也提高了我们的自学能力。
由于知识水平的局限和时间的仓促,设计中可能会存在着一些不足,我真诚的接受老师和同学的批评和指正.。
最后再次衷心感谢老师的悉心指导和同学们的热心帮助!
参考文献
[1]周兴华.《手把手教你学单片机》.北京航空航天大学出版社,2004.4
[2]雷思孝,冯育长.《单片机系统设计及工程应用》.西安电子科技大学出版社,2005
[3]李玉梅.《单片机原理的应用设计》.国防工业出版社,2006.5
[4]万光毅,孙九安,蔡建平.《SoC单片机实验,实践与应用设计》.北京航空航天大学出版社,2006
[5]图书馆电子资源
附录A1程序全文
$include(c8051f020.inc)
MOVA,3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 程控打铃器 程控 打铃
![提示](https://static.bdocx.com/images/bang_tan.gif)