×
单片机 > 单片机程序设计 > 详情

基于51单片机的模拟生产线上啤酒装箱计数过程与报警程序

发布时间:2020-05-26 发布时间:
|
       ; 设计一个智能工件计数系统
                                        ;(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
关键字:51单片机  模拟生产线  计数过程  报警程序 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AVR熔丝位操作时的要点和需要注意的相关事项