日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于51单片机的花样流水灯设计

發(fā)布時間:2023/12/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于51单片机的花样流水灯设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、前言
  • 二、模塊介紹及原理說明
  • 三、硬件連接
  • 四、程序說明
  • 五、效果演示
  • 六、代碼鏈接

一、前言

花樣流水燈就是讓LED燈按照一定規(guī)律進行各種變化,流水燈在生活中也隨處可見,例如在建筑物的棱角上裝上流水燈,可以起到變換閃爍達到美不勝收的效果。此設計使用16個LED燈,有四種花樣,循環(huán)往復顯示,每隔15S左右的時間進行一次花樣變換。也可手動切換花樣。單片機系統(tǒng)裝有按鍵復位電路可直接復位電路。

二、模塊介紹及原理說明

單片機最小系統(tǒng):

單片機最小系統(tǒng)完成系統(tǒng)運行的最基本電路,單片機最小系統(tǒng)可配合其他模塊或自行搭建電路完成各種實驗功能,單片機最小系統(tǒng)接口設計靈活,電路簡潔,可完成基本的驅(qū)動任務。單片機最小系統(tǒng)包括晶振電路、復位電路。復位電路我使用按鍵復位,方便系統(tǒng)的重啟。

三、硬件連接

本設計使用P0、P2控制LED燈由于LED燈所需電量少,所以不需要加驅(qū)動就可以完成顯示。P3^0為按鍵控制端口,用于控制花樣燈的切換。

仿真連接

實物連接

四、程序說明

主程序,用以調(diào)用不同的函數(shù)。

main() {Timer0Init(); //定時器0初始化P2=0x00;//端口初始化P0=0x00;while(1){key(); if(num==0){P2=0x00;P0=0x00;}else if(num==1)num1();//花樣一else if(num==2) num2(); //花樣二 else if(num==3)num3();else if(num==4) num4(); } }

定時器函數(shù),用來控制不同花樣切換的時間,更加準確,此設計控制每種花樣的顯示時間為15S,可根據(jù)喜好自己調(diào)節(jié)。

void Timer0() interrupt 1 {TH0=(65536-6000)/256; //給定時器賦初值,定時10msTL0=(65536-6000)%256;ssec++;if(ssec>=100) //毫秒 時鐘{ssec=0;sec++; if(sec>=15) //秒{sec=0;num++;}if(num==5)num=1;} }

花樣表格函數(shù),將各種花樣流水燈分開放入表格中,在主函數(shù)中進行調(diào)用。通過查表的方式顯示各種花樣,實用性更強,在花樣較多時也方便進行管理。花樣相對簡單,可自己進行編寫。

unsigned char code seg1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0x00,0x00,0x55,0x55,0xaa,0xaa}; //第一種unsigned char code seg2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; unsigned char code seg3[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,}; //第二種unsigned char code seg4[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01}; unsigned char code seg5[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01}; //第三種 unsigned char code seg6[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x81,0x82,0x84,0x88,0x90,0xa0,0xc0,0xc1,0xc2,0xc4,0xc8,0xd0,0xe0,0xe1,0xe2,0xe4,0xe8,0xf0,0xf1,0xf2,0xf4,0xf8,0xf9,0xfa,0xfc,0xfd,0xfe,0xff}; unsigned char code seg7[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x81,0x41,0x21,0x11,0x09,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x83,0x43,0x23,0x13,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x87,0x47,0x27,0x17,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x8f,0x4f,0x2f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x9f,0x5f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0xbf,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,}; //第四種

按鍵函數(shù),可以通過按鍵進行LED燈花樣的切換,按鍵函數(shù)中需要加入消抖函數(shù),以防止按鍵誤觸。

void key() {if(key1==0) //按鍵控制{delay(10);if(key1==0){num++;if(num==5) num=0;}while(!key1); //檢測按鍵是否松開}}

五、效果演示

仿真演示

花樣流水燈仿真演示

實物演示

基于51單片機的花樣流水燈實物演示

六、代碼鏈接

歡迎留言評論分享自己的看法,如有錯誤歡迎指正。關注公眾號:“小小創(chuàng)客者”回復“花樣流水燈“獲得源碼及仿真。

總結(jié)

以上是生活随笔為你收集整理的基于51单片机的花样流水灯设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。