
其中计数是方式3,8位自动重装,初值是255,。
--方式3,没有自动重装功能。
=====
另外,交换两个按键的功能,试试看:
void clear_count() interrupt 0 //改成 interrupt 1
{
count=0;
}
void add_count() interrupt 1 //改成 interrupt 0
{
count=(count+1)%100;
}
以单片机,51系列,外中断0为例
BZHI BIT 00H ;中断标志
JISHU EQU 30H ;计数器
ORG 0000H
START: AJMP MAIN
ORG 0003H
AJMP WZD0 ;转移到真正外中断服务程序入口
ORG 0040H
MAIN: MOV SP,#5FH ;预置栈指针
MOV IE,#81H ;开外中断0允许
DENGD: JNB BZHI,$ ;未见到外中断,等待
CLR BZHI ;清除标志,为下次准备
MOV A,JISHU ;取计数值
ACALL DISPL ;将A值送显示,具体内容由你所使用的硬件决定
AJMP DENGD ;返回等待
;==== 外中断0服务程序
WZD0: SETB BZHI ;设标志
INC JISHU ;计数器加一
RETI ;退出中断服务程序
;==== 将计数值(即中断次数)送显示,完成所定任务
DISPL:
;具体指令由所用硬件决定
RET
单片机有自己的外部中断口,AT89S52是P34,P35外部的电平变化进过一些整流滤波后接到P34或P35上有变化时单片机就会进中断程序进行计数。这样中断一次记一个数。在用数码管或液晶屏显示出来。我这有个程序你改改就行。汇编的没用
以上就是关于51单片机,外部中断,和计数求解。在proteus上显示不了效果。全部的内容,包括:51单片机,外部中断,和计数求解。在proteus上显示不了效果。、汇编编程,中断程序,并显示中断次数!、单片机的什么中断可以进行外部计数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)