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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1800|回復: 7
打印 上一主題 下一主題
收起左側

51單片機點陣仿真心形失敗

[復制鏈接]
跳轉到指定樓層
樓主
ID:1094287 發表于 2023-10-11 22:57 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
大佬們,這位什么跑不起來啊想顯示一個心形
#include <REGX52.H>
unsigned  int key=0;
unsigned int led[8]={
        0x9F,0x07,0x01,0x80,0x80,0x01,0x07,0x9F};
        
        sbit ADDR0=P1^0;
        sbit ADDR1=P1^1;
        sbit ADDR2=P1^2;
        sbit ADDR3=P1^3;
        sbit ADDR4=P1^4;
        sbit ADDR5=P1^5;
        sbit ADDR6=P1^6;
        sbit ADDR7=P1^7;
        
void main()
{
        ADDR3=1;
        ADDR4=0;
        TMOD=0x01;
        TH0=0xfc;
        TL0=0x66;
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
        }
}
void interruptTimer0() interrupt 1
{
         
        TH0=0xdb;
        P2=0xff;
        TL0=0Xff;
        switch(key)
        {
                case0:ADDR0=0;ADDR1=0;ADDR2=0;key++;P2=led[0];break;
                case1:ADDR0=1;ADDR1=0;ADDR2=0;key++;P2=led[1];break;
                case2:ADDR0=0;ADDR1=1;ADDR2=0;key++;P2=led[2];break;
                case3:ADDR0=0;ADDR1=0;ADDR2=0;key++;P2=led[3];break;
                case4:ADDR0=1;ADDR1=1;ADDR2=0;key++;P2=led[4];break;
                case5:ADDR0=1;ADDR1=0;ADDR2=1;key++;P2=led[5];break;
                case6:ADDR0=0;ADDR1=1;ADDR2=1;key++;P2=led[6];break;
                case7:ADDR0=1;ADDR1=1;ADDR2=1;key=0;P2=led[7];break;
                default: break;
        }
}

mmexport1697051hei18558.png (90.81 KB, 下載次數: 84)

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

使用道具 舉報

8#
ID:1096381 發表于 2023-10-17 21:23 | 只看該作者
  1. #include <REGX52.H>
  2. void Delay(unsigned int xms)
  3. {
  4.                 unsigned char i, j;
  5.                 while(xms--)
  6.                 {
  7.                                 i = 2;
  8.                                 j = 239;
  9.                                 do
  10.                                 {
  11.                                                 while (--j);
  12.                                 } while (--i);
  13.                 }
  14. }

  15. sbit RCK=P3^5;                //RCLK
  16. sbit SCK=P3^6;                //SRCLK
  17. sbit SER=P3^4;                //SER

  18. #define MATTROX_LED_PORT        P0

  19. /**
  20.   * @brief        74HC595寫入一個字節
  21.   * @param  Byte 要寫入的字節
  22.   * @retval  無
  23.   */
  24. void _74HC595_WriteBytr(unsigned char Byte)
  25. {
  26.         unsigned char i;
  27.         for(i=0;i<8;i++)
  28.         {
  29.                 SER=Byte&(0x80>>i);
  30.                 SCK=1;
  31.                 SCK=0;
  32.         }
  33.         RCK=1;
  34.         RCK=0;
  35. }

  36. /**
  37.   * @brief        LED點陣屏顯示一列數據
  38.   * @param        Column 要選擇的列0~7  
  39.   * @param        Data 選擇的列顯示的數據  1亮,0滅
  40.   * @retval  無
  41.   */
  42. void MatrixLED_ShowColmn(unsigned char Column,Data)
  43. {
  44.         _74HC595_WriteBytr(Data);
  45.         MATTROX_LED_PORT=~(0x80>>Column);
  46.         Delay(1);
  47.         MATTROX_LED_PORT=0xFF;
  48. }

  49. void main( )
  50. {
  51.         SCK=0;
  52.         RCK=0;

  53.         while(1)
  54.         {
  55.                 MatrixLED_ShowColmn(0,0x30);
  56.                 MatrixLED_ShowColmn(1,0x48);
  57.                 MatrixLED_ShowColmn(2,0x44);
  58.                 MatrixLED_ShowColmn(3,0x22);
  59.                 MatrixLED_ShowColmn(4,0x44);
  60.                 MatrixLED_ShowColmn(5,0x48);               
  61.                 MatrixLED_ShowColmn(6,0x30);
  62.                
  63.         }       
  64. }
復制代碼
回復

使用道具 舉報

7#
ID:213173 發表于 2023-10-12 18:10 | 只看該作者


  1. #include <REG52.H>
  2. unsigned char key=0;
  3. unsigned char led[8]={
  4. 0x9F,0x07,0x01,0x80,0x80,0x01,0x07,0x9F};
  5.         
  6. sbit ADDR0=P1^0;
  7. sbit ADDR1=P1^1;
  8. sbit ADDR2=P1^2;
  9. sbit ADDR3=P1^3;
  10. sbit ADDR4=P1^4;
  11. sbit ADDR5=P1^5;
  12. sbit ADDR6=P1^6;
  13. sbit ADDR7=P1^7;
  14.         
  15. void main()
  16. {
  17.   TMOD=0x01;
  18.   TH0=0xfc;
  19.   TL0=0x66;
  20.   EA=1;
  21.   ET0=1;
  22.   TR0=1;
  23.   while(1)
  24.   {
  25.   }
  26. }
  27. void interruptTimer0() interrupt 1
  28. {         
  29.         TH0=0xfc;
  30.         TL0=0x66;
  31.         P2=0x00;
  32.         switch(key)
  33.         {
  34.                 case 0: ADDR0=0;ADDR1=0;ADDR2=0;key++;P2=~led[0];break;
  35.                 case 1: ADDR0=1;ADDR1=0;ADDR2=0;key++;P2=~led[1];break;
  36.                 case 2: ADDR0=0;ADDR1=1;ADDR2=0;key++;P2=~led[2];break;
  37.                 case 3: ADDR0=1;ADDR1=1;ADDR2=0;key++;P2=~led[3];break;
  38.                 case 4: ADDR0=0;ADDR1=0;ADDR2=1;key++;P2=~led[4];break;
  39.                 case 5: ADDR0=1;ADDR1=0;ADDR2=1;key++;P2=~led[5];break;
  40.                 case 6: ADDR0=0;ADDR1=1;ADDR2=1;key++;P2=~led[6];break;
  41.                 case 7: ADDR0=1;ADDR1=1;ADDR2=1;key=0;P2=~led[7];break;
  42.                 default: break;
  43.         }
  44. }
復制代碼




回復

使用道具 舉報

6#
ID:161164 發表于 2023-10-12 17:41 | 只看該作者
小臭臭廢 發表于 2023-10-12 16:59
p2是準雙向口也加上拉電阻嗎

現實中的準雙向口輸出高電平只有2百多uA
仿真的加一下也無妨
回復

使用道具 舉報

5#
ID:1094287 發表于 2023-10-12 16:59 來自觸屏版 | 只看該作者
lkc8210 發表于 2023-10-12 14:44
P2的消影是P2=0x00;
P2輸出高電平要加上拉電阻

p2是準雙向口也加上拉電阻嗎
回復

使用道具 舉報

地板
ID:161164 發表于 2023-10-12 14:44 | 只看該作者
P2的消影是P2=0x00;
P2輸出高電平要加上拉電阻
回復

使用道具 舉報

板凳
ID:123289 發表于 2023-10-12 09:25 | 只看該作者
細心一點。CASE的地址8種組合,再核一下。
回復

使用道具 舉報

沙發
ID:277550 發表于 2023-10-12 09:14 | 只看該作者
問題1,#include <REG52.H>

問題2,不要在中斷使用較占時的操作

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表