久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2170|回復(fù): 10
收起左側(cè)

為什么這個(gè)單片機(jī)程序的計(jì)算答案不是顯示1650

[復(fù)制鏈接]
ID:860248 發(fā)表于 2021-11-4 00:07 | 顯示全部樓層 |閱讀模式
本人剛剛學(xué)習(xí)51單片機(jī), 做了一個(gè)顯示 30 X 55 答案的小程序,
但顯示的答案 不是 1650 而是 1672,
請問我錯(cuò)在哪里?
謝謝
(我用的是普中單片機(jī)開發(fā)板)

#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();
}
}
IMG_20211103_235121.jpg

C6-4.pdf

45.29 KB, 下載次數(shù): 5

回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-11-4 06:34 | 顯示全部樓層
計(jì)算結(jié)果本身沒有錯(cuò),是顯示出錯(cuò)。你驅(qū)動(dòng)數(shù)碼管的段碼和位碼錯(cuò)位。把1650顯示成2761,位序反后2761就成1672。
回復(fù)

使用道具 舉報(bào)

ID:752974 發(fā)表于 2021-11-4 08:22 | 顯示全部樓層
檢查一下段嗎。
回復(fù)

使用道具 舉報(bào)

ID:844772 發(fā)表于 2021-11-4 08:35 | 顯示全部樓層
x,y定義的是char,你結(jié)果又超出255,所以答案就不可測,需要看編譯器怎么翻譯的,你可以通過強(qiáng)制類轉(zhuǎn)換方式計(jì)算。
回復(fù)

使用道具 舉報(bào)

ID:578842 發(fā)表于 2021-11-4 09:04 | 顯示全部樓層
查你的顯示函數(shù)
無標(biāo)題.jpg
無標(biāo)題1.jpg
回復(fù)

使用道具 舉報(bào)

ID:908826 發(fā)表于 2021-11-4 09:11 | 顯示全部樓層
你四位數(shù)提取每一位的計(jì)算對嗎???我咋覺得不太對哎。
回復(fù)

使用道具 舉報(bào)

ID:977536 發(fā)表于 2021-11-4 09:39 | 顯示全部樓層
可能用于顯示的代碼出問題了
回復(fù)

使用道具 舉報(bào)

ID:860248 發(fā)表于 2021-11-4 12:22 | 顯示全部樓層
#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 int x = 32;
        unsigned int y = 54;
        unsigned int z;
        z = x*y;                 //答案 1728

       
        while(1)
        {
        P0 = 0X00;
        HC138_A = 0; HC138_B = 0; HC138_C = 0; P0 = smgduan[z/1000]; delay7ms();
        }
}

謝謝各位
這次我更加混亂了
我用另一個(gè)乘法公式, 答案應(yīng)該是 1728
我就顯示 千位數(shù), 應(yīng)該顯示 1的, 但為什么顯示 2?
是 四舍五入 嗎? 如何解決呢?
IMG_20211104_121914.jpg
回復(fù)

使用道具 舉報(bào)

ID:277550 發(fā)表于 2021-11-4 12:29 | 顯示全部樓層
取各位的代碼,應(yīng)該要改一下
z/1000%10//千位
z/100%10//百位
z/10%10//十位
z%10  //個(gè)位,最低位
回復(fù)

使用道具 舉報(bào)

ID:860248 發(fā)表于 2021-11-4 13:09 | 顯示全部樓層
謝謝
但修改了還是顯示 2

                while(1)
                {
                        P0 = 0X00;
                        HC138_A = 0; HC138_B = 0; HC138_C = 0; P0 = smgduan[z/1000%10]; delay7ms();
                }
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-11-4 13:32 | 顯示全部樓層
kscheang 發(fā)表于 2021-11-4 13:09
謝謝
但修改了還是顯示 2


已經(jīng)明確的告訴你問題出在段碼和位碼,還在瞎折騰。數(shù)組前面少了0x3f,后面多了0xff。位碼低位高位順序反了。
  1. #include<reg52.h>
  2. #include<intrins.h>

  3. sbit HC138_A = P1^0;
  4. sbit HC138_B = P1^1;
  5. sbit HC138_C = P1^2;

  6. unsigned char code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  7. void delay7ms(void) //誤差 0us
  8. {
  9. unsigned char a,b,c;
  10. for(c=1;c>0;c--)
  11. for(b=26;b>0;b--)
  12. for(a=133;a>0;a--);
  13. }


  14. void main()
  15. {
  16.         unsigned char x = 30;
  17.         unsigned char y = 55;
  18.         unsigned int z;
  19.         z = x*y;
  20.         while(1)
  21.         {
  22.                 HC138_A = 0; HC138_B = 0; HC138_C = 0; P0 = smgduan[z%10]; delay7ms();
  23.                 HC138_A = 1; HC138_B = 0; HC138_C = 0; P0 = smgduan[z/10%10]; delay7ms();
  24.                 HC138_A = 0; HC138_B = 1; HC138_C = 0; P0 = smgduan[z/100%10]; delay7ms();
  25.                 HC138_A = 1; HC138_B = 1; HC138_C = 0; P0 = smgduan[z/1000%10]; delay7ms();
  26.         }
  27. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 免费av一区二区三区 | 一级黄色毛片 | 日韩免费毛片 | 成人福利在线 | 国产成人网 | 久草网址 | 国产一区精品在线 | 男人的天堂在线视频 | 欧美日韩国产高清视频 | 国内久久 | 久久成人精品视频 | 亚洲精品久久久久久久久久久 | 国产精品久久久久久久久久免费看 | 免费黄视频网站 | av一级毛片| 国产成人99av超碰超爽 | 欧美天堂 | 国产一区二区久久久 | 99久久99热这里只有精品 | 一区二区免费在线 | 日韩av看片 | 国产精品污www一区二区三区 | 人操人免费视频 | 亚洲午夜精品视频 | 日韩欧美不卡 | h片在线播放 | 国产精品久久久久久网站 | 国产视频精品免费 | 成人网视频 | 欧美精品一区二区三区四区 在线 | 国产精品日韩欧美一区二区三区 | 麻豆国产一区二区三区四区 | 亚洲性人人天天夜夜摸 | 欧美一区二区免费 | 国产 日韩 欧美 在线 | 亚洲精品久久久蜜桃 | 国产精品久久久久久久久久99 | 日韩在线中文 | 日韩精品一区二区三区 | 欧美888 | 性在线|