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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC15F104W單片機(jī)TM1803彩燈程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:136485 發(fā)表于 2021-7-3 12:00 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
/******************************************************************************/
STC15F104W芯片
內(nèi)部晶振18.432M
/*******************************************************************************/

#include <STC15F100W.H>                            //MCU頭文件
#include "intrins.h"                            //包含nop指令頭文件

#define nop  _nop_();   
                   //宏定義
/********************************定義控制端口***********************************/
sbit DO=P3^4;                                    //定義信號輸出DO
sbit led1=P3^1;
sbit led2=P3^2;
sbit led3=P3^3;
/**********************************定義變量*************************************/
unsigned int IC=6;                          //控制TM1804個數(shù)
unsigned int LED_PX;                        //像素點(diǎn)數(shù)
unsigned char PWM=255;                      //TM1804灰度數(shù)據(jù)
unsigned char Rda,Gda,Bda;                  //R、G、B灰度數(shù)據(jù)
unsigned char bdata LED_data;               //可位操作的數(shù)據(jù)發(fā)送暫存變量聲明
sbit bit0=LED_data^0;                            //被發(fā)送的數(shù)據(jù)各位定義
sbit bit1=LED_data^1;
sbit bit2=LED_data^2;
sbit bit3=LED_data^3;
sbit bit4=LED_data^4;
sbit bit5=LED_data^5;
sbit bit6=LED_data^6;
sbit bit7=LED_data^7;
bit flag=0;                                 //定義一個標(biāo)志位

/**********************************延時函數(shù)*************************************/
void delay(unsigned int n)                  //n=1,延時500us
{
unsigned int i;
while(n--)
for(i=0;i<860;i++);
}

/********************發(fā)送0碼函數(shù),高電平400ns,周期1.25us************************/
void send_data_0()   
{
DO=1;
nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;         
DO=0;
nop;nop;nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;nop;nop;
}

/*******************發(fā)送1碼函數(shù),高電平800ns,周期1.25us*************************/
void send_data_1()   
{
DO=1;
nop;nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;
DO=0;   
}

/***********************發(fā)送1個字節(jié)數(shù)據(jù),高位先發(fā)*******************************/
void send_data(unsigned char DATA)               
{
LED_data=DATA;                          
if(bit7)        send_data_1();        else send_data_0();
if(bit6)        send_data_1();        else send_data_0();
if(bit5)        send_data_1();        else send_data_0();
if(bit4)        send_data_1();        else send_data_0();
if(bit3)        send_data_1();        else send_data_0();
if(bit2)        send_data_1();        else send_data_0();
if(bit1)        send_data_1();        else send_data_0();
if(bit0)        send_data_1();        else send_data_0();
}
/******************************發(fā)送1幀數(shù)據(jù)*************************************/
void send_px()
{
unsigned int i;
for(i=0;i<LED_PX;i++)
  {
   send_data(Rda);             //發(fā)送R灰度數(shù)據(jù)
   send_data(Gda);             //發(fā)送G灰度數(shù)據(jù)
   send_data(Bda);             //發(fā)送B灰度數(shù)據(jù)
  }
}
/*===============================主函數(shù)=======================================*/
void main()
{
unsigned char i;
P3M0=0xFF;
P3M1=0x00;
led1=led2=led3=0;
LED_PX=IC;                          //像素點(diǎn)數(shù)等于TM1804個數(shù)
Rda=Gda=Bda=0;                      //R、G、B灰度數(shù)據(jù)復(fù)位清零
while(1)
  {
   for(i=0;i<PWM;i++)          //紅色漸亮  
    {
     Rda=i;              //灰度計(jì)算
     send_px();          //發(fā)送灰度數(shù)據(jù)
     delay(50);          //復(fù)位延時
    }
    flag=1;                     //標(biāo)志位置位
    while(flag)                 //標(biāo)志位置位后循環(huán)函數(shù)
    {
     for(i=0;i<PWM;i++)  //紅色漸滅,綠色漸亮
      {
       Gda=i;
       Rda=PWM-i;  //灰度計(jì)算
       send_px();  //發(fā)送灰度數(shù)據(jù)
       delay(50);  //復(fù)位延時
      }
     for(i=0;i<PWM;i++)  //綠色漸滅,藍(lán)色漸亮
      {
       Bda=i;           
       Gda=PWM-i;  //灰度計(jì)算
       send_px();  //發(fā)送灰度數(shù)據(jù)
       delay(50);  //復(fù)位延時
      }
     for(i=0;i<PWM;i++)  //藍(lán)色漸滅,紅色漸亮
      {
       Rda=i;
       Bda=PWM-i;  //灰度計(jì)算
       send_px();  //發(fā)送灰度數(shù)據(jù)
       delay(50);  //復(fù)位延時
      }
    }
  }
}
/*================================結(jié)束==========================================*/

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久三区 | 最新中文字幕在线 | 国精品一区二区 | 日韩小视频在线 | 亚洲欧美视频 | av激情在线| 午夜成人免费视频 | 国色天香综合网 | 国产精品视频不卡 | 国产欧美久久精品 | 欧美久久视频 | 在线观看av不卡 | 全免一级毛片 | 涩色视频在线观看 | 国产精品爱久久久久久久 | 亚洲精品一二区 | 一区二区免费在线视频 | 免费毛片网 | 成人福利 | 成人福利视频网站 | 欧美午夜影院 | 久久久成人网 | 91综合网| 国产精品一区二区不卡 | 久久精品国产一区老色匹 | 精品视频在线免费观看 | 亚洲精品电影在线观看 | 91免费在线视频 | 国产一区二区三区网站 | 视频一区二区国产 | 在线中文视频 | 久久久久久久av | 黄色在线免费观看视频 | 国产91久久久久蜜臀青青天草二 | 精品一区二区在线观看 | 国产精品精品视频一区二区三区 | 天天干天天谢 | 国产综合视频 | 中文一区| 久久久久久免费精品一区二区三区 | 国产精品一区二区三 |