找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 1902|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

求教個(gè)仿真問題,在將函數(shù)內(nèi)容放到主函數(shù)按位輸出IO口沒問題,做成調(diào)用函數(shù)出現(xiàn)顯示...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:379877 發(fā)表于 2021-4-25 11:49 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int   
#define uchar unsigned char   
sbit SEGA = P0^0;
sbit SEGB = P0^1;
sbit SEGC = P0^2;
sbit SEGD = P0^3;
sbit SEGE = P0^4;
sbit SEGF = P0^5;
sbit SEGG = P0^6;
sbit SEGH = P0^7;  

uchar num;
char val=12;
uchar M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

displayout();//數(shù)碼管顯示函數(shù)聲明

void delay1ms(int w)  

    unsigned char a,b,c;
    for(c=w;c>0;c--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}

void main()
{

  while(1)
  {
       num=M[val/10];                    displayout();
        num=M[val%10];
       displayout();
               
        }
}

void displayout(uchar num)
{
        
        SEGA = (num>>0)&0x01;
  SEGB = (num>>1)&0x01;
  SEGC = (num>>2)&0x01;
  SEGD = (num>>3)&0x01;
  SEGE = (num>>4)&0x01;
  SEGF = (num>>5)&0x01;
  SEGG = (num>>6)&0x01;
  delay1ms(100);
  SEGA=SEGB=SEGC=SEGD=SEGE=SEGF=SEGG=1;

}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:332214 發(fā)表于 2021-4-25 12:12 | 只看該作者
你這不報(bào)錯(cuò)?
1.你注釋的函數(shù)聲明 displayout();
改成 void displayout(uchar num);
2.你主函數(shù)調(diào)用這個(gè)函數(shù),都不傳參的?

你這C語言得好好練練。
回復(fù)

使用道具 舉報(bào)

板凳
ID:379877 發(fā)表于 2021-4-25 21:34 | 只看該作者
啊哈哈123 發(fā)表于 2021-4-25 12:12
你這不報(bào)錯(cuò)?
1.你注釋的函數(shù)聲明 displayout();
改成 void displayout(uchar num);

改了,也是不行,可以看下是哪里有問題  
回復(fù)

使用道具 舉報(bào)

地板
ID:379877 發(fā)表于 2021-4-25 21:41 | 只看該作者
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int   
#define uchar unsigned char   
sbit SEGA = P0^0;
sbit SEGB = P0^1;
sbit SEGC = P0^2;
sbit SEGD = P0^3;
sbit SEGE = P0^4;
sbit SEGF = P0^5;
sbit SEGG = P0^6;
sbit SEGH = P0^7;  

uchar num;
char val=12;
uchar M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void  displayout(uchar num);//數(shù)碼管顯示函數(shù)聲明

void delay1ms(int w)  

    unsigned char a,b,c;
    for(c=w;c>0;c--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}

void main()
{

  while(1)
  {
       num=M[val/10];                          displayout();
        num=M[val%10];
       displayout();
               
        }
}

void displayout(uchar num)
{
        
        SEGA = (num>>0)&0x01;//仿真查看SEGA值無法賦正確的值,問題怎么解決,求解
        SEGB = (num>>1)&0x01;
        SEGC = (num>>2)&0x01;
        SEGD = (num>>3)&0x01;
        SEGE = (num>>4)&0x01;
        SEGF = (num>>5)&0x01;
        SEGG = (num>>6)&0x01;
       delay1ms(100);
      SEGA=SEGB=SEGC=SEGD=SEGE=SEGF=SEGG=1;

}
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表