|
本人剛剛學習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();
}
}
|
|