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

標題: 單片機按鍵控制的流水燈Proteus仿真代碼等資料 [打印本頁]

作者: yiyi1230    時間: 2021-11-10 10:13
標題: 單片機按鍵控制的流水燈Proteus仿真代碼等資料
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


    熟練掌握Keil和Proteus軟件的C51設計與仿真操作
    熟練掌握并行口P口的編程
    熟悉C51編程的變量、存儲等概念及使用方法
    初步掌握延時程序的原理,初步掌握P口的輸入檢測編程

    實驗要求

    電路圖設計:
        可以用P1或更多的P口分別連接八個LED燈進行組合
        可以用四個P口連的LED燈構成一個4×8的矩陣
        可以用不同數量的LED等構成一個特定圖案
    程序要求:
        要盡量考慮for、while、switch、函數等用途,鞏固C語言設計能力
        各種效果可以考慮做成函數,通過按鍵進行不同函數的調用
    效果提示:
        常規流水燈效果
        多種流水燈效果切換
        多種流水燈以某種規律切換

    實驗實現的功能說明

P1、P2口分別接在第一、第二排LED燈上,利用開關SW1和SW2分別控制LED燈的不同運作,當開關SW1按下時,第一排LED燈從左到右按順序點亮,再由右到左順序點亮;斷開開關SW1,閉合開關SW2,第二排LED燈兩邊向中間依次點亮,形成匯中的效果。

    實驗實現的原理及仿真電路設計

實驗原理:本次實驗使用十六個四種顏色的LED燈排成兩排,用if語句選擇開關SW1和SW2,按下SW1時,利用for循環和左移i位,右移8-i為相或實現LED燈從左到右依次點亮的流水燈效果,同理再得到由右向左的流水燈效果,左右依次循環。按下SW2時,設定最左和最右的初始值,用for循環循環四次,實現流水燈匯中。

實驗原理電路圖:





聲明開關按鍵:
sbit SW1=P3^0;
sbit SW2=P3^1;

延時程序:

void delay(unsigned int m)
{
              while(m--);
}



當開關SW1按下時,流水燈的工作:

                            if(SW1==0)
                            {            
t=0x01;

                                          P1=t;
                                          for(i=0;i<8;i++)
                                          {
                                                        a=t<<i;
                                                        b=t>>(8-i);
                                                        P1=a|b;
                                                        delay(20000);
                                          }

                                          for(i=1;i<8;i++)

                                          {

                                                        a=t>>i;
                                                        b=t<<(8-i);
                                                        P1=a|b;
                                                        delay(20000);
                                          }

                               }



              開關SW2按下時,另一流水燈的運作:

                            if(SW2==0)
                            {
                                                        p=0x01;
                                                        q=0x80;
                                                        for(j=0;j<4;j++)
                                                        {

                                                                      P2=p+q;
                                                                      delay(20000);
                                                                      p=p<<1;
                                                                      q=q>>1;                           
                                                        }
                            }
實驗過程及實驗情況

編寫SW1代碼時,第二個從右到左的for循環的初始值i設置成0,以致流水燈從左運動到最右端后,又多亮了一個最左端的燈,達不到左右循環流水的效果。后將其i設置成1,實現正常的左右流水循環的效果。制作電路圖時,LED方向和代碼沒有結合好,導致一排LED燈接地,一排接高電平,調整好后兩排LED燈都接地。

實驗小結
本次實驗要求初步掌握延時程序的原理,初步掌握P口的輸入檢測編程。掌握Keil和Proteus軟件的C51設計與仿真操作,熟練掌握并行口P口的編程,熟悉C51編程的變量、存儲等概念及使用方法。但是實驗過程中仍有不熟練的地方,需要不斷改進,且能做出更好的作品。

Proteus7.5版本的仿真與程序下載: 18034520204 何穎(2).zip (175.74 KB, 下載次數: 34)





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1