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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2001|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

為什么這個單片機程序的計算答案不是顯示1650

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:860248 發(fā)表于 2021-11-4 00:07 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本人剛剛學(xué)習(xí)51單片機, 做了一個顯示 30 X 55 答案的小程序,
但顯示的答案 不是 1650 而是 1672,
請問我錯在哪里?
謝謝
(我用的是普中單片機開發(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 (280.41 KB, 下載次數(shù): 64)

IMG_20211103_235121.jpg

C6-4.pdf

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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2021-11-4 06:34 | 只看該作者
計算結(jié)果本身沒有錯,是顯示出錯。你驅(qū)動數(shù)碼管的段碼和位碼錯位。把1650顯示成2761,位序反后2761就成1672。
回復(fù)

使用道具 舉報

板凳
ID:752974 發(fā)表于 2021-11-4 08:22 | 只看該作者
檢查一下段嗎。
回復(fù)

使用道具 舉報

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

使用道具 舉報

5#
ID:578842 發(fā)表于 2021-11-4 09:04 | 只看該作者
查你的顯示函數(shù)

無標題.jpg (205.8 KB, 下載次數(shù): 50)

無標題.jpg

無標題1.jpg (189.26 KB, 下載次數(shù): 46)

無標題1.jpg
回復(fù)

使用道具 舉報

6#
ID:908826 發(fā)表于 2021-11-4 09:11 | 只看該作者
你四位數(shù)提取每一位的計算對嗎???我咋覺得不太對哎。
回復(fù)

使用道具 舉報

7#
ID:977536 發(fā)表于 2021-11-4 09:39 | 只看該作者
可能用于顯示的代碼出問題了
回復(fù)

使用道具 舉報

8#
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();
        }
}

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

IMG_20211104_121914.jpg (258.05 KB, 下載次數(shù): 47)

IMG_20211104_121914.jpg
回復(fù)

使用道具 舉報

9#
ID:277550 發(fā)表于 2021-11-4 12:29 | 只看該作者
取各位的代碼,應(yīng)該要改一下
z/1000%10//千位
z/100%10//百位
z/10%10//十位
z%10  //個位,最低位
回復(fù)

使用道具 舉報

10#
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ù)

使用道具 舉報

11#
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ù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一级电影在线观看 | 天天干天天草 | 毛片av免费在线观看 | 日韩乱码在线 | 超碰免费在线观看 | 久久久久久久久久一区二区 | 91在线精品视频 | 色吊丝2288sds中文字幕 | 国产美女福利在线观看 | 污片在线免费观看 | 午夜私人影院在线观看 | 日韩精品视频在线免费观看 | 国产伦精品一区二区三区在线 | 五月天婷婷激情 | 欧美日韩亚洲国产综合 | aa级毛片毛片免费观看久 | 91精品国产91久久综合桃花 | 亚洲欧美激情精品一区二区 | 国产精品夜间视频香蕉 | 99re在线视频 | 亚洲精久| 精品欧美一区免费观看α√ | 日本精品裸体写真集在线观看 | 99久久精品国产毛片 | 99久久免费精品国产男女高不卡 | 国产精品色 | 国产精品高潮呻吟久久av黑人 | 国产一级片一区二区 | 国产一区二区三区四区五区加勒比 | 欧美精品首页 | 蜜桃精品视频在线 | 日韩一区二区免费视频 | 99视频免费在线 | 欧美福利精品 | 日本a级大片 | 亚洲国产精品福利 | 日韩欧美三级在线 | 亚洲欧美自拍偷拍视频 | 欧美综合一区 | 91麻豆精品国产91久久久久久久久 | 久久福利 |