机床主轴测速课程设计

2026/1/27 4:07:01

MOV TMOD,#11H ;T0模式不变,T1模式1,定时l0ms

LOOP1:MOV TH1,#0ECH ;定时器T1装初值定时10ms

MOV TL1,#78H

SETB TR1 ;开T1

JNB TF1,$ ;等待T1溢出 CLR TF1 ;清除T1溢出位 ACALL DIS ;调用10ms一次数据动态显示子程

DJNZ R1,LOOP1 ;循环显示100次 CLR TR1 ;关定时器T1,两个定时器回到初

始模式

MOV TMOD,#51H MOV TL1,#00H MOV TH1,#00H MOV TL0,#0B0H MOV TH0,#3CH

SETB TRl ;开启两定时器 SETB TR0 RETI

显示子程序:

DIS: MOV A,R5

MOV 40H,A ;将个位放入40H单元 MOV A,R4

MOV 39H,A ;将十位放入39H单元 MOV A,R3

MOV 38H,A ;将百位放入38H单元

MOV R0,#40H ;显示数据首地址写入寄存器

R0

DISl: MOV R2,#80H ;位选信号“10000000”写到

R2

MOV A,R2

MOV DPTR,#TAB ;字形表头地址送DPTR JB P1.0,L1 ;判断正反转状态

MOV P2,A ;反转第四个数码管显示 MOV A,#40H ;符号“一”的段码送到P0

MOV P0,A

LCALL Dlms ;调用延时1ms子程序

17

LI: MOV R2,#0lH ;正转第四个数码管不显示

MOV A,R2

L2: MOV P2,A ;从倒数第二个数码管开始

TAB: Dlms:DL: DL1:HB2:HB3:显示

MOV A,@R0

MOVC A,@A+DPTR ;取出字形码

MOV P0,A ;送到P0口LED显示 ACALL Dlms ;调用延时1ms子程序 DEC R0 ;数据缓冲区地址向下移一

MOV A,R2

JB ACC.2,LP1 ;第一个数码管显示了吗? RL A ;没有,位选左移一位 MOV R2,A

AJMP L2 ;再次动态显示一次 LP1:RET

DB 3FH,06H,5BH,4FH,66H,6DH

DB 7DH,07H,7FH,6FH ;共阴极LED显示字形

编码表

MOV R7,#02H ;1ms延时子程序 MOV R6,#0FFH DJNZ R6,DL1

DJNZ R7,DL RET

CLR A ;二、十进制转换子程序

MOV R3,A MOV R4,A MOV R5,A MOV R2,#l0H

CLR C

MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A

MOV R6,A

MOV A,R5 ;R5中是个位数字 ADDC A,R5 DA A

18

MOV R5,A

MOV A,R4 ;R4中是十位数字 ADDC A,R4 DA A MOV R4,A

MOV A,R3 ;R3中是百位数字 ADDC A,R3 DA A

MOV R3,A

DJNZ R2,HB3 ;判断是否转换完成 RET

2、程序流程图: 主程序流程图

开始 中断次数10写入B 设定时器、计数器工作方式 定时器T0赋初值,定时为100ms 计数器T1清零 开定时器T0,计数器T1 开中断 等待定时中断 中断服务程序流程图

19

中断程序入口 关闭两定时器T0、T1 开定时器T1 NT1溢出? 计数器T1高八位加入R6,低八位加入R7 Y清除T0溢出位 等待 NB=0?Y重新给B赋值10 调用显示子程序DIS N调用二、十进制转换程序 HB2 R1=0? Y关闭定时器T1 显示循环次数100写入R1 两定时器T0、T1重新赋初值 重新设定工作模式T0不变,T1变为定时模式1,定时10ms 开启两定时器T0、T1 定时器T1设初值,定时为10ms 中断返回

显示子程序流程图:

20


机床主轴测速课程设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 机床主轴测速课程设计 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219