永发信息网

在8位单片机如何实现16位运算

答案:5  悬赏:30  手机版
解决时间 2021-03-20 12:21
  • 提问者网友:美人性情
  • 2021-03-19 21:08
在8位单片机如何实现16位运算
最佳答案
  • 五星知识达人网友:舊物识亽
  • 2021-03-19 22:32
3位数码管显示十进,最大是999,,4位数码管显示十进,最大是9999

void display(unsigned int temp)
unsigned char qian,bai,shi,ge;

qian=temp/1000
bai=temp%1000/100;
shi=temp%100/10;
ge=temp%10;
LED_Data=table[qian];
LED1=0;
delay(1);
LED1=1;

LED_Data=table[bai];
LED2=0;
delay(1);
LED2=1;

LED_Data=table[shi];
LED3=0;
delay(1);
LED3=1;

LED_Data=table[ge];
LED4=0;
delay(1);
LED4=1;
}
全部回答
  • 1楼网友:愁杀梦里人
  • 2021-03-20 02:33
3位数码管显示十进,最大是999,,4位数码管显示十进,最大是9999

void display(unsigned int temp)
unsigned char qian,bai,shi,ge;

qian=temp/1000
bai=temp%1000/100;
shi=temp%100/10;
ge=temp%10;
LED_Data=table[qian];
LED1=0;
delay(1);
LED1=1;

LED_Data=table[bai];
LED2=0;
delay(1);
LED2=1;

LED_Data=table[shi];
LED3=0;
delay(1);
LED3=1;

LED_Data=table[ge];
LED4=0;
delay(1);
LED4=1;
}
  • 2楼网友:愁杀梦里人
  • 2021-03-20 02:09
8位单片机可以进行16位运算。8位是指数据传送是以8位。
  • 3楼网友:北城痞子
  • 2021-03-20 00:59
编写程序的时候,如果是汇编语言。要给每个参与运算的变量都设置好两个字节的空间。相加或想减的时候,低位对低位运算。有进位和借位的话,都会被置进位标志位(51单片机是CY,PIC是C,其他的单片机不清楚)。然后是高位和高位和进位标志位运算。
如果是C语言或者basic语言,直接声明16位的整形变量,编译器会帮你设置好上述汇编的一系列运算。
  • 4楼网友:独钓一江月
  • 2021-03-19 23:50
如果你是用C编译器,那么根本就不用考虑这个问题,因为编译器都为你解决了,你只需要定义16位的变量(如int型)
但如果你是用汇编语言写程序,那么就得为程序分配内存单元(字型变量),利用四个或四个以上的八位寄存器,先低八位进行运算,然后进行高八位的运算,但其中要注意状态寄存器的变化。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯