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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

STC實(shí)驗(yàn)板顯示函數(shù)誰(shuí)能幫忙解釋一下?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72649 發(fā)表于 2023-11-30 05:34 來(lái)自觸屏版 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
STC實(shí)驗(yàn)板這個(gè)顯示函數(shù)看不懂
/********************** 顯示掃描函數(shù) ************************/
void DisplayScan(void)
{   
    P7 = ~T_COM[7-display_index];
    P6 = ~t_display[LED8[display_index]];
    if(++display_index >= 8)    display_index = 0;  //8位結(jié)束回0
}
這段程序誰(shuí)能幫忙解釋一下?如果位選不在同一個(gè)字節(jié)的IO口,比如分別用了P1口和P3口,程序要怎樣修改?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:277550 發(fā)表于 2023-11-30 10:06 | 只看該作者
重新定義位變量,賦值時(shí)寫單獨(dú)的語(yǔ)句,
sbit w1 = P1^1;
sbit w2 = P1^2;
sbit w3 = P1^6;
sbit w4 = P3^7;



賦值時(shí),分別
w1=0;
w2=1;
w3=0;
w4=0;

回復(fù)

使用道具 舉報(bào)

板凳
ID:548322 發(fā)表于 2023-11-30 11:09 | 只看該作者
直接在頭文件把位選 映射到P1 P3端口
回復(fù)

使用道具 舉報(bào)

地板
ID:72649 發(fā)表于 2023-11-30 12:47 來(lái)自觸屏版 | 只看該作者
devcang 發(fā)表于 2023-11-30 10:06
重新定義位變量,賦值時(shí)寫單獨(dú)的語(yǔ)句,
sbit w1 = P1^1;
sbit w2 = P1^2;

這樣賦值,在上面的函數(shù)里面怎么寫?
回復(fù)

使用道具 舉報(bào)

5#
ID:72649 發(fā)表于 2023-11-30 12:50 來(lái)自觸屏版 | 只看該作者
小盼666 發(fā)表于 2023-11-30 11:09
直接在頭文件把位選 映射到P1 P3端口

如果位選三位,斷選有七段,索引又該怎么寫?
回復(fù)

使用道具 舉報(bào)

6#
ID:72649 發(fā)表于 2023-11-30 13:44 來(lái)自觸屏版 | 只看該作者
devcang 發(fā)表于 2023-11-30 10:06
重新定義位變量,賦值時(shí)寫單獨(dú)的語(yǔ)句,
sbit w1 = P1^1;
sbit w2 = P1^2;

哪這樣的映射在函數(shù)里面又該怎么寫
回復(fù)

使用道具 舉報(bào)

7#
ID:1085085 發(fā)表于 2023-11-30 13:48 | 只看該作者
P7做COM口控制,分時(shí)輸出。P6口做SEG口,顯示數(shù)字碼表。實(shí)驗(yàn)箱采樣共陽(yáng)極數(shù)碼管,所以使用共陰極碼表時(shí)要進(jìn)行反相處理。

若樓主還有疑問可以去STCAI官方咨詢
回復(fù)

使用道具 舉報(bào)

8#
ID:213173 發(fā)表于 2023-11-30 17:47 | 只看該作者
/*
t_display[]     //共陰段碼
T_COM[]         //共陰位碼
LED8[8]         //顯示緩沖
display_index;  //顯示位索引
*/
/********************** 顯示掃描函數(shù) ************************/
void DisplayScan(void)
{//使用的是共陽(yáng)數(shù)碼管,段碼、位碼都要取反
        P7 = ~T_COM[7-display_index];//位掃描順序7、6、5、4、3、2、1、0
        P6 = ~t_display[LED8[display_index]];//段碼顯示內(nèi)容示范12-30-58
        if(++display_index >= 8)    display_index = 0;  //顯示位索引8位結(jié)束回0
}

/********************** Timer0 1ms中斷函數(shù) ************************/
void timer0 (void) interrupt 1
{
    DisplayScan();  //1ms掃描顯示一位
    B_1ms = 1;      //1ms標(biāo)志
}

任意端口組合驅(qū)動(dòng)數(shù)碼管.rar (136.94 KB, 下載次數(shù): 5)


回復(fù)

使用道具 舉報(bào)

9#
ID:72649 發(fā)表于 2023-12-4 15:36 來(lái)自觸屏版 | 只看該作者
STC新未來(lái) 發(fā)表于 2023-11-30 13:48
P7做COM口控制,分時(shí)輸出。P6口做SEG口,顯示數(shù)字碼表。實(shí)驗(yàn)箱采樣共陽(yáng)極數(shù)碼管,所以使用共陰極碼表時(shí)要進(jìn) ...

STC官網(wǎng),只知道截圖手冊(cè),根本不能回答實(shí)質(zhì)性問題。
回復(fù)

使用道具 舉報(bào)

10#
ID:72649 發(fā)表于 2023-12-6 09:43 | 只看該作者
wulin 發(fā)表于 2023-11-30 17:47
/*
t_display[]     //共陰段碼
T_COM[]         //共陰位碼

#include <STC8H.H>

sbit LED0=P2^0;
sbit LED1=P2^1;
sbit LED2=P2^2;
sbit LED3=P2^3;
sbit LED4=P2^4;
sbit LED5=P2^5;
sbit LED6=P2^6;
sbit LED7=P2^7;

sbit wei0=P1^4;
sbit wei1=P1^5;
sbit wei2=P3^3;

unsigned char data table[18]={

        0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,
  0x01,0x09,0x11,0xC1,0x63,0x85,0x61,0x71,
        0x00,0x02};           //0000  0000

LED_buf[]={8,8,8};       
unsigned int wnd,Temp1=22,Temp2,Temp3;       
       
void LED_dula(unsigned char dat);
void LED_wela(unsigned char dat);
void Delay_ms(unsigned int t);       
void GPIO_CSH();
void LED_xshi();       
void LED_fuwu();
       
void LED_dula(unsigned char dat)
{
        LED0=dat   &0x01;
        LED1=dat>>1&0x01;
        LED2=dat>>2&0x01;
        LED3=dat>>3&0x01;
        LED4=dat>>4&0x01;
        LED5=dat>>5&0x01;
        LED6=dat>>6&0x01;
        LED7=dat>>7&0x01;
}

void LED_wela(unsigned char dat)
{
        wei0=dat   &0x01;
        wei1=dat>>1&0x01;
        wei2=dat>>2&0x01;
}

void Delay_ms(unsigned int t)
{
        unsigned int i,j;
        for(i=t;i>0;i--)
                for(j=120;j>0;j--);
}

void GPIO_CSH()
{
          P0M0 = 0x00; P0M1 = 0x00;
    P1M0 = 0x00; P1M1 = 0xc0;
    P2M0 = 0x00; P2M1 = 0x00;
    P3M0 = 0x00; P3M1 = 0x00;
    P4M0 = 0x00; P4M1 = 0x00;
    P5M0 = 0x00; P5M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
    P7M0 = 0x00; P7M1 = 0x00;
}

void LED_xshi()
{
          unsigned int i;
        switch (i)
  {
          case0:
                LED_wela(LED_buf[0]);//送位碼       
          LED_dula(0);               //送段碼       
          Delay_ms(1);       
                LED_wela(0x00);                        //位消隱       
                i++;
          break;
               
          case1:
                LED_wela(LED_buf[1]);//送位碼
          LED_dula(1);         //送段碼          
          Delay_ms(1);       
                LED_wela(0x00);                        //位消隱       
                i++;               
          break;
               
          case2:
                LED_wela(LED_buf[2]);//送位碼
          LED_dula(2);               //送段碼       
          Delay_ms(1);       
                LED_wela(0x00);                        //位消隱       
                i=0;
          break;               
               
          default:
          break;
  }

}

void LED_fuwu()
{
unsigned int i;
        switch (wnd)
  {
          case0:
                LED_buf[0]=18;
                LED_buf[1]=Temp1/10;
                LED_buf[2]=Temp1%10;
                for(i=0;i<5000;i++)
    {
                        LED_xshi();
    }
          break;
               
          case1:
                LED_buf[0]=18;
                LED_buf[1]=Temp2/10;
                LED_buf[2]=Temp2%10;
                for(i=0;i<5000;i++)       
    {
                        LED_xshi();
    }               
          break;       

          case2:
                LED_buf[0]=18;
                LED_buf[1]=Temp3/10;
                LED_buf[2]=Temp3%10;
                for(i=0;i<5000;i++)       
    {
                        LED_xshi();
    }               
          break;       
               
          default:
                  break;
  }

}

void main()
{
        unsigned int i;
        GPIO_CSH();
        for(i=0;i<5000;i++)       
    {
                        LED_xshi();
    }       
        while (1)
        {
   LED_fuwu();
        }
}

這個(gè)為什么不能顯示?
回復(fù)

使用道具 舉報(bào)

11#
ID:161164 發(fā)表于 2023-12-7 09:45 | 只看該作者
hjx5548 發(fā)表于 2023-11-30 12:50
如果位選三位,斷選有七段,索引又該怎么寫?

假設(shè):
P11是位1
P32是位2
P17是位3
  1. sbit P11 = P1^1;
  2. sbit P32 = P3^2;
  3. sbit P17 = P1^7;
  4. void DigiOut(uchar dat)
  5. {
  6.         if(dat & 0x01)
  7.         {
  8.                 P11 = 1;
  9.         }
  10.         else
  11.         {
  12.                 P11 = 0;
  13.         }
  14.         if(dat & 0x02)
  15.         {
  16.                 P32 = 1;
  17.         }
  18.         else
  19.         {
  20.                 P32 = 0;
  21.         }
  22.         if(dat & 0x04)
  23.         {
  24.                 P17 = 1;
  25.         }
  26.         else
  27.         {
  28.                 P17 = 0;
  29.         }
  30. }
  31. void DisplayScan(void)
  32. {   
  33.     DigiOut(~T_COM[7-display_index]);
  34.     P6 = ~t_display[LED8[display_index]];
  35.     if(++display_index >= 3)    display_index = 0;  //8位結(jié)束回0
  36. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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