历史上的今天
今天是:2025年01月16日(星期四)
2018年01月16日 | 水泵定时控制实验
2018-01-16 来源:eefocus
现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全。电子继电器便能完成这一桥梁作用。
特别提醒:
实验时请尽量不要去控制220V及以上电压级别的设备,因这个学习套件是面向学习,而不是面向工业控制的.如果您一定要接220V及以上电压的设备请在实验过程中注意安全,继电输出部份采用了光电隔离,如果正确接线,不会损坏套件的主板。
程序功能:
运行时,继电器闭合十秒,断开十秒,间断的运行.数码管显示倒计时的时间.计时时间可通过按键设定.
引脚说明:
p3.5启动,p3.4加一,p3.3退出设置,p3.2设置
p1.0为电源指示灯
p1.1,jk1指示灯,p1.2,jk2指示灯
p1.4,调整记数指示灯,p1.5,延时调整指示灯
p2.7输出控制水泵电机
水泵定时控制实验程序如下:
org 00h
ljmp main ;主程序入口
org 03h
ljmp int00 ;中断0入口
org 0bh
ljmp disp ;定时中断0入口
org 13h
reti
org 1bh
org 23h
reti
org 30h
main: mov 30h,#10h ; 显示缓冲区
mov 31h,#10h ;(buf)
mov 32h,#10h ; 备份
mov 34h,#50 ; 记时
mov p2,#0ffh
mov p3,#0ffh
mov p1,#0feh ; 指示灯亮
mov sp,#68h
mov tmod,#01h ;定时器0,方式1
setb it0 ;下降沿有效
mov ie,#83h ;允许定时器0,中断0
mov th0,#0f8h
mov tl0,#0d0h
setb tr0
jb p3.5,$ ;未按下,则等待
jnb p3.5,$ ;未松开,则等待
mov p1,#0fch ;jk1指示灯亮
clr p2.6 ;p2.6启动
setb p2.7 ;p2.7断开
loop: nop
lcall sub ;减一操作
cjne r2,#00h,loop1
cpl p1.1
cpl p1.2 ;指示灯取反
cpl p2.6 ;继电器取反操作
cpl p2.7
mov 31h,32h ;从32h中读初值
loop1:mov r3,34h ;从34h中读入延时初值
lcall delay ;调延时子程序
ljmp loop
; 减一子程序
sub: clr c
mov a,#9ah
subb a,#1
add a,31h
da a
mov 31h,a
mov 30h,a ;放显示缓冲区
mov r2,31h
ret
; 延时10ms子程序
delay:mov r4,#20
del_a:mov r5,#248
djnz r5,$
djnz r4,del_a
djnz r3,delay
ret
;==========================
; 中断0服务
int00: clr ex0 ;关外中断
clr tr0
push aCC
push psw
jnb p3.3,$ ;未松开,等待
lcall int_lay
int00_loop:
jnb p3.3,int_dect ;p3.1按下,则到延时处理
clr p1.4 ;p3.1未按下,记数指示灯亮
setb p1.5 ;关延时初值指示灯
mov 30h,32h ;备份值放显示缓冲区
lcall int00_dis
int00_datadd:
jb p3.4,int00_dp ;p3.4未按下,跳显示处理
lcall int_lay
jnb p3.4,$ ;未松开,等待
mov a,32h
add a,#1
da a
mov 32h,a
mov 30h,a
lcall int00_dis
ljmp int00_loop
int00_dp:
mov 30h,32h
lcall int00_dis
ljmp int00_loop
int_dect:
lcall int_lay
jnb p3.3,$
int_del:setb p1.4 ;关记数指示灯
clr p1.5 ;开延时指示灯
mov 30h,34h
lcall int00_dis
jb p3.4,int_out
lcall int_lay
jnb p3.4,$
mov a,34h
add a,#05h
da a
mov 34h,a
mov 30h,a
lcall int00_dis
ljmp int_del
int_out:
jb p3.3,int_del
lcall int_lay
jnb p3.3,$
pop psw
pop acc
setb ex0
setb tr0
setb p1.4
setb p1.5
reti
;========================
; 中断显示,显示缓冲区30h
int00_dis:
setb p2.0 ;关显示,
setb p2.1
mov a,30h
anl a,#0fh
mov 28h,a
mov a,30h
swap a
anl a,#0fh
mov 29h,a
mov dptr,#tab
mov a,28h
movc a,@a+dptr
mov p0,a
clr p2.0
call delay_1ms
setb p2.0
setb p2.1 ;关显示
mov a,29h
movc a,@a+dptr
mov p0,a
clr p2.1
call delay_1ms
setb p2.0
setb p2.1 ;关显示
ret
;=====================
; 定时中断子程序
disp:push acc
push psw
mov th0,#0f8h
mov tl0,#0d0h
setb p2.0 ;关显示,
setb p2.1
mov a,30h
anl a,#0fh
mov 28h,a
mov a,30h
swap a
anl a,#0fh
mov 29h,a
mov dptr,#tab
mov a,28h
movc a,@a+dptr
mov p0,a
clr p2.0
call delay_1ms
setb p2.0
setb p2.1 ;关显示
mov a,29h
movc a,@a+dptr
mov p0,a
clr p2.1
call delay_1ms
setb p2.0
setb p2.1 ;关显示
pop psw
pop acc
reti
tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h
db 00h
;************************
; 显示延时子程序
;************************
delay_1ms:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ret
int_lay:
mov r7,#60 ;消除抖动 30m秒
int_e1:
mov r6,#248
djnz r6,$
djnz r7,int_e1
ret
end
上一篇:LCD1502驱动程序
下一篇:51单片机定时中断实现显示的程序
史海拾趣
|
本帖最后由 辛昕 于 2018-5-3 16:35 编辑 其实从后来的经历来看。 此内容由EEWORLD论坛网友辛昕原创,如需转载或用于商业用途需征得作者同意并注明出处 这件事,除非是自己去做,否则没多大意义。 当然了,花几百块买一台100Mhz以上带宽的 ...… 查看全部问答> |
|
WinCE5.0不加载explorer.exe无法保存注删表 我的注册表是基于hive方式的,一切都很正常,但是修改注册表: [HKEY_LOCAL_MACHINE\\init] \"Launch50\"=\"MyApplication.exe\" \"Depend50\"=hex:14,00, 1e,00 即explorer.exe用我自己的程序代替,不加载桌面而启动我的程序,这时出现注册表 ...… 查看全部问答> |
|
今天叫同学拿的Jlink 仿真器。 一开始我把驱动装好,把Jlink 连上电脑 , 再把JTAG的20PIN 连上 ARM9开发板的 JTAG 调试口。刚开始的时候 用J-Link Commander 能打印出Jlink 的信息 但是检测不到开发板芯片,后来鼓捣了几 ...… 查看全部问答> |
|
终端节点、路由器节点 应用程序都采用同样的程序编译,定时5分钟传一帧数据到协调器 运行一段时间,部分路由器没有定时上送帧了,终端节点是正常的。 但是路由节点转发别的节点的数据的功能是正常的 。 总共74个节点,其中6个路由器。 & ...… 查看全部问答> |
|
本帖最后由 497759272 于 2016-3-25 19:02 编辑 小弟最近正在做一个电子节拍器的项目,通过MSP430的定时器控制PWM波进而产生中断效果同时产生 ‘嗒’ 的音,但是输出之后的声音除了嗒之外有明显的噪音。小弟就想知道这种噪音是能够程序的改进避免 ...… 查看全部问答> |
|
忙里偷闲学习ufun_19]FX2N PLC仿制验证通信部分完成,欢迎大家测评 经过一段时间学习,了解,分析。从别人的基础上移植了FX2N PLC仿制验证通信部分完成,欢迎大家测评。通信部分OK其它待完成 … 查看全部问答> |




