chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

跑馬燈程序控制發(fā)光二極管設(shè)計(jì)方案

454398 ? 來(lái)源:博客園 ? 作者:Christal_R ? 2020-10-20 14:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. I/O 口的結(jié)構(gòu)及特點(diǎn)

Atmega8 有23 個(gè)I/O 引腳,分成3 個(gè)8 位的端口B、C 和D,其中C 口只有7 位

Atmega8 采用3個(gè)8位寄存器來(lái)控制I/O端口,它們分別是:方向寄存器DDRx、數(shù)據(jù)寄存器PORTx、輸入引腳寄存器PINx

x為B或C 或D,分別代表B口、C口或D 口;

n為0~7,代表寄存器中的位置;

其中DDRx 和PORTx 是可讀寫(xiě)寄存器,而PINx 為只讀寄存器;

每個(gè)I/O引腳內(nèi)部都有獨(dú)立的上拉電阻電路,可通過(guò)程序設(shè)置內(nèi)部上拉電阻是否有效。

方向寄存器DDRx中的每個(gè)位用于控制I/O口一個(gè)引腳的輸入輸出方向,即控制I/O口的工作模式為輸出模式還是輸入模式。

當(dāng)DDRxn=1 時(shí),I/O 的Pxn 引腳處于輸出模式。此時(shí)

若PORTxn=1時(shí),I/O引腳呈高電平,同時(shí)可提供輸出20mA 的電流;

若PORTxn=0時(shí),I/O引腳呈低電平,同時(shí)可吸收20mA 的電流。

當(dāng) DDRxn=0 時(shí),I/O 的Pxn 引腳處于輸入模式。此時(shí)

引腳寄存器PINxn 中的數(shù)據(jù)就是外部引腳的實(shí)際電平;

此時(shí)可通過(guò)PORTxn 的設(shè)置可控制內(nèi)部的上拉電阻使用或不使用。

注意事項(xiàng):

使用AVR的I/O 口,首先應(yīng)正確設(shè)置其工作模式(輸入模式還是輸出模式),設(shè)置DDRx;

當(dāng)I/O工作在輸入模式(DDRxn=0)時(shí),讀取引腳上的電平應(yīng)取PINxn的值,而不是PORTxn的值;

當(dāng)I/O口工作在輸入模式(DDRxn=0)時(shí),應(yīng)根據(jù)實(shí)際情況設(shè)置內(nèi)部上拉電阻,利用內(nèi)部上拉電阻可以節(jié)省外部上拉電阻;

將I/O空工作模式由輸出模式設(shè)置為輸入模式后,必須等待一個(gè)時(shí)鐘周期后才能正確的讀到外部引腳的值

2. 跑馬燈程序控制發(fā)光二極管

我們選擇用PD0~PD7來(lái)控制8個(gè)發(fā)光二極管循環(huán)點(diǎn)亮,從而實(shí)現(xiàn)“跑馬燈”

所以電路圖如圖所示:

問(wèn):如果改變 delay_ms 的時(shí)間會(huì)變的怎樣呢?

=> 跑馬燈的變換速度改變。

問(wèn):如果直接讓 PORTD = ( 1<

=>PORTD = ~( 1<

=>PORTD = ( 1<

問(wèn):能不能添加或修改程序,改變燈亮的順序和時(shí)間呢?

=> 改變循環(huán)條件就可以改變亮燈的順序,如把i++改為i+=2,即可實(shí)現(xiàn)隔一盞燈亮一個(gè);

=> 亮燈時(shí)間改變延遲時(shí)間delay_ms()的傳入?yún)?shù)即可。

3. 單個(gè)LED數(shù)碼管練習(xí)

數(shù)碼管的a、b、c、d、e、f、g七個(gè)發(fā)光二極管加不同的電平,二極管顯示不同亮暗的組合就可以顯示不同的字形;

以1為高電平,0為低電平,給出字形碼表:

即0x3F表示的就是字型‘0’,0x06表示的就是字型‘1’......;

所以直接把這種對(duì)應(yīng)關(guān)系存到一個(gè)Char型數(shù)組里(一個(gè)Char型是8位);

想要對(duì)應(yīng)的a、b、c、d、e、f、g七個(gè)發(fā)光二極管展示亮與暗,我們選用PD0~7這8位來(lái)控制;

如:想要展示字型‘0’=>‘0’對(duì)應(yīng)字形碼是0x3F=>其中發(fā)光二極管的a~f均為亮狀態(tài)=>PD0~5均為低電平(低電平亮燈)。

我們用一個(gè)LED數(shù)碼管顯示數(shù)字0~9,仍然使用PD口控制,循環(huán)顯示數(shù)字

電路圖如圖所示:

了解理論知識(shí)后便可以開(kāi)始編程:(延時(shí)函數(shù)與上面相同)

單個(gè)LED數(shù)碼管

問(wèn):想顯示A~F 怎么辦呢?

=> num[] 數(shù)組再添加多幾個(gè)元素,分別是A~F對(duì)應(yīng)的字形碼。

問(wèn):能不能顯示像H,L 一類的字母呢?

=> 能,想要顯示字母H,只需要二極管的b、c、e、f、g亮即可;

=> 想要顯示字母L,只需要二極管的d、e、f亮即可。

問(wèn):改變了delay_ms 函數(shù)的延時(shí)時(shí)間會(huì)怎樣呢?

=> 數(shù)字之間的顯示間隔邊長(zhǎng)。

問(wèn):要顯示小數(shù)點(diǎn)我們應(yīng)該怎么辦呢?

=> 在字形碼表中可以看出,最高位h是沒(méi)有作用的,所以可以用h位來(lái)控制小數(shù)點(diǎn),當(dāng)最高位為1時(shí)小數(shù)點(diǎn)亮,為0時(shí)不亮;

=> 如0x5B表示‘2’,那么0x5B + 0x80表示‘2.’。

4.多個(gè)LED數(shù)碼管實(shí)驗(yàn)

靜態(tài)顯示:3小節(jié)的內(nèi)容便是靜態(tài)展示

動(dòng)態(tài)顯示:采用各數(shù)碼管循環(huán)輪流的顯示的方法,當(dāng)循環(huán)頻率較高時(shí),利用人眼的暫留特性,感覺(jué)不到數(shù)碼管的閃爍,就像看到數(shù)碼管在同時(shí)發(fā)光一樣,類似電影的原理。

兩者對(duì)比:動(dòng)態(tài)顯示比靜態(tài)顯示占用資源少,耗電少;但是穩(wěn)定性卻差,程序設(shè)計(jì)也更為復(fù)雜,MCU負(fù)擔(dān)重。

動(dòng)態(tài)顯示需要一個(gè)接口完成字形碼的輸出,另外一個(gè)接口完成各數(shù)碼管的輪流顯示;

我們要實(shí)現(xiàn)從“000.0”到“999.9”的數(shù)字變化顯示過(guò)程;

用PB口做字形碼的輸出口,用PC0~PC3控制數(shù)碼管的輪轉(zhuǎn)流顯示;

從左數(shù)起,其中PC0表示第0個(gè)數(shù),PC1表示第1個(gè)數(shù),PC2表示第3個(gè)數(shù)(該數(shù)顯示小數(shù)點(diǎn)),PC3表示第4個(gè)數(shù);所以只有第三個(gè)數(shù)是特殊的;

參考原理圖如下:

編程實(shí)現(xiàn)代碼

1 void main()
2 {
3 //PB口做字形碼的輸出口,PC0~PC3控制數(shù)碼管的輪流顯示
4 unsigned char i,j;
5 static unsigned char LedNum[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
6 //顯示小數(shù)點(diǎn)要加0x80
7 unsigned char CountNum[4] = {0,0,0,0}; //計(jì)數(shù)的百、十、個(gè)位和十分位
8 DDRB = 0xFF; //設(shè)置B口為輸出模式
9 PORTB = 0xFF; //置高電平
10 DDRC = 0x0F;
11 PORTC = 0xFF;
12
13 while(1)
14 {
15 i=0; //用于PC0~PC3的輪轉(zhuǎn)
16 for(j=0;j<10;j++) //依次顯示4S"000.0"
17 {
18 i = ++i%4;
19 PORTC&=~(1<
20 if(2==i) //如果是第三個(gè)數(shù)字則加個(gè)小數(shù)點(diǎn)顯示
21 PORTB = LedNum[0] + 0x80;
22 else //其余情況都沒(méi)有小數(shù)點(diǎn)顯示
23 PORTB = LedNum[0];
24 delay_ms(10);
25 PORTC|= 0xFF;//復(fù)位,切換到下一個(gè)輸出口
26 }
27 CountNum[0] = CountNum[1] = CountNum[2] = CountNum[3] = 0; //用于實(shí)現(xiàn)4位數(shù)的加一變化
28 while(1)
29 {
30 //計(jì)數(shù)加1,滿9進(jìn)位、后置0
31 if(CountNum[3]++==9)
32 {
33 CountNum[3] = 0;
34 if(9 == CountNum[2]++)
35 {
36 CountNum[2] = 0;
37 if(9 == CountNum[1]++)
38 {
39 CountNum[1] = 0;
40 CountNum[0]++;
41 }
42 }
43 }
44 //顯示計(jì)數(shù)值
45 for(i=0;i<4;i++)
46 {
47 PORTC&=~(1<
48 if(2 == i)
49 PORTB = LedNum[CountNum[i]] + 0x80;
50 else
51 PORTB = LedNum[CountNum[i]];
52 delay_ms(10);
53 PORTC|=0xFF;
54 }
55 //999.9的時(shí)候退出
56 if(CountNum[0]==9 && CountNum[1]==9 && CountNum[2]==9 && CountNum[3]==9)
57 break;
58 }
59 }
60 }
多個(gè)LED數(shù)碼管


編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 發(fā)光二極管
    +關(guān)注

    關(guān)注

    14

    文章

    1243

    瀏覽量

    69073
  • led數(shù)碼管
    +關(guān)注

    關(guān)注

    2

    文章

    73

    瀏覽量

    23327
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    二極管的原理

    怎么工作?二極管最主要的一個(gè)能力就是可以控制電路中電流流動(dòng)的能力,也就是單向?qū)ㄐ?。與通過(guò)抵抗或存儲(chǔ)的無(wú)源器件不同,二極管在電流流經(jīng)設(shè)備時(shí)主動(dòng)地深入了解電流的漲落。下面有兩種方法可以展示二極管
    發(fā)表于 12-22 13:15

    ESD靜電二極管的基本工作原理

    重要。ESD靜電二極管是一種廣為人知的靜電防護(hù)解決方案。下面介紹ESD靜電二極管的工作原理。ESD靜電二極管利用pn結(jié)二極管的齊納擊穿*。如
    的頭像 發(fā)表于 12-14 22:02 ?757次閱讀
    ESD靜電<b class='flag-5'>二極管</b>的基本工作原理

    二極管的妙用

    “向我們通常忽視的元件致敬。”二極管的妙用在今天的電子學(xué)課程中,二極管可能是最被忽視的元件。關(guān)于電阻、電容和電感的原理已有連篇累牘的著述;但二極管的內(nèi)容卻不多見(jiàn)。二極管既沒(méi)有線性電路那
    的頭像 發(fā)表于 11-26 07:35 ?1280次閱讀
    <b class='flag-5'>二極管</b>的妙用

    Vishay VSMA1094750X02大功率紅外發(fā)光二極管技術(shù)解析

    Vishay VSMA1094750X02大功率紅外發(fā)光二極管是星形產(chǎn)品組合的一部分,設(shè)有波長(zhǎng)為940nm的紅外發(fā)光二極管。Vishay VSMA1094750X02設(shè)計(jì)采用雙堆疊發(fā)射器芯片。該器件
    的頭像 發(fā)表于 11-13 14:52 ?555次閱讀

    VSMA1085750X02大功率紅外發(fā)光二極管技術(shù)解析與應(yīng)用指南

    Vishay VSMA1085750X02大功率紅外發(fā)光二極管屬于星形產(chǎn)品組合的一部分。 Vishay VSMA1085750X02是一款850nm紅外發(fā)光二極管,具有雙堆疊發(fā)射器芯片,可實(shí)現(xiàn)最大輻射功率。該器件采用42毫米芯片尺寸,可在1.5A DC下工作,并可承受高
    的頭像 發(fā)表于 11-13 14:43 ?591次閱讀

    #夜光漂 #魚(yú)漂燈 #發(fā)光二極管 深圳瑞沃微半導(dǎo)體夜光漂 新型魚(yú)漂燈絲

    發(fā)光二極管
    深圳瑞沃微半導(dǎo)體
    發(fā)布于 :2025年10月20日 10:35:33

    肖特基二極管怎么用+原理

    肖特基二極管與普通硅二極管(PN結(jié)二極管)最核心的結(jié)構(gòu)差異,就在于它沒(méi)有P+外延層(或P型半導(dǎo)體層),取而代之的是金屬-半導(dǎo)體結(jié)(肖特基結(jié))。 圖表1 肖特基二極管的結(jié)構(gòu)差異 1.更低
    的頭像 發(fā)表于 09-22 16:40 ?3528次閱讀
    肖特基<b class='flag-5'>二極管</b>怎么用+原理

    洲光源紅外發(fā)射二極管ZIR0342C概述

    紅外發(fā)射二極管 ZIR0342C 是一種高輻射發(fā)光二極管,透明的封膠外形。該材料與光電晶體、光電二極管和紅外接收模塊進(jìn)行配對(duì)。
    的頭像 發(fā)表于 08-20 17:21 ?1083次閱讀
    洲光源紅外發(fā)射<b class='flag-5'>二極管</b>ZIR0342C概述

    洲光源紅外發(fā)射二極管ZIR053概述

    ZIR053 是一種高輻射發(fā)光二極管,藍(lán)色透明的封膠外形。該材料與光電晶體、光電二極管和紅外接收模塊進(jìn)行配對(duì)。
    的頭像 發(fā)表于 08-18 10:00 ?979次閱讀
    洲光源紅外發(fā)射<b class='flag-5'>二極管</b>ZIR053概述

    Micro LED微發(fā)光二極管:改進(jìn)納米材料成為下一代顯示技術(shù)的核心

    臺(tái)面尺寸小于100微米的微發(fā)光二極管(Micro-LED),與液晶顯示器(LCD)和有機(jī)發(fā)光二極管(OLED)等主流顯示技術(shù)相比,具有響應(yīng)速度快、壽命長(zhǎng)、亮度高和可靠性強(qiáng)等優(yōu)點(diǎn)。特別是隨著近年來(lái)增強(qiáng)
    的頭像 發(fā)表于 08-11 14:54 ?2045次閱讀
    Micro LED微<b class='flag-5'>發(fā)光二極管</b>:改進(jìn)納米材料成為下一代顯示技術(shù)的核心

    洲光源紅外發(fā)射二極管ZHIR253C-80概述

    ZHIR253C-80 是一種高輻射發(fā)光二極管,透明的封膠外形。
    的頭像 發(fā)表于 07-16 15:11 ?1120次閱讀
    洲光源紅外發(fā)射<b class='flag-5'>二極管</b>ZHIR253C-80概述

    LED發(fā)光二極管的原理分析

    LED發(fā)光二極管,一種半導(dǎo)體元件,當(dāng)向其中注入電流時(shí)會(huì)發(fā)光。
    的頭像 發(fā)表于 07-16 10:08 ?2499次閱讀
    LED<b class='flag-5'>發(fā)光二極管</b>的原理分析

    什么是射頻二極管

    在當(dāng)今高度數(shù)字化和無(wú)線化的世界中,射頻技術(shù)無(wú)處不在。從我們?nèi)粘J褂玫闹悄苁謾C(jī)、Wi-Fi 路由器,到衛(wèi)星通信、雷達(dá)系統(tǒng)等,射頻信號(hào)的處理和傳輸至關(guān)重要。而在這一過(guò)程中,射頻二極管扮演著不可或缺的角色
    的頭像 發(fā)表于 03-17 17:02 ?929次閱讀

    二極管種類及應(yīng)用

    二極管有多種類型:按材料分,有鍺二極管、硅二極管、砷化鎵二極管等;按制作工藝可分為面接觸二極管和點(diǎn)接觸
    發(fā)表于 03-08 16:39

    輸出二極管選?。上螺d)

    有關(guān)二極管選取一般從一下幾點(diǎn)著手一、根據(jù)二極管應(yīng)用的開(kāi)關(guān)速度來(lái)選取不同類型的二極管、根據(jù)輸出的電流來(lái)選取二極管的電流范圍三、通過(guò)計(jì)算來(lái)確定
    發(fā)表于 03-04 14:02 ?0次下載