|
本人刚刚学习51单片机, 做了一个显示 30 X 55 答案的小程序,
但显示的答案 不是 1650 而是 1672,
请问我错在哪里?
谢谢
(我用的是普中单片机开发板)
#include<reg52.h>
#include<intrins.h>
sbit HC138_A = P1^0;
sbit HC138_B = P1^1;
sbit HC138_C = P1^2;
unsigned char code smgduan[10]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0Xff};
void delay7ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=26;b>0;b--)
for(a=133;a>0;a--);
}
void main()
{
unsigned char x = 30;
unsigned char y = 55;
unsigned int z;
z = x*y;
while(1)
{
HC138_A = 1; HC138_B = 1; HC138_C = 0; P0 = smgduan[z/1000]; delay7ms();
HC138_A = 0; HC138_B = 1; HC138_C = 0; P0 = smgduan[(z%1000)/100]; delay7ms();
HC138_A = 1; HC138_B = 0; HC138_C = 0; P0 = smgduan[(z%100)/10]; delay7ms();
HC138_A = 0; HC138_B = 0; HC138_C = 0; P0 = smgduan[z%10]; delay7ms();
}
}
|
|