单片机按一下加一,加到20的程序

单片机按一下加一,加到20的程序,第1张

假设P0 P1口各接尺羡一个数码管局困昌,p2.0接按键,程序如下:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit key=P2^0

uchar num=0

//共阴数码管七段码

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77}

void Delay1ms(uint i) //1ms延时程序

{

uint j

for(i>0i--)

{

for(j=0j<164j++)

{}

}

}

void main(void )//主程序

{

while(1)

{

if(key==0)//判断按键是否按下桐扒

{

Delay1ms(10)//延时消抖

if(key==0)

{

while(key==0)//等待按键抬起

num++

if(num==20)num=0

}

}

P0=table[num%10]

P1=table[num/10]

}

}

jmp table[bx] 取得的 *** 作数,如disp1,不是一个数据,而是一个转移地址。我的理解,寻址是两个喊携宴过程,郑银先是寄存器相对寻址取得 *** 作数(disp1),然后disp1是存储器相对寻址方式找到相应语句。还可以隐败采用其他存储器或寄存器寻址方式(书上说的,这是个例题),或改为Call table[bx],然后jmp start2改为RET


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12234918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存