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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

基于單片機(jī)與PWM的呼吸燈設(shè)計(jì)報(bào)告下載

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
基于單片機(jī)與PWM的呼吸燈設(shè)計(jì)
本設(shè)計(jì)是基于單片機(jī)的原理與接口設(shè)計(jì),采用單片機(jī)I/O口,加以C語(yǔ)言編程實(shí)現(xiàn)LED漸亮再漸暗類似人的呼吸一樣的效果。
關(guān)  鍵  詞
AT89C51,PWM(脈寬調(diào)制)

一、設(shè)計(jì)要求:
呼吸燈就是讓LED燈的閃爍像呼吸一樣,時(shí)呼時(shí)吸,時(shí)亮?xí)r暗,利用LED的余輝和人眼的暫留效應(yīng),看上去和人的呼吸一樣。
二、設(shè)計(jì)原理:
用C語(yǔ)言編程實(shí)現(xiàn)PWM(脈寬調(diào)制)輸出驅(qū)動(dòng)LED,逐漸增加PWM的占空比從而實(shí)現(xiàn)LED模擬呼吸的過(guò)程,即漸亮再漸暗再漸亮再漸暗……如此往復(fù),再利用LED的余輝和人眼的暫留效應(yīng),看上去就和人的呼吸一樣。
三、整體方案設(shè)計(jì)
8個(gè)LED按照順序逐個(gè)實(shí)現(xiàn)呼吸效果。加以其他閃爍花樣增加更炫彩的效果。
四、實(shí)驗(yàn)元件及器材
(1)元件: LED(發(fā)光二極管)                            8個(gè)
                               1KΩ電阻                                                                                   8個(gè)
                               1nf電容                                                                                   2個(gè)
                               晶振                                                                                                 1個(gè)
                               AT89C51芯片                                                       1個(gè)
(2)器件:Atmega128開(kāi)發(fā)板                                          1塊
                                                        計(jì)算機(jī)                                                                                   1臺(tái)
  • 硬件原理
  • 主電路:8個(gè)LED分別連接AT89C51的P1口,使用共陽(yáng)方式,并加以1kΩ的電阻接入電源。
(2)時(shí)鐘電路:外部時(shí)鐘方式是使用外部振蕩脈沖信號(hào)。
  • 軟件設(shè)計(jì)及系統(tǒng)仿真調(diào)試
  • 調(diào)試方法:利用keil軟件進(jìn)行C語(yǔ)言程序編寫(xiě)及調(diào)試,利用Proteus仿真軟件進(jìn)行仿真實(shí)驗(yàn)。
  • 調(diào)試過(guò)程所遇問(wèn)題:

1、由于呼吸燈的程序在仿真軟件Proteus中實(shí)現(xiàn)的效果不明顯,很難辨別LED是否具有呼吸的效果。所以邊用keil調(diào)試程序邊用STC燒寫(xiě)軟件直接寫(xiě)入開(kāi)發(fā)板,從而很明顯看出LED是否具有呼吸效果;

2、程序運(yùn)行時(shí),出現(xiàn)LED閃爍過(guò)快,由于人眼的暫留效應(yīng)看似LED全部一直亮著,經(jīng)調(diào)試,修改延時(shí)時(shí)間,實(shí)現(xiàn)呼吸效果。
七、結(jié)論與心得
在本次設(shè)計(jì)中,C語(yǔ)言程序在開(kāi)發(fā)板中得以實(shí)現(xiàn)應(yīng)有的功能。在調(diào)試過(guò)程中,發(fā)現(xiàn)很多問(wèn)題都是由于不細(xì)心導(dǎo)致的,因此在以后的設(shè)計(jì)方案中,要集中精力,莫粗心大意。再者就是知識(shí)量的不足,雖然是一個(gè)小小的設(shè)計(jì)方案,但是查閱了很多相關(guān)資料,在日后,要多充足自己的知識(shí)量,保證C程序的編寫(xiě)質(zhì)量。
參考文獻(xiàn)
[1]郭天祥,《新概念51單片機(jī)C語(yǔ)言教程》,電子工業(yè)出版社,2009年1月
[2]徐愛(ài)鈞,《單片機(jī)高級(jí)語(yǔ)言C51應(yīng)用程序設(shè)計(jì)》,電子工業(yè)出版社,2000年5月
附件A:呼吸燈設(shè)計(jì)電路圖


附件B:C語(yǔ)言程序清單
  1. #include<reg51.h>
  2. /*-----------定義單片機(jī)引腳-----*/
  3. sbit LED0=P1^0;
  4. sbit LED1=P1^1;
  5. sbit LED2=P1^2;
  6. sbit LED3=P1^3;
  7. sbit LED4=P1^4;
  8. sbit LED5=P1^5;
  9. sbit LED6=P1^6;
  10. sbit LED7=P1^7;

  11. void Delay(unsigned int t); //函數(shù)聲明
  12. unsigned int z,y;
  13. void main (void)//主函數(shù)
  14. {
  15.               unsigned int CYCLE=500,PWM_LOW=0;//定義周期并賦值
  16.               while (1)         //主循環(huán)
  17.               {

  18. /*--------整排LED燈呼吸---------*/
  19.                             P1=0x00;
  20.                             Delay(500);                                                                                                                 //加延時(shí),可以看到熄滅的過(guò)程(下面程序同理)
  21.                             for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)                 //PWM_LOW表示低
  22.                                           {
  23.                                                         P1=0x00;                                                               
  24.                                                         Delay(PWM_LOW);
  25.                                                         P1=0xff;
  26.                                                         Delay(CYCLE-PWM_LOW);
  27.                                           }
  28.                             P1=0xff;                                                                                                                                          
  29.                             for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)               //與逐漸變亮相反的過(guò)程
  30.                                           {
  31.                                                            P1=0x00;                                                                                                  //點(diǎn)亮LED
  32.                                                            Delay(PWM_LOW);
  33.                                                            P1=0xff;                                                                                                  //熄滅LED
  34.                                                           Delay(CYCLE-PWM_LOW);                                                        //主循環(huán)中添加其他需要一直工作的程序,延時(shí)長(zhǎng)度,600次循環(huán)中從599減至1
  35.                                           }


  36. /*--------第一顆LED燈呼吸---------*/
  37.                             LED0=1;
  38.                             Delay(500);        
  39.                             for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)               
  40.                                           {
  41.                                                         LED0=0;                                                                                          
  42.                                                         Delay(PWM_LOW);
  43.                                                         LED0=1;                                                                                          
  44.                                                         Delay(CYCLE-PWM_LOW);
  45.                                           }
  46.                             LED0=0;                                                                                                                                          
  47.                             for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)   
  48.                                           {
  49.                                                            LED0=0;
  50.                                                            Delay(PWM_LOW);
  51.                                                            LED0=1;
  52.                                                           Delay(CYCLE-PWM_LOW);                                            
  53.                                           }


  54. /*--------第二顆LED燈呼吸----------*/
  55.                             LED1=1;
  56.                             Delay(500);      
  57.                             for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)   
  58.                                           {
  59.                                                            LED1=0;
  60.                                                            Delay(PWM_LOW);
  61.                                                            LED1=1;      
  62.                                                           Delay(CYCLE-PWM_LOW);
  63.                                           }
  64.                             LED1=0;
  65.                             for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  66.                                           {
  67.                                                         LED1=0;
  68.                                                         Delay(PWM_LOW);
  69.                                                         LED1=1;
  70.                                                         Delay(CYCLE-PWM_LOW);
  71.                                           }


  72. /*--------第三顆LED燈呼吸----------*/
  73.                             LED2=1;
  74.                             Delay(500);
  75.                             for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  76.                                           {
  77.                                                            LED2=0;      
  78.                                                            Delay(PWM_LOW);
  79.                                                         LED2=1;   
  80.                                                         Delay(CYCLE-PWM_LOW);                  
  81.                                           }
  82.                             LED2=0;
  83.                             for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  84.                                           {
  85.                                                            LED2=0;
  86.                                                            Delay(PWM_LOW);
  87.                                                            LED2=1;
  88.                                                 Delay(CYCLE-PWM_LOW);
  89.                                              }

  90. /*--------第四顆LED燈呼吸----------*/
  91.                             LED3=1;
  92.                             Delay(500);
  93.                             for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  94.                                           {
  95.                                                           LED3=0;      
  96.                                                         Delay(PWM_LOW);
  97.                                                         LED3=1;
  98.                                               Delay(CYCLE-PWM_LOW);
  99.                                           }
  100.                             LED3=0;
  101.                             for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  102.                                           {
  103.                                                            LED3=0;
  104.                                                            Delay(PWM_LOW);
  105.                                                            LED3=1;
  106.                                                 Delay(CYCLE-PWM_LOW);
  107.                                 }

  108. /*--------第五顆LED燈呼吸----------*/
  109.                             LED4=1;
  110.                             Delay(500);   
  111.                             for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  112.                                           {
  113.                                                            LED4=0;      
  114.                                                            Delay(PWM_LOW);
  115.                                                            LED4=1;      
  116.                                                 Delay(CYCLE-PWM_LOW);
  117.                                 }
  118.                             LED4=0;
  119.                             for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  120.                                           {
  121.                                                            LED4=0;
  122.                                                            Delay(PWM_LOW);
  123.                                                            LED4=1;
  124.                                                 Delay(CYCLE-PWM_LOW);
  125.                                 }

  126. /*--------第六顆LED燈呼吸----------*/
  127.                             LED5=1;
  128.                             Delay(500);     
  129.                             for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  130.                                           {
  131.                                                            LED5=0;     
  132.                                                            Delay(PWM_LOW);
  133.                                                            LED5=1;      
  134.                                                 Delay(CYCLE-PWM_LOW);
  135.                                 }
  136.                             LED5=0;
  137.                             for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  138.                                           {
  139.                                                            LED5=0;
  140.                                                            Delay(PWM_LOW);
  141.                                                            LED5=1;
  142.                                                 Delay(CYCLE-PWM_LOW);
  143.                                 }

  144. /*--------第七顆LED燈呼吸----------*/
  145.                             LED6=1;
  146.                             Delay(500);     
  147.                             for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  148.                                           {
  149.                                                            LED6=0;  
  150.                                                            Delay(PWM_LOW);
  151.                                                            LED6=1;      
  152.                                                 Delay(CYCLE-PWM_LOW);
  153.                                 }
  154.                             LED6=0;
  155.                             for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  156.                                           {
  157.                                                            LED6=0;
  158.                                                            Delay(PWM_LOW);
  159.                                                            LED6=1;
  160.                                                 Delay(CYCLE-PWM_LOW);
  161.                                 }

  162. /*--------第八顆LED燈呼吸----------*/
  163.                             LED7=1;
  164.                             Delay(500);   
  165.                             for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  166.                                           {
  167.                                                            LED7=0;   
  168.                                                            Delay(PWM_LOW);
  169.                                                            LED7=1;
  170.                                                 Delay(CYCLE-PWM_LOW);
  171.                                 }
  172.                             LED7=0;
  173.                             for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  174.                                           {
  175. ……………………

  176. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


完整的Word格式文檔51黑下載地址:
呼吸燈報(bào)告.doc (339 KB, 下載次數(shù): 43)


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

使用道具 舉報(bào)

沙發(fā)
ID:301752 發(fā)表于 2018-4-11 17:29 | 只看該作者
用不了,沒(méi)啥用,連線之后一點(diǎn)反應(yīng)都沒(méi)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表