欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求教個仿真問題,在將函數內容放到主函數按位輸出IO口沒問題,做成調用函數出現顯示... [打印本頁]

作者: zhouyixing852    時間: 2021-4-25 11:49
標題: 求教個仿真問題,在將函數內容放到主函數按位輸出IO口沒問題,做成調用函數出現顯示...
源程序如下:
#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();//數碼管顯示函數聲明

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;

}


作者: 啊哈哈123    時間: 2021-4-25 12:12
你這不報錯?
1.你注釋的函數聲明 displayout();
改成 void displayout(uchar num);
2.你主函數調用這個函數,都不傳參的?

你這C語言得好好練練。
作者: zhouyixing852    時間: 2021-4-25 21:34
啊哈哈123 發表于 2021-4-25 12:12
你這不報錯?
1.你注釋的函數聲明 displayout();
改成 void displayout(uchar num);

改了,也是不行,可以看下是哪里有問題  
作者: zhouyixing852    時間: 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);//數碼管顯示函數聲明

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;

}





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1