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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4207|回復: 16
收起左側

用C51單片機怎么做流水燈

  [復制鏈接]
ID:237658 發表于 2017-10-7 16:52 | 顯示全部樓層 |閱讀模式
用C51單片機怎么做流水燈
回復

使用道具 舉報

ID:216625 發表于 2017-10-7 18:53 | 顯示全部樓層
借花獻佛
/**************************************************************************************
*                              LED流水燈實驗                                                                                                  *
實現現象:下載程序后LED呈現流水燈效果進行左移右移滾動
注意事項:無
***************************************************************************************/

#include "reg52.h"                         //此文件中定義了單片機的一些特殊功能寄存器
#include<intrins.h>                //因為要用到左右移函數,所以加入這個頭文件

typedef unsigned int u16;          //對數據類型進行聲明定義
typedef unsigned char u8;

#define led P0           //將P0口定義為led 后面就可以使用led代替P0口

/*******************************************************************************
* 函 數 名         : delay
* 函數功能                   : 延時函數,i=1時,大約延時10us
*******************************************************************************/
void delay(u16 i)
{
        while(i--);
}

/*******************************************************************************
* 函 數 名       : main
* 函數功能                 : 主函數
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{
        u8 i;
        led=0x01;
        delay(50000); //大約延時450ms
        while(1)
        {
/*                for(i=0;i<8;i++)
                {
                        P0=(0x01<<i);         //將1右移i位,然后將結果賦值到P0口
                        delay(50000); //大約延時450ms
                }
*/

                for(i=0;i<7;i++)         //將led左移一位
                {
                        led=_crol_(led,1);
                        delay(50000); //大約延時450ms
                }
                for(i=0;i<7;i++)        //將led右移一位
                {
                        led=_cror_(led,1);
                        delay(50000); //大約延時450ms
                }
        }
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:237676 發表于 2017-10-7 19:22 | 顯示全部樓層
去百度文庫找教程,或者看郭天祥的《新概念51單片機》入門,用proteus仿真或者淘寶買一塊片子。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:217803 發表于 2017-10-7 20:07 | 顯示全部樓層
網上一搜一大堆例程
回復

使用道具 舉報

ID:237459 發表于 2017-10-7 20:36 | 顯示全部樓層
很簡單,STC-ISP下載軟件同時也提供了很多資料,打開軟件,跳到     范例程序---》選擇相應的單片機
如果你是新手,不知道軟件在哪里下,可以打開這個鏈接www點gxwmcu點com    (這是STC官網)
然后跳到    STC-ISP下載編程燒錄軟件,下載軟件就可以了
回復

使用道具 舉報

ID:237714 發表于 2017-10-7 22:03 | 顯示全部樓層
是用單片機嘛?就用循環就可以了
回復

使用道具 舉報

ID:111634 發表于 2017-10-7 22:20 | 顯示全部樓層
網上一大堆,自己去搜。
回復

使用道具 舉報

ID:237722 發表于 2017-10-7 22:36 | 顯示全部樓層
/************************************
*實驗名:流水燈
*實驗效果:流水燈(循環移位)
*************************************/
#include<reg52.h>
#include<intrins.h>
#include"delay.h"
void main()
{
        P1 = 0xfe;//1111 1110
        while(1)
        {
                delay(500);
                P1 =_crol_(P1,1);/*將P1循環左移1位*/
        }
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:237722 發表于 2017-10-7 22:36 | 顯示全部樓層
www點yahboom點com/build.html?id=111&cid=33
請看這里

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:237414 發表于 2017-10-7 23:39 | 顯示全部樓層
流水燈

流水燈.rar

13.19 KB, 下載次數: 3

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:237747 發表于 2017-10-8 09:21 | 顯示全部樓層
* 實 驗 名                 : 流水燈實驗
* 實驗說明       : 延時實現LED流水燈效果P2口八個燈作跑馬燈。采用了寄存器存中間數
* 連接方式       : 見接線圖
* 注    意                 :
*******************************************************************************/

//--包含你要使用的頭文件
#include <reg52.h>          //此文件中定義了51的一些特殊功能寄存器
#include <intrins.h>

//--聲明全局函數--//
void Delay10ms(unsigned int c);   //延時10ms            

/*******************************************************************************
* 函 數 名         : main
* 函數功能                   : 主函數
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/

main()
{
        unsigned char LED;

        LED = ~0xfe;          //0xfe = 1111 1110

        while (1)
        {
             P0 = LED;
                 Delay10ms(50);
                 LED = LED << 1;    //循環右移1位,點亮下一個LED "<<"為左移位
                  if (P0 == 0x00)        //當它全滅的時候,重新賦值
                 {
                         LED = 0xfe;          // 0xfe = 1111 1110
                 }
                                     
        }
}

/*******************************************************************************
* 函 數 名         : Delay10ms
* 函數功能                   : 延時函數,延時10ms
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/

void Delay10ms(unsigned int c)   //誤差 0us
{
    unsigned char a, b;

        //--c已經在傳遞過來的時候已經賦值了,所以在for語句第一句就不用賦值了--//
    for (;c>0;c--)
        {
                for (b=38;b>0;b--)
                {
                        for (a=130;a>0;a--);
                }
           
        }      
}



回復

使用道具 舉報

ID:237808 發表于 2017-10-8 15:18 | 顯示全部樓層
百度一下,你就知道
回復

使用道具 舉報

ID:237826 發表于 2017-10-8 16:23 | 顯示全部樓層
/**************************************************************************************
*                              LED閃爍的簡單試驗                                                                                                  *
*                延時實現p2口LED流水燈效果 (用循環移位指令)                                       *
*        連接方法: JP11(P2)和JP1(LED燈) 用8PIN排線連接起來                                                          *
*                                                                                                                                                                          *
***************************************************************************************/
#include <reg51.h>            //此文件中定義了51的一些特殊功能寄存器
#include <intrins.h>

void delayms(unsigned char ms)       
// 延時子程序
{                                               
        unsigned char i;
        while(ms--)
        {
                for(i = 0; i < 120; i++);
        }
}


main()
{
        unsigned char LED;
        LED = 0xfe;          //0xfe = 1111 1110
        while(1)
        {
             P2 = LED;
                 delayms(250);
                 LED = LED << 1;    //循環右移1位,點亮下一個LED "<<"為左移位
                  if(P2 == 0x00 )         {LED = 0xfe;  } // 0xfe = 1111 1110
                    
                 
        }
}





回復

使用道具 舉報

ID:232501 發表于 2017-10-8 19:13 | 顯示全部樓層
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
uint a,b,c;
void main()
{               
                P1=0xff;                                          //左到右
                P1=0xfe;
                for(a=0;a<20000;a++);
                b=7;
                while(b--)
                {       
                        P1=_cror_(P1,1);
                        for(a=0;a<20000;a++);
                }
                P1=0xff;
                P3=0xfe;
                for(a=0;a<20000;a++);
                b=7;
                while(b--)
                {
                        P3=_cror_(P3,1);
                        for(a=0;a<20000;a++);
                }
                P3=0xff;
                P2=0xfe;
                for(a=0;a<20000;a++);
                b=7;
                while(b--)
                {
                        P2=_cror_(P2,1);
                        for(a=0;a<20000;a++);
                }
                P2=0xff;
                P0=0x7f;
                for(a=0;a<20000;a++);
                b=7;
                while(b--)
                {
                        P0=_cror_(P0,1);
                        for(a=0;a<20000;a++);
                }                                                              //
                         //
            P0=0xff;                                         //全亮全滅
                P2=0xff;
                P3=0xff;
                P1=0xff;
                for(a=0;a<20000;a++);
                P0=0x00;
                for(a=0;a<20000;a++);
                P2=0x00;
                for(a=0;a<20000;a++);
                P3=0x00;
                for(a=0;a<20000;a++);
                P1=0x00;
                for(a=0;a<20000;a++);               
                                               
            P0=0xfe;                                    //從右向左追趕
                for(a=0;a<10000;a++);
                b=7;
                while(b--)
                {
                        P0=_crol_(P0,1);
                        for(a=0;a<10000;a++);
                }
                P0=0xff;
                P2=0x7f;
                for(a=0;a<10000;a++);
                b=7;
                while(b--)
                {
                        P2=_crol_(P2,1);
                        for(a=0;a<10000;a++);
                }
                P2=0xff;
                P3=0x7f;
                for(a=0;a<10000;a++);
                b=7;
                while(b--)
                {
                        P3=_crol_(P3,1);
                        for(a=0;a<10000;a++);
                }
                P3=0xff;
                P1=0x7f;
                for(a=0;a<10000;a++);
                b=7;
                while(b--)
                {
                        P1=_crol_(P1,1);
                        for(a=0;a<10000;a++);
                }                       
                P0=0xfe;                                         //上收放,下收放
                P1=0xfe;
                b=7;               
                while(b--)
                {
                        P0=_crol_(P0,1);
                        P1=_cror_(P1,1);
                        for(a=0;a<10000;a++);
                }
                P0=0xff;
                P1=0xff;
                P2=0x7f;
                P3=0xfe;
                b=7;               
                while(b--)
                {
                        P2=_cror_(P2,1);
                        P3=_crol_(P3,1);
                        for(a=0;a<10000;a++);
                }
                P2=0xff;
                P3=0xff;
                P2=0xfe;
                P3=0x7f;
                b=7;               
                while(b--)
                {
                        P2=_crol_(P2,1);
                        P3=_cror_(P3,1);
                        for(a=0;a<10000;a++);
                }                                          //
                P2=0xff;
                P3=0xff;
                P0=0x7f;
                P1=0x7f;
                b=7;               
                while(b--)
                {
                        P0=_crol_(P0,1);
                        P1=_cror_(P1,1);
                        for(a=0;a<10000;a++);
                }
                P0=0xff;
                P1=0xff;                                                    //
}
回復

使用道具 舉報

ID:237867 發表于 2017-10-8 20:08 | 顯示全部樓層
簡單的程序設計,網上有教程
回復

使用道具 舉報

ID:478073 發表于 2019-2-25 03:37 | 顯示全部樓層
壇子里一大堆例程
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品99 | 日日夜夜天天综合 | 欧美群妇大交群中文字幕 | 国产一区二区三区高清 | 激情五月激情综合网 | 国产精品国产自产拍高清 | 欧美jizzhd精品欧美巨大免费 | av永久 | 亚洲区一区二区 | 久久久99精品免费观看 | 91色啪| 欧美一级片在线观看 | 国产精品久久久久久网站 | 免费视频二区 | 手机av在线 | 国产精品日韩欧美一区二区三区 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 免费观看成人性生生活片 | 成年视频在线观看 | 国产一区二区在线免费 | 欧美一级片在线看 | 男女羞羞网站 | 97精品超碰一区二区三区 | 午夜私人影院在线观看 | 久草免费在线视频 | 久久久91| 国产成人a亚洲精品 | 国产在线精品免费 | 成人免费在线视频 | 国产一区二区三区四区 | 国产精品日韩在线观看一区二区 | 免费一级黄色录像 | 91精品国产综合久久婷婷香蕉 | 国产欧美精品一区二区色综合 | 欧美国产一区二区三区 | 亚洲日本视频 | 国产综合一区二区 | 中文字幕人成乱码在线观看 | 九九综合九九 | 久久久久久久国产 | 一级毛片视频 |