为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

[应用]单片机脉冲计数

2017-10-15 10页 doc 24KB 5阅读

用户头像

is_574951

暂无简介

举报
[应用]单片机脉冲计数[应用]单片机脉冲计数 模拟磨损试验机测定试件磨损次数装置实验 ——脉冲计数实验 一,实验目的 1, 熟悉单片机定时/计数功能,掌握初始化编成方法; 2, 掌握顺序控制程序的简单编程; , 掌握显示数据的编程方法。 3 二,实验内容 1,利用单相全波整流及直流电动机调速系统电气控制实验仪上脉冲产生电路,检测电机转动次数并显示。实验仪上有八位LED共阴极显示块,软件设定预置数,计到预置数后电机停止运行。 2,开机前,显示预置数。计数过程中在预置数范围内时,可随时停车并保持已计数值,再按启动钮继续计数或按清除钮删除计数...
[应用]单片机脉冲计数
[应用]单片机脉冲计数 模拟磨损试验机测定试件磨损次数装置实验 ——脉冲计数实验 一,实验目的 1, 熟悉单片机定时/计数功能,掌握初始化编成方法; 2, 掌握顺序控制程序的简单编程; , 掌握显示数据的编程方法。 3 二,实验内容 1,利用单相全波整流及直流电动机调速系统电气控制实验仪上脉冲产生电路,检测电机转动次数并显示。实验仪上有八位LED共阴极显示块,软件设定预置数,计到预置数后电机停止运行。 2,开机前,显示预置数。计数过程中在预置数范围内时,可随时停车并保持已计数值,再按启动钮继续计数或按清除钮删除计数值,重新运行并计数。 三,实验仪器、设备及材料 PC机、有关连接线、数字万用、电气控制实验仪、直流电压表、直流电动机。 四,实验原理 计数器T0计数方式进行计数,计数脉冲通过用SST8位单片机SST89E564内部定时器/ 单片机P3.4口输入,并送八位显示块显示。由于在显示块上显示的数据是十进制数,编写程序时必须进行二转十及BCD码调整。 在单相全波整流及直流电动机调速系统实验仪上显示时,把P2口作为控制字位输出,字位移动,逐位显示;P0口作为送字形代码输出。采用共阴极字形代码,每显示一位后要关闭显示,循环逐位(8位)5次。实验仪上设有按钮NK1、NK2、NK3,分别可作为启动(继续)、停车、清除按键,低电平有效,设计程序时要考虑延时。 五,实验步骤 1, 连接电气控制仪、直流电压表、直流电动机、外部脉冲输入端 2, PC机上编程,通过数据线传输至电气控制实验仪,启动电气控制实验仪,完成实验。 六,实验程序 ;----------------------------------------------------------------------------- ORG 0000H LJMP START ;转发送主程序 ;----------------------------------------------------------------------------- ORG 001BH LJMP STOP ;转发送中断服务 ;----------------------------------------------------------------------------- ;主程序 START: MOV SP,#60H ;堆栈SP=60H MOV TMOD,#15H ;T0为计算器,工作方式1,T1为定时器,工作方式1 MOV P0,#03FH MOV P1,#0FFH MOV P2,#0FFH ;P0,P1,P2口赋初值 MOV TH0,#00H MOV TL0,#00H ;TO从0开始计数 MOV TH1,#00H MOV TL1,#00H ;T1定时 时间为65.5ms MOV 59H,#00H ;计数器溢出的数累计存放在59H单元 CLR 30H ;将停止标志位清零 MOV 30H,#00H ;设预置数70000 MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#07H MOV 35H,#00H MOV 36H,#00H MOV 37H,#00H LCALL CT6 ;显示预置数 START1: JB P1.0,START1 LCALL DELY JB P1.0,START1 ;电机是否启动 LL0: JB 30H,STOP1 ;电机是否停止 LL1: SETB TR1 ;开定时器 SETB EA SETB ET1 ;开中断 SETB TR0 ;开计数器 CLR P1.3 ;启动电机 LL2: LCALL CT ;显示 LL3: SETB RS1 ;选择2区工作寄存器组 CJNE R7,#00H,LL0 CJNE R6,#00H,LL0 CJNE R5,#07H,LL0 CJNE R4,#00H,LL0 ;预置数到否 LL4: SETB P1.3 ; 关电机 CLR TR0 ; 关计数器 CLR TR1 ; 关定时器 CLR ET1 CLR EA ; 关中断 LL5: JB P1.2,LL6 LCALL DELY JB P1.2,LL6 ;清零否 LJMP START ;清零调转到START LL6: LCALL CT ; 显示 LJMP LL5 ; 不清零调转到LL5 RET ;------------------------------------------------------------------------------ STOP1: SETB P1.3 ;关电机 CLR 30H ;停止标志位清零 CLR TR0 ;关计数器 CLR TR1 ;关定时器 CLR EA CLR ET1 ;关中断 STOP2: LCALL CT ;显示 START2: JB P1.0,ST1 LCALL DELY JB P1.0,ST1 ; 继续启动电机否 LJMP LL1 ; 继续启动电机,调转到LL1 ST1: JB P1.2,STOP1 LCALL DELY JB P1.2,STOP1 ; 清零否 LJMP START ; 清零后,调转到START RET ;------------------------------------------------------------------------------ ;中断子程序 STOP: JB P1.1,STP LCALL DELY JB P1.1,STP ;是否停止 SETB 30H ;停止,标志位置1 STP: RETI ;------------------------------------------------------------------------------ ;显示子程序 CT: CLR RS1 ;选择0区通用工作寄存器组 MOV R6,TH0 ;计数器高八位传给R6 MOV R7,TL0 ;计数器低八位传给R7 JNB TF0,HB ;计数器是否溢出 INC 59H ;将溢出的数累加后存在59H单元 CLR TF0 ;溢出标志位清零 HB: MOV R5,59H ;将累加后的溢出数传给R5 SETB RS1 ;选择2区通用工作寄存器组 CLR A MOV R4,A MOV R5,A MOV R6,A MOV R7,A ;清零 MOV R2,#24 ;24次移位 H_B: CLR RS1 ;选择0区通用工作寄存器组 MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5 RLC A MOV R5,A SETB RS1 ;选择2区通用工作寄存器组 MOV A,R7 ADDC A,R7 DA A MOV R7,A MOV A,R6 ADDC A,R6 DA A MOV R6,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A DJNZ R2,H_B ;二进制数转十进制 CT1: SETB RS1 ;选择2区通用工作寄存器组 MOV R0,#30H ;拆字,十进制数由低位到高位依次存放到30H-37H MOV A,R7 LCALL C_T MOV A,R6 LCALL C_T MOV A,R5 LCALL C_T MOV A,R4 LCALL C_T CT6: MOV R3,#5 ;循环显示5次 CT2: MOV DPTR,#TAB ;查表 MOV R0,#30H CT3: MOV R1,#80H CT4: MOV A,R1 MOV P2,A ;送字位 RR A MOV R1,A MOV A,@R0 MOVC A,@A+DPTR MOV P0,A ;送字形 MOV R2,#4FH DJNZ R2,$ INC R0 CJNE R1,#80H,CT4 DJNZ R3,CT2 CT5: RET ;------------------------------------------------------------------------------ C_T: MOV R1,A ;拆字子程序 ACALL PTDS1 MOV A,R1 SWAP A PTDS1: ANL A,#0FH MOV @R0,A INC R0 RET ;------------------------------------------------------------------------------ DELY: SETB RS0 ;消抖延时子程序 MOV R5,#04H DEL1: MOV R4,#0FFH DJNZ R4,$ DJNZ R2,DEL1 CLR RS0 RET ;------------------------------------------------------------------------------ TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H ;------------------------------------------------------------------------------ END 七,实验图 开 始 设堆栈,定时/计数器、P0、P1、P2口初始化 N 启动否, Y Y 停止否, N 开定时/计数器、计数 关定时/计数器 显 示 显 示 N 预置数到否, Y Y 继续(启动)否, N清 零 否, Y N 清零否, 显 示 N Y
/
本文档为【[应用]单片机脉冲计数】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索