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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Tm1804 程序無法控制彩燈求教

[復制鏈接]
跳轉到指定樓層
樓主

這個是我的電路圖,不知道有沒問題,如有錯誤請點出謝謝
我用網上的TM1804運用程序來測試電路,但是發現IO口的輸入并不能控制彩燈變換顏色,程序大概意識是每種顏色漸變暗亮的過程;哪出問題實在琢磨不出希望有知道的大佬能給指點下。先謝謝大家來看帖了 Tm1804.rar (719 Bytes, 下載次數: 16)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:171584 發表于 2017-11-11 22:01 | 只看該作者
為了大家觀看方便我把程序再發一次
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int
#define nop() _nop_()
#define Red 1
#define Green 2
#define Blue 3
#define White 4
#define High 1
#define Low 0
sbit DIO=P3^4;
bdata uchar a;
sbit a7=a^7;
sbit LED=P3^5;
uchar show[3],color=1,temp=0xff;
void delay_ms(int z)
{
int x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void write(uchar date)
{
uchar i;
for(i=0;i<8;i++)
{
      if(date&0x80)
              {
                  DIO=1;
                  nop();   nop();        nop();                nop();
                  nop();   nop();        nop();                nop();
                  nop();   nop();        nop();               
                 
                  DIO=0;
                 
                  
                  }
          else
              {
                  DIO=1;
                  nop();nop();nop();nop();
                  nop();
                  
                  DIO=0;
       
                  }
        date<<=1;
}
}
void display()
{
     uchar i,j;
             for(j=0;j<1;j++)
                 for(i=0;i<3;i++)
                    write(show[i]);
}
void load()
{
        uchar i;
                for(i=0;i<1;i++)
                {
                        if(color==Red)
                        {
                        show[i*3+0]=temp;
                        show[i*3+1]=0x00;
                        show[i*3+2]=0x00;
                        }
                        if(color==Green)
                        {
                        show[i*3+0]=0x00;
                        show[i*3+1]=temp;
                        show[i*3+2]=0x00;
                        }
                        if(color==Blue)
                        {
                        show[i*3+0]=0x00;
                        show[i*3+1]=0x00;
                        show[i*3+2]=temp;
                        }
                        if(color==White)
                        {
                        show[i*3+0]=temp;
                        show[i*3+1]=temp;
                        show[i*3+2]=temp;
                        }

                }
}
void show_3()
{
    for(color=1;color<5;color++)
        {
            for(temp=0;temp<255;temp++)
                {
                     load();
                         display();
                         delay_ms(50);
                }
                for(temp=255;temp>0;temp--)
                {
                    load();
                        display();
                        delay_ms(50);
                }
        }
}
void show_1()
{
     uchar i;
         for(i=0;i<2;i++)
         {
         write(0xff);
         write(0x00);
         write(0xaa);

     write(0xff);
         write(0x00);
         write(0xaa);

         write(0xff);
         write(0x00);
         write(0xaa);

         write(0xff);
         write(0xff);
         write(0xff);
         }
}
void main()
{
    uchar i,j;
        for(j=0;j<4;j++)
           for(i=0;i<3;i++)
        write(0xff);
        delay_ms(50);
        while(1)
        {
         show_1();
         LED=!LED;
        }  
}
回復

使用道具 舉報

板凳
ID:123289 發表于 2017-11-12 00:48 | 只看該作者
關鍵是你要讀通原理,而后再做。如果讀不通,即使做成功了,你又得到什么呢?
回復

使用道具 舉報

地板
ID:171584 發表于 2017-11-12 11:38 | 只看該作者
yzwzfyz 發表于 2017-11-12 00:48
關鍵是你要讀通原理,而后再做。如果讀不通,即使做成功了,你又得到什么呢?

原理我知道,就是通過控制占空比來輸出不同顏色的光強度,我用keil看輸出波形占空比也是發生變化的
回復

使用道具 舉報

5#
ID:155507 發表于 2017-11-12 15:41 | 只看該作者
這個程序 用MCU 型號:STC15F104E, 時鐘是33MHZ(內部時鐘) 的,如果把內部時鐘設置為12MHZ或者其他頻率,整個程序就不工作了!

tm1804驅動時波形

0J4806.1200.png (9.92 KB, 下載次數: 67)

0J4806.1200.png
回復

使用道具 舉報

6#
ID:171584 發表于 2017-11-12 22:20 | 只看該作者
angmall 發表于 2017-11-12 15:41
這個程序 用MCU 型號:STC15F104E, 時鐘是33MHZ(內部時鐘) 的,如果把內部時鐘設置為12MHZ或者其他頻率,整 ...

那要怎么修改程序,能否給講解下,謝謝
回復

使用道具 舉報

7#
ID:155507 發表于 2017-11-12 23:20 | 只看該作者
你用那個型號的單片機? 內部時鐘是多少?
這才理解你的問題,應該怎么修改程序
回復

使用道具 舉報

8#
ID:171584 發表于 2017-11-13 11:00 | 只看該作者
angmall 發表于 2017-11-12 23:20
你用那個型號的單片機? 內部時鐘是多少?
這才理解你的問題,應該怎么修改程序

51的12M
回復

使用道具 舉報

9#
ID:171584 發表于 2017-11-13 18:39 | 只看該作者
angmall 發表于 2017-11-12 15:41
這個程序 用MCU 型號:STC15F104E, 時鐘是33MHZ(內部時鐘) 的,如果把內部時鐘設置為12MHZ或者其他頻率,整 ...

33Mhz一個nop就0.36us了那程序里那么多個nop函數不也超了嗎,這個波形計算怎么看的
回復

使用道具 舉報

10#
ID:155507 發表于 2017-11-13 19:59 | 只看該作者
33Mhz一個nop就是0.0303us

你的程序有錯
回復

使用道具 舉報

11#
ID:171584 發表于 2017-11-13 22:05 | 只看該作者
angmall 發表于 2017-11-13 19:59
33Mhz一個nop就是0.0303us

你的程序有錯

這怎么算的能教下嗎?
還有個問題就是為什么我看網上的程序TM1804都是只寫高電平的時間不寫低電平的時間
if(date&0x80)
              {
                  DIO=1;
                  nop();   nop();        nop();                nop();
                  nop();   nop();        nop();                nop();
                  nop();   nop();        nop();               
                 
                  DIO=0;
                 
                  
                  }
就想這個一樣,按工作波形圖不應該是DIO=0;后面也加nop()達到1.25us嗎?
回復

使用道具 舉報

12#
ID:621923 發表于 2019-10-10 20:50 | 只看該作者
sbit DIO=P3^4;
sbit a7=a^7;
sbit LED=P3^5;   TM1804信號就一個口,這個定義的三個作用是什么
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品视频久久久 | 亚洲国产精品va在线看黑人 | 黄色一级免费 | 欧美日韩久久久 | 国产aⅴ爽av久久久久久久 | 欧美日韩不卡合集视频 | 免费精品 | 日韩在线视频一区 | 亚洲欧洲一区二区 | 中文字幕二区 | a级片在线观看 | 精品国产一区二区三区久久久蜜月 | 国产成人综合一区二区三区 | 亚洲va欧美va天堂v国产综合 | 中文字幕亚洲视频 | 国际精品鲁一鲁一区二区小说 | 四虎永久免费黄色影片 | 久久久久久久国产 | 国产成人精品久久二区二区 | 久久国产精品91 | 欧美精品久久久 | 亚洲一区综合 | 99re视频在线观看 | 日韩福利在线观看 | 国产精品一卡 | 中文字幕第九页 | 中文二区 | 欧美亚洲视频 | 黄色av大片| 99久久精品免费看国产高清 | 久久伊人青青草 | 午夜影院网站 | 欧美一区二区三区免费在线观看 | 国产欧美一级二级三级在线视频 | 成人福利在线视频 | 久草中文在线 | 欧美精品乱码99久久影院 | 一级做a爰片性色毛片 | 国产精品视频不卡 | 久久久青草婷婷精品综合日韩 | 国产精品日韩欧美一区二区三区 |