#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欢迎分享,转载请注明来源:内存溢出
评论列表(0条)