- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机控的生产线产品计数系统
PAGE
PAGE 10
生产线产品计数设计报告
摘要:随着社会的进步,科学技术的不断被发展,大多的企业在一些方面都实现了自动化控制,无人化。这项设计是生产线产品的计数,该系统以单片机和光电式传感器为基础。可以对一段时间内的产品数量进行计数,从而可以知道产品的生产率。利用红外线对射来进行对产品的计数,当产品通过时红外线被隔断,产生一个负脉冲,对负脉冲进行存储,定时时间到,读出内存的结果并通过LED数码管显示出来。
关键词:生产线、单片机、光电传感、LED显示管
该产品的设计是用于流水线上产品的计数,在一段时间内可以知道产品的数量从而得知产品的生产效率,在此基础上可以发展为生产线上的自动包装,这可以节省时间,节约劳动力。在国内外,一些生产自动化比较高的企业都已经用自动控制了,实现无人化,特别是产品的自动包装。
具体设计方案:
设计要求:生产线上每一个产品通过,都会产生一个脉冲,通过统计脉冲数量来实现一段时间内产品的数量的统计,要求有清零功能。
系统工作原理
采用光电传感对射装置,测量流水线上的产品的数量,当有流水线上没有产品通过时,光电耦合器接通,产生正脉冲,正脉冲经过反相器,输入P1.0口0信号。当有产品经过时光电耦合器没接通,没有接收到光信号,形成一个负脉冲信号,同时将这个负脉冲信号经反相器送入单片机P1.0口进行计数存储。通过读取内存的数据送往P2口并经译码驱动电路使数码管显示数值,这样就得到要统计的产品的数量。在这里采用P1.0口检测负脉冲的输入,来一个信号就累加起来进行存储,采用内存40H~47H的地址进行存储,逢9进1再清零,分别存储了产品数量的个、十、百、千……。定时时间到了,就从内存里读取数据送数码管显示数值。
硬件设计
采用单片机AT89C52作为控制主要硬件,光电接收器装置输出脉冲信号,外部中断控制清零计数,复位控制由看门狗、上电、手动复位。晶振振荡电路。其硬件设计原理图如下所示。
硬件原理图
三、数码管显示
七段数码管显示,采用共阴极显示,由P2口控制七段发光管P0口控制位选择。采用动态显示,简化电路,降低成本。其硬件原理图如下所示。
数码管显示原理图
定时器T0
选择定时器T0,工作模式1,TL0和TH0构成16位的计数器。设定定时值为50ms,公式:(M-X)*Tcy=定时时间,M为计数器最大值216,Tcy为计数周期,即单片机的机器周期,这里选择12MHz。计算初值为3CB0H,定时时间到,进入中断服务程序。其硬件原理图如下所示。
定时器T0原理图
五 程序设计
主程序:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT
ORG 000BH
LJMP SEVER
ORG 0050H
MAIN:MOV SP,#0C0H
MOV R1,40H ;清零40H~47H地址单元
MOV R2,#8
BLACK:MOV @R1,#00
INC R1
DJNZ R2,BLACK
SETB RS0 ;选择特殊工作寄存器
CLR RS1 ;组1并清零
MOV R0,#00
MOV R2,#00
MOV R3,#00
MOV R4,#00
MOV R5,#00
MOV R6,#00
MOV R7,#00
CLR RS0 ;恢复默认的工作寄存器组0
CLR RS1
MOV A,#00
MOV R6,#200
MOV R7,#180
MOV TMOD,#01H ;选择定时器T0工作模式1
MOV TL0,#0B0H ;赋初值
MOV TH0,#3CH
MOV P1,#00
CLR TF0
SETB TR0 ;启动T0
SETB EA ;开CPU中断
SETB EX0 ;启动外部中断
SETB ET0 ;启动T0中断
LOOP:NOP
LCALL SAOMIAO ;调用P1.0位状态扫描子程序
LCALL DISPLAY ;调用显示子程序
LJMP LOOP
ORG 0100H
外部中断程序
INT:PUSH ACC ;外部中断进行清零功能
PUSH PAW
MOV P0,#0FFH
MOV P2,#00
POP PAW
POP ACC
RETI
ORG 0200H
定时器中断服务程序
SEVER:PUSH ACC
PUSH PAW
MOV TL0,#0B0H
MOV TH0,#3CH
CLR TF0
DJNZ R7,LOOP1
DJNZ R6,LOOP1
LCALL DISPLAY ;调用显示子程序
LOOP1:POP PAW
POP AC
文档评论(0)