日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]1 學(xué)習(xí)回顧,上節(jié)課學(xué)習(xí)了靜態(tài)顯示   我們顯示了第一位數(shù)碼管,并讓其顯示了8   現(xiàn)在我們試著多一些花樣  1 點亮所有數(shù)碼管讓其顯示6    編程    代碼        注意上面已經(jīng)寫好了函數(shù)leddat

1 學(xué)習(xí)回顧,上節(jié)課學(xué)習(xí)了靜態(tài)顯示

   我們顯示了第一位數(shù)碼管,并讓其顯示了8

   現(xiàn)在我們試著多一些花樣

  1 點亮所有數(shù)碼管讓其顯示6

    編程

    代碼

    

    注意上面已經(jīng)寫好了函數(shù)leddata

    P0 = ox00;讓所有數(shù)碼管都打開

    P0 = leddata[3];讓數(shù)碼管顯示三

    這時就達成了我們的目的了

  2 讓數(shù)碼管從0到9循環(huán)顯示間隔500毫秒

    編程

    代碼:

    

#include // 52系列單片機頭文件

2 #define uint unsigned int

3 #define uchar unsigned char

4 sbit du = P2^6; //聲明U1鎖存器的鎖存端

5 sbit we = P2^7; //聲明U2鎖存器的鎖存端

6 uchar i;

7

8 unsigned code leddata[]={

9

10 0x3F, //"0"

11 0x06, //"1"

12 0x5B, //"2"

13 0x4F, //"3"

14 0x66, //"4"

15 0x6D, //"5"

16 0x7D, //"6"

17 0x07, //"7"

18 0x7F, //"8"

19 0x6F, //"9"

20 0x77, //"A"

21 0x7C, //"B"

22 0x39, //"C"

23 0x5E, //"D"

24 0x79, //"E"

25 0x71, //"F"

26 0x76, //"H"

27 0x38, //"L"

28 0x37, //"n"

29 0x3E, //"u"

30 0x73, //"P"

31 0x5C, //"o"

32 0x40, //"-"

33 0x00, //熄滅

34 0x00 //自定義

35

36 };

37

38 void delay(uint xms)

39 {

40 uint x, y;

41 for(x=xms; x>0; x--)

42 for(y=114; y>0; y--);

43 }

44

45 void main()

46 {

47 while(1)

48 {

49

50 we = 1; //打開U2鎖存器

51 P0 = 0x00; //送入位選信號

52 we = 0; //關(guān)閉U2鎖存器 其數(shù)據(jù)已被鎖存

53

54

55 du = 1; //打開U1鎖存器

56 P0 = leddata[i]; //送入端選信號

57 du = 0; //關(guān)閉U1鎖存器

58

59 delay(500);

60 i++;

61 if(i == 10)

62 i=0;

63

64

65 }

66 }

    

    

    頭文件和宏定義

    

    延時函數(shù), 當(dāng)y=114時,在11.0592mhz時差不多1ms

    要延時500ms 就讓x = 500即可

  while 大循環(huán)

  段選中

  P0 = leddata[i];

  其中i是定義的變量,沒賦初值時自動賦初值0

  延時500ms 后i++

  由于是0 - 9

  所以用if 判斷i==10

  假如加到10就清零。

  這樣就實現(xiàn)了我們的目標(biāo)

2 數(shù)碼管的動態(tài)顯示

  原理 :

  

  數(shù)碼管動態(tài)顯示的實質(zhì)就是利用了人眼視覺的暫留和二極管的余暉作用

  由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。

  2 編程 目標(biāo)-第一個數(shù)碼管顯示1 時間500ms 熄滅 第二個顯示2 時間500ms

        到第六個顯示6 一直循環(huán)下去

   

#include2#defineuintunsignedint3#defineucharunsignedchar4sbitdu=P2^6;5sbitwe=P2^7;6unsignedcodeleddata[]={780x3F,//"0"90x06,//"1"100x5B,//"2"110x4F,//"3"120x66,//"4"130x6D,//"5"140x7D,//"6"150x07,//"7"160x7F,//"8"170x6F,//"9"180x77,//"A"190x7C,//"B"200x39,//"C"210x5E,//"D"220x79,//"E"230x71,//"F"240x76,//"H"250x38,//"L"260x37,//"n"270x3E,//"u"280x73,//"P"290x5C,//"o"300x40,//"-"310x00,//熄滅320x00//自定義3334};353637voiddelay(uintxms)38{39uintx,y;40for(x=xms;x>0;x--)41for(y=114;y>0;y--);42}4344voidmain()45{46while(1)47{48du=1;49P0=leddata[1];50du=0;51P0=0xff;52we=1;53P0=0xfe;54we=0;55delay(500);5657du=1;58P0=leddata[2];59du=0;60P0=0xff;61we=1;62P0=0xfd;63we=0;64delay(500);6566du=1;67P0=leddata[3];68du=0;69P0=0xff;70we=1;71P0=0xfb;72we=0;73delay(500);7475du=1;76P0=leddata[4];77du=0;78P0=0xff;79we=1;80P0=0xf7;81we=0;82delay(500);8384du=1;85P0=leddata[5];86du=0;87P0=0xff;88we=1;89P0=0xef;90we=0;91delay(500);9293du=1;94P0=leddata[6];95du=0;96P0=0xff;97we=1;98P0=0xdf;99we=0;100delay(500);101102}103104105106107}

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉