简易教学用打铃器.docx
- 文档编号:1609979
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:16
- 大小:33.12KB
简易教学用打铃器.docx
《简易教学用打铃器.docx》由会员分享,可在线阅读,更多相关《简易教学用打铃器.docx(16页珍藏版)》请在冰豆网上搜索。
简易教学用打铃器
单片机课程设计
设计题目:
简易教学用打铃器
设计目录
1.课程设计目的设计任务与要求3
2.硬件电路图与说明.3
3.电路原理图总体设计方案与说明.4
4.软件设计主要模块流程图.5
5.
.15
源程序清单与注释.7
6.小结
15
它能起到
七.参考文献
一.课程设计目的设计任务与要求
目的:
《微机原理与接口技术》是一门实践性和实用性都很强的课程,学习的目的在于应用。
本课程设计是配合“危机原理与接口技术”课堂教学的一个重要的实践教学环节,巩固课堂和书本上所学知识,加强综合能力,提高系统设计水平,启发创新思想的效果。
系统功能任务要求:
1)实时时钟LED显示(按小时:
分:
秒显示)
2)按正常教学时间打铃
3)允许修改当前时间
4)允许修改打铃时间
二、硬件电路图与说明
电路图如下所示:
主要说明:
1.部分寄存器及按键说明
28H:
扫描指针寄存器
20H--25H:
显示缓存寄存器
R6:
时钟寄存器
R5:
分钟寄存器
R4:
秒钟寄存器
K1:
模式选择键
K2:
时加1(定时器组加1)键
K3:
分加1(定时器时加1)键
K4:
秒加1(定时器分加1)键
K5:
定时器状态改变既存储键
2.校时模式
按下K1(模式选择键),将模式选择为校时模式(模式指示灯黄灯亮);
K2.K3.K4分别为时钟加1键,分钟加1键,秒钟加1键,K5无用。
3.定时模式
按下K1(模式选择键),将模式选择为定时模式(模式指示灯绿灯亮);
K2为定时器组选择(本装置有24组定时器)键;
K3.K4分别为定时器时钟加1键和定时器分钟加1键;
K5为定时器状态选择键,每按K5一次,此组的定时器状态改变一次,并将此组数据存入93C46中。
4.工作模式
按下K1(模式选择键),将模式选择为正常工作模式(模式指示灯红灯亮);
K2.K3.K4.K5无用。
5.存储器93C46的相关介绍
存储器AT93C46为SPI接口;
1脚为CS,2脚为CLK,3脚为DI,4脚为DO,5脚为GND,6脚为ORG,7脚为NC,8脚为VCC;
单5V电压,DIP8,64*16(ORG为HI)或128*8(ORG为LO),芯片及字的清除,时钟最高
为250KHZ读(READ操作:
当下达10XXXX指令后,将地址(XXXXXX的数据在CLK=HI时由DO输出;
写(WRITE操作:
在写入之前,必须先下达写使能(EWEN指令,然后在下达01XXXXXX
指令后当CLK为HI时,在把数据写入指定的地址(XXXXXX,而DO=0时,表示还在烧写,烧写完成后,DO会转为HI,写入动作完成后,必须再下达写禁止(ENDS指令;
写使能(EWEN:
下达0011XXXX指令后,才可进行写入(WRITE的数据清除。
写禁止(EWDS:
下达0000XXXX指令后,才可重复进行写入(WRITE的动作。
三.电路原理图总体设计方案与说明
1.电路原理图设计思路
利用单片机及定时器设计的一个时钟,在每次秒加1的计时过程中,都与规定的时间作比较,如果相等就进行开关电铃,不等则返回。
2.电路原理图总体设计框图
四.软件设计主要模块流程图
1.总体软件流程图
2.校时程序流程图
3.校分及显示流程图
A
五.程序清单与注释
程序分为五部分
1.初始化程序
2.键值处理程序
3.中断程序
4.显示程序
5.存储器93C46读写程序
具体程序如下:
初始化程序:
READEQU0;读93C46
WRITEEQU2;写入93C46
EWENEQU4;93C46写入使能
EWDSEQU6;93C46写入禁止
ADR46EQU21H;93C46地址
显示
显示
启动定时器进入工作状态时分值送显示缓存区
K1有按键吗?
清分单元
显示
分值加1
置校分标志
K3有按键吗?
K1有按键吗?
是60分吗?
THIGHEQU0F8H
TLOWEQU5FH
TIMENEQU30;打铃持续时间(30秒)
CSBITP3.7;93C46CS
CLKBITP3.6;93C46CLK
DIBITP3.5;93C46DI
DOBITP3.4;93C46DO
ORG0000H;主程序起始地址
AJMPSTART;跳至主程序
ORG000BH;TIMER0中断起始地址
AJMPTIM0;跳至TIMER0中断子程序
START:
MOVSP,#60H;设置堆栈在60H
MOV28H,#00;显示寄存器初值为00
MOVR6,#12H;”寄存器值为12H
MOVR5,#00H;分”寄存器值为00H
MOVR4,#00H;秒”寄存器值为00H
MOVTMOD,#01H设TIMER0为MODE1
MOVTH0,#THIGH;计时中断为4000微秒
MOVTL0,#TLOW
MOVIE,#82;TIMER中断使能
MOVR2,#250;中断250次
SETBTR0;启动TIMER0
键值处理程序:
LOOP:
SETBP0.5;工作模式
CLRP0.6
CLRP0.7
N1
JBP0.0,N1;K1(模式选择键)按了?
不是则跳至
ACALLDELAY;消除抖动
JNBP0.0,$;K1(模式选择键)放开了?
ACALLDELAY;消除抖动
AJMPSET;转到定时模式SET
N1:
MOV2FH,R6;将时钟数据载入2FH中
MOV2EH,R5;将分钟数据载入2EH中
MOVADR46,#00;把93C46地址置0
SETBRS0;将工作寄存器组选择1区
LOOP1:
MOVA,#READ;读93C46
ACALLTO93c46
MOVA,R3;取出定时器的状态
ANLA,#01H
CJNEA,#01H,N2;定时器为关闭,则跳转至N2
MOVA,R4;取出定时器分钟数据
CJNEA,2FH,N2;定时器分钟数据与时钟分钟不同则转至N2
MOVA,R5;取出定时器时钟数据
CJNEA,2EH,N2;定时器时钟数据与时钟时钟不同则转至N2
SETBP2.1;定时器时间到,打铃
MOVA,ADR46;将93C46地址载入A中
N2:
CJNEA,#1EH,N3;到定时器数据表表尾?
没到转至N3
MOVADR46,#00;到表尾,置93C46地址为表头
AJMPLOOP1;转至LOOP1
N3:
INCADR46;93C46地址加2
INCADR46
AJMPLOOP1;转至LOOP1
SET:
CLRP0.5;校时模式
SETBp0.6
CLRP0.7
LOOPS:
JBP0.0,N11;K1(模式选择键)按了?
不是则跳至N11
ACALLDELAY;消除抖动
JNBP0.0,$;K1(模式选择键)放开了?
ACALLDELAY;消除抖动
AJMPSETTIME;转至SETTIME
N11:
JBP0.1,N13;K2(时钟加1键)按了?
不是则跳至N13
ACALLDELAY;消除抖动
MOVA,R6;将时寄存器的值载入A
ADDA,#01H;A内容加1
DAA;做十进制调整
MOVR6,A;将A的值存入时寄存器
CJNEA,#24H,N12;是否超过24时?
不是则跳至N12
MOVR6,#00H;是则清除时寄存器的值为00
N12:
JNBP0.1,$;K2(时钟加1键)放开了?
ACALLDELAY;消除抖动
N13:
JBP0.2,N15;K3(分钟加1键)按了?
不是则跳至N15
ACALLDELAY消除抖动
MOVA,R5将分寄存器的值载入A
ADDA,#01;A内容加1
DAA做十进制调整
MOVR5,A;将A的值存入分寄存器
CJNEA,#60H,N14是否超过60分?
不是则跳至N14
MOVR5,#00H是则清除分寄存器的值为00
N14:
JNBP0.2,$;K3(分钟加1键)放开了?
ACALLDELAY消除抖动
N15:
JBP0.3,N17;K4(秒钟加1键)按了?
不是则跳至N17
ACALLDELAY;消除抖动
MOVA,R4;将秒寄存器的值载入A
ADDA,#01;A内容加1
DAA;做十进制调整
MOVR4,A;将A的值存入秒寄存器
CJNEA,#60H,N16;是否超过60秒?
不是则跳至N16
MOVR4,#00;是则清除分寄存器的值为00
N16:
JNBP0.3,$;K4(秒钟加1键)放开了?
ACALLDELAY;消除抖动
N17:
AJMPLOOPS;转至LOOPS
SETTIME:
CLRP0.5;定时模式
CLRP0.6
SETBP0.7
MOVADR46,#00H
MOVA,#READ;读93C46地址为ADR46中的数据
ACALLTO9346
LOOPB:
ACALLDISP;调用DISP
JBP0.0,N21;K1(模式选择键)按了?
不是则跳至N21
ACALLDELAY;消除抖动
JNBP0.0,$;K1(模式选择键)放开了?
ACALLDELAY;消除抖动
AJMPLOOP;转至LOOP
N21:
JBP0.1,N22;K2(定时器组加1键)按了?
不是则跳至
ACALLDELAY;消除抖动
MOVA,ADR46;将地址载入A
CLRC;清除进位位
RRCA;A右移1位
ADDA,#01H;地址加1
MOVR6,A;将A存入R6
CLRC;清除进位位
RLCA;A左移1位
MOVADR46,A;将A中地址存入ADR46
MOVA,#READ;读93C46地址为ADR46中的数据
ACALLTO9346
JNBP0.1,$;K2(定时器组加1键)放开了?
ACALLDELAY;消除抖动
N22:
JBP0.2,N24;K3(定时器分钟加1键)按了?
不是则跳至
ACALLDELAY;消除抖动
MOVA,R4;将定时器分寄存器的值载入A
ADDA,#01;A内容加1
DAA;做十进制调整
MOVR4,A;将A的值存入定时器分寄存器
CJNEA,#60H,N23;是否超过60分?
不是则跳至N16
N22
N24
MOVR4,#00H;是则清除分寄存器的值为00
N23:
JNBP0.2,$;K3(定时器分钟加1键)放开了?
ACALLDELAY;消除抖动
N26
N27
N24:
JBP0.3,N26;K4(定时器时钟加1键)按了?
不是则跳至
ACALLDELAY;消除抖动
MOVA,R5;将定时器时寄存器的值载入A
ADDA,#01H;A内容加1
DAA;做十进制调整
MOVR5,A;将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 教学 打铃