3.2 工作原理
单片机的定时功能是通过计数器的计数来实现的,不过此时的计数脉冲来
自单片机芯片内部,每个机器周期有一个计数脉冲,即每个机器周期计数器加1。由于一个机器周期等于12个振荡脉冲周期,因此,计数频率为振荡频率的1/12。如果单片机采用12MHz晶振,则计数频率为1MHz,即每微妙计数器加1。这样,在使用定时器是既可以根据计数值计算出定时时间,也可以通过定时时间的要求
算出计数器的预置值。
要实现定时器的功能,需要用到与定时器/计数器应用有关的控制寄存器,它们分别是:定时器控制寄存器(TCON)、定时器方式选择寄存器(TMOD)、中断允许控制寄存器(IE)。利用定时器/计数器定时几秒,某键按下去开始计时,定时时间到红灯亮,再按下去停止计时。
3.3 光电传感器
光电传感器的作用主要是将光信号转换为电信号,它是一种利用光敏器件作为检测元件的传感器。光电传感器对光的敏感主要是利用半导体材料的电学特性受光照射后发生变化的原因。即利用的是光电效应。光电效应通常分为两类:
1)外光电效应:即在光线作用下,物体内的电子受激逸出物体表面向外发射的现象。利用这类效应的传感器主要有光电管、光电倍增管等。
2)内光电效应:受光照射的物体电导率发生变化或产生光电动势的效应。它可分为光电导效应(即电子吸收光子能量从键合状态转换为自由状态,从而引起电阻率变化)和光生伏特效应(物体在光线作用下产生一定方向的电动势)。
3.4 光电传感器应用注意事项
1、光敏三极管和发光二极管的速度快,因而光电传感器的速度也快,可以检测快变信号。
2、可见光波长为380nm(紫色光)~760nm(红光),红外光波长为760nm~100um,而光敏三极管接收的峰值波长为880nm~900nm是近红外光。阳光的波长(长于280nm以上)的范围较宽,易对光电传感器形成干扰。因此避免阳光照射到光敏三极管。
3、光电传感器可测试的最短距离为几毫米至数米。最长达数百米。
4 智能光电定时器软件设计 4.1 程序流程图
(一)主程序流程图 开 始 堆栈、进入时间置入状 态,缓冲单元清零
光电置入状态? N
Y 进入拨码开关置入方式,T0工作 在定时方式,送定时常数 T0T1设置为记数方式,开放中 取数据转换为秒数进入中断服务子程序,置入时间 并存放结果
T0 开始记数, 进入T0中断服务子程序 禁止其它中断
定时结束,调用音乐定时结束,调用 子程序,并给出光提声光提示子程序
结 束
(二)T0 中断服务子程序 T0 中断服务子程序
光电置入方式 拨码开关置入方式 判断工作方式
定时状态? Y 定时结束? N(置入状态) Y 分钟高位单元加一 N N 定时未结束 启动T0,定时开始
Y N 声光提示 启动 T0 定时开始 定时结束? 调用灯光 N 闪烁程序 Y 定时结束? 调用音乐提示子程序 调用灯光 Y 闪烁程序 调用声提示子程序
中 断 返 回 4.2 主程序
;功能:初始化,判断定时置入方式,进行定时数据采集,判断定时是 ORG 0030H
MAIN: MOV SP,#60H ;堆栈初始化 MOV 20H,#01H ;标志字 MOV R1,#40H MOV R0,#10H NOP NOP
INITIAL: MOV @R1,#0 ; INC R1
DJNZ R0,INITIAL ;初始化
SETB P3.7 ;拨码开关 CLR P1.6
JB P1.5,HAND CLR 20H.1
LCALL TINITIAL ORL IE, #8FH
ROTATE: CPL P1.7 ;状态指示 LCALL DELAY200MS NOP NOP
JB 20H.0,R ;进入循环 MOV TL0,#0 ;进入定时 MOV TH0,#0 ;给定时器0 MOV IE,#82H MOV TMOD,#11H SETB TR0
SUBMIT: LCALL MUSIC ;发出声音 LJMP SUMBM ;继续发出 ORG 0070H HAND: SETB 01H
MOV TMOD,#11H ORL IE,#8AH MOV TH0,#0D8H MOV TL0,#0F0H NOP NOP