引脚下降沿产生中断信号-starter使用手册
SETB EX0 ;开外部P3.2引脚中断
SETB IT0 ;P3.2引脚下降沿产生中断信号
SETB EA ;开总中断允许
---主程序----
MAIN:CALL CHUFA ;调处理子程序完成除法任务
CALL DISPLAY ;调显示子程序
SJMP MAIN ;程序跳转到MAIN处
----CHUFA子程序---
CHUFA:MOV A, XINLVSHU ;XINLVSHU中的数据拷贝给A
MOV B, #100 ;给寄存器B赋值100
DIV AB ;用A除以B,结果在A中(百位),余数在B中
MOV XINLVBAIWEI, A ;百位的结果放在XINLVBAIWEI中
MOV A , B ;把B中的余数拷贝给A
MOV B, #10 ;给B中赋值10
DIV AB ;用A除以B,结果在A中(十位),余数在B中(个位)
MOV XINLVSHIWEI, A ;A中的数拷贝给XINLVSHIWEI
MOV XINLVGEWEI ,B ;B中的数据拷贝给XINLVGEWEI
MOV A, MIAO ;把秒拷贝个A
MOV B, #10 ;给B中赋值10
DIV AB ;用A除以B,结果在A中(十位),余数在B中(个位)
MOV MIAOSHIWEI, A ;把A(秒的十位)拷贝给MIAOSHIWEI
MOV MIAOGEWEI, B ;把B(秒个位)拷贝给MIAOGEWEI
RET ;子程序返回
---DISPLAY子程序---
DISPLAY:MOV A, MIAOSHIWEI ;把MIAOSHIWEI中存储的数据拷贝给A
MOVC A, @A+DPTR ;到数据表中取秒十位对应的显示段码
MOV P0, A ;将显示段码送到P0口处
CLR P2.7 ;P2.7置0,使得三级管导通给第一个数码管供电
CALL DELAY ;延一段时间,使得十位数据显示一段时间
在主程序中,我们首先开启了外部P3.2引脚中断,这意味着任何从高电平到低电平的变化都会触发一个中断信号。然后,我们通过调用CHUFA
子程序来处理除法运算。如何在汇编语言中进行除法操作可以参考大数除法运算。DISPLAY
子程序将计算结果显示出来。关于单片机显示的更多信息,可以查看51单片机显示子程序。
在CHUFA
子程序中,我们将XINLVSHU
中的数据复制到累加器A,然后进行除法运算,并将结果分别存储在不同的变量中。为了更好地理解这种除法运算的方法,可以参阅除法运算方法。
DISPLAY
子程序负责将计算结果显示在数码管上。如果你对单片机的中断处理和显示程序设计有兴趣,相关例子和技巧可以参考PIC单片机引脚中断程序的设计技巧和调用显示子程序。
下载地址
用户评论