原创
基于51单片机的模拟生产线上啤酒装箱计数过程与报警程序
; 设计一个智能工件计数系统
;(1)要求模拟生产线上啤酒装箱计数过程,每过一瓶计数一次并通过4位数码管显示当计数到24瓶时声音报警。
;(2)画出硬件连接图,编写软件程序
;此程序应用一位单片爱好者而作,作者: 徐学军
;此程序的显示电路接P1口,74LS47直接接在P1口,74ls47与数码管的具体接法参考数字电路书
;此程序的报警电路接在P3.5,具体电路参考我博客上的音乐采灯程序电路
;此程序的P3.3接光电对管电路
;此程序在硬件上模拟调试通过
;2007-7-16
speaker bit p3.5 ;接报警电路
ORG 0000H
AJMP START
ORG 001BH ;T1中断入口地址
AJMP INT_T1
ORG 0040H
START:
MOV SP,#60H
MOV TMOD,#15H ;置T1为方式1
;置T0为方式1,计数方式,
MOV TL0,#0H ;计数器清零
MOV TH0,#0H
MOV TL1,#21H ;定时器报警音频常数
MOV TH1,#0F9H
SETB TR0 ;启动T0
SETB ET1
SETB EA ;开中断
loop:
MOV a,TL0 ;保存计数值
lcall display ;调用显示子程序
jz loop
clr tr1 ;不管满不满24瓶,每次开始计第一瓶,就关报警
mov b,#24
div ab
mov a,b
jz loop1
sjmp loop
loop1:
MOV TL0,#0H ;计数器清零
MOV TH0,#0H
setb tr1 ;满24瓶发声
SJMP loop
INT_T1:
MOV TL1,#21H ;定时器报警音频常数
MOV TH1,#0F9H
cpl speaker
reti
display:
mov p1,a
;;; 显示子程序
;;;
ret
END
文章评论(0条评论)
登录后参与讨论