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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单片机原理及其应用——单片机控制8只发光二极管交替闪烁

發(fā)布時(shí)間:2024/2/28 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机原理及其应用——单片机控制8只发光二极管交替闪烁 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 一、實(shí)驗(yàn)要求
  • 二、分析
  • 三、利用Proteus仿真軟件畫原理圖
  • 四、Keil編程軟件編寫程序
  • 五、實(shí)驗(yàn)結(jié)果

一、實(shí)驗(yàn)要求

【實(shí)驗(yàn)內(nèi)容】
1.用Proteus繪制硬件原理圖,并設(shè)置元件參數(shù)。
2.用KeilC51軟件編寫點(diǎn)亮一個(gè)發(fā)光二極管的程序。
3.Keil C51與Proteus聯(lián)調(diào),仿真調(diào)試和硬件調(diào)試觀察實(shí)驗(yàn)現(xiàn)象。
4.實(shí)現(xiàn)P2口連接的8只LED燈交替閃爍。
【硬件要求】
連接方法:P2.0-P2.7采用“拉電流”方式連接8只LED燈,LED的陰極通過保護(hù)電阻連接到地端。
【軟件實(shí)現(xiàn)】
1.編程實(shí)現(xiàn)點(diǎn)亮一個(gè)發(fā)光二極管的程序。
2.編程實(shí)現(xiàn)P2口連接的8只LED燈交替閃爍。

二、分析

1、本實(shí)驗(yàn)是通過單片機(jī)的P2口做相關(guān)實(shí)驗(yàn),P2口當(dāng)作為輸入接口時(shí)與P0、P1一樣,要先向其鎖存器寫入1,其目的是使場效應(yīng)管截止;作為輸出接口時(shí)與P1口一樣,因?yàn)槠鋬?nèi)部有上拉電阻即不需要另外外接上拉電阻。
2、畫電路的工作原理是通過P2.0-P2.7八個(gè)口輸出高低電平狀態(tài),由單片機(jī)控制8只發(fā)光二極管,使每只發(fā)光二極管點(diǎn)亮。因?yàn)榘l(fā)光二極管具有單向?qū)ㄐ?#xff0c;當(dāng)加在發(fā)光二極管兩端的電壓超過其導(dǎo)通電壓時(shí),它就會(huì)導(dǎo)通;而超過一定的電流時(shí),發(fā)光二極管點(diǎn)亮。通過單片機(jī)的I/O口連接,因?yàn)檫x擇的是P2口,即P2.0-P2.7八個(gè)口與8只發(fā)光二極管連接,這里采用的是“拉電流”方式連接,即單片機(jī)P2各口的各引腳與發(fā)光二極管的陽極相連,而發(fā)光二極管的陰極接地,即通過保護(hù)電阻連接到地端。

三、利用Proteus仿真軟件畫原理圖

四、Keil編程軟件編寫程序

本次實(shí)驗(yàn)是通過實(shí)現(xiàn)P2口連接的8只LED燈交替閃爍,且連接方法是通過單片機(jī)的并行輸入/輸出接口的P2端口P2.0-P2.7,其中各發(fā)光二極管的陰極通過保護(hù)電阻連接到地端。
通過循環(huán)依次點(diǎn)亮各發(fā)光二極管,且點(diǎn)亮一盞時(shí)其它發(fā)光二極管是熄滅的,通過一個(gè)for循環(huán)寫一個(gè)可依次每一個(gè)發(fā)光二極管輪流的循環(huán),然后該循環(huán)中通過取數(shù)組中的元素來對P2端口的P2.0-P2.7輸出高低電平狀態(tài)組成的十六進(jìn)制數(shù)據(jù),從而實(shí)現(xiàn)依次循環(huán)點(diǎn)亮各發(fā)光二極管,另外還要設(shè)置一個(gè)延時(shí),即設(shè)置一個(gè)延時(shí)函數(shù)從而設(shè)置每次循環(huán)點(diǎn)亮的間隔時(shí)間,實(shí)現(xiàn)每隔一段時(shí)間點(diǎn)亮一盞燈,首先單片機(jī)P2口輸出高電平1時(shí)對應(yīng)的發(fā)光二極管點(diǎn)亮,而輸出低電平0時(shí)對應(yīng)的發(fā)光二極管熄滅,采用數(shù)組建立數(shù)組存儲(chǔ)各端口輸出高低電平狀態(tài)組成的十六進(jìn)制數(shù)據(jù),且字節(jié)操作法,即unsigned char LED[]={0x01,0x02,0x04,0x08,0x10,
0x20,0x40,0x80},比如十六進(jìn)制0x01表示的是二進(jìn)制0000 0001,即此時(shí)點(diǎn)亮LED0,其它LED熄滅,十六進(jìn)制0x02表示的是二進(jìn)制0000 0010,即即此時(shí)點(diǎn)亮LED1,其它LED熄滅,依次進(jìn)行下去,另外其中還要加上延時(shí)函數(shù)使各燈延時(shí)一段時(shí)間。
程序代碼如下:

#include<reg51.h> void delay() {unsigned int i,j;for(i=0;i<1000;i++)for(j=0;j<125;j++); } void main() {unsigned char LED[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//定義LED[]數(shù)組P2口輸出數(shù)據(jù)unsigned char a;while(1){for(a=0;a<8;a++){P2=LED[a];delay();}} }

如下:

通過for(a=0;a<8;a++)循環(huán)語句,即每次通過P2=LED[a]調(diào)用建立的LED[]數(shù)組,數(shù)組中的元素分別為8只發(fā)光二極管輪流點(diǎn)亮?xí)r,單片機(jī)P2口各個(gè)位輸出高低電平狀態(tài)組成的十六進(jìn)制數(shù)據(jù),并通過調(diào)用先前創(chuàng)建的delay()延時(shí)函數(shù)延時(shí),下圖生成.HEX可執(zhí)行文件:

五、實(shí)驗(yàn)結(jié)果

將.HEX可執(zhí)行文件導(dǎo)入到單片機(jī)內(nèi),并點(diǎn)擊開始仿真,仿真結(jié)果如下,第一盞燈D1亮,而其它燈是熄滅的,隨后,第一盞燈D1熄滅,第二盞燈D2亮,第二盞燈D2熄滅,第三盞燈D3亮……,第三盞燈D3熄滅,依次這樣下去。
仿真結(jié)果如下:

由于程序中使用while(1)無限循環(huán)所以一直會(huì)這樣循環(huán)下去:

按照電路圖來連接實(shí)物,使用排線直接將P2.0-P2.7接口和LED&交通燈模塊的D1-D8燈連在一起,接線如下圖,要注意排線對應(yīng)的各端口。
在燒錄軟件中設(shè)置單片機(jī)型號、串口號、最低最高波特率,然后點(diǎn)擊“打開程序文件”,選擇之前生成的可執(zhí)行文件,然后打開開發(fā)板上的開關(guān),然后點(diǎn)擊“下載/編程”,然后右邊框就會(huì)顯示操作是否成功,此時(shí)就可以觀察板子上LED&交通燈模塊的D1-D8燈的情況:

總結(jié)

以上是生活随笔為你收集整理的单片机原理及其应用——单片机控制8只发光二极管交替闪烁的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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