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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

2440 8字数码管 显示0到10 c语言,51单片机对8位数码管依次显示0-7的设计

發(fā)布時間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2440 8字数码管 显示0到10 c语言,51单片机对8位数码管依次显示0-7的设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

共陽極數(shù)組0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90}

共陽極數(shù)組A~F:display[]={0x88,0x83,0xA6,0xC1,0x86,0x8E}

共陰極數(shù)組0~9:display[]={0x3F,0x06,0x5B,0x4F,0x6E,0x6D,0x7D,0x07,0x7F,0x6F}

共陰極數(shù)組A~F:display[]={0x77,0x7C,0x59,0x3E,0x79,0x71}

共陰、兩組四位一體數(shù)碼管,位選接74LS138譯碼器,輸入(位選)CBA接P20,P21,P22。段選通過74573后接P1口。

若不使用譯碼器,可直接將位選段接IO口,賦值改變。

/*******************************************************************************

2 * 實 驗 名 : 動態(tài)數(shù)碼管顯示

3 * 實驗說明 : 8位數(shù)碼管依次顯示0~7

*******************************************************************************/

8 #include

9

10 #define GPIO_DIG P1 //Digitron 數(shù)碼管

11 sbit LSA= P2^0;

12 sbit LSB= P2^1;

13 sbit LSC= P2^2;

14

15 unsigned char code DIG_CODE[10]={

16 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的顯示碼

17 void DigDisplay();

18

19 void main(void)

20 {

21 while(1)

22 DigDisplay();

23 }

24

25

26 void DigDisplay()

27 {

28 unsigned char i;

29 unsigned int j;

30 for(i=0;i《8;i++)

31 {

32 switch(i) //位選,選擇點亮的數(shù)碼管,

33 {

34 case(0):

35 LSA=0;LSB=0;LSC=0; break;//顯示第0位

36 case(1):

37 LSA=1;LSB=0;LSC=0; break;//顯示第1位

38 case(2):

39 LSA=0;LSB=1;LSC=0; break;//顯示第2位

40 case(3):

41 LSA=1;LSB=1;LSC=0; break;//顯示第3位

42 case(4):

43 LSA=0;LSB=0;LSC=1; break;//顯示第4位

44 case(5):

45 LSA=1;LSB=0;LSC=1; break;//顯示第5位

46 case(6):

47 LSA=0;LSB=1;LSC=1; break;//顯示第6位

48 case(7):

49 LSA=1;LSB=1;LSC=1; break;//顯示第7位

50 }

51 GPIO_DIG=DIG_CODE[i];//發(fā)送段碼

52 j=10000; //掃描間隔時間設(shè)定,若減少j,可觀察到穩(wěn)定顯示的0~7 (掃描速度太快,人眼識別不了)

53 while(j--);

54 GPIO_DIG=0x00;//消隱

55 }

56 }

1 /*******************************************************************************

2 * 實 驗 名 : 數(shù)碼管秒表顯示

3 * 實驗說明 : 0~59依次顯示

*******************************************************************************/

8 #include

9

10 #define GPIO_DIG P1 //Digitron 數(shù)碼管

11 #define uchar unsigned char

12 #define uint unsigned int

13 sbit LSA= P2^0;

14 sbit LSB= P2^1;

15 sbit LSC= P2^2;

16

17 uchar shi,ge,num1=0,num=0;

18 uchar code DIG_CODE[10]={

19 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的顯示碼

20 void Delay5ms();

21 void DigDisplay(uchar shi,uchar ge);

22

23

24 void main()

25 { //200微秒@20MHz

26 TMOD = 0x01; //設(shè)置定時器模式

27 TL0 = 0xA8; //設(shè)置定時初值

28 TH0 = 0xFD; //設(shè)置定時初值

29 EA = 1; // 開總中斷

30 TF0 = 0; //清除TF0標志

31 ET0 = 1; // 開定時器0中斷

32 TR0 = 1; //定時器0開始計時

33 while(1)

34 {

35 DigDisplay(shi,ge);

36 }

37 }

38

39 void DigDisplay(uchar shi,uchar ge)

40 {

41 GPIO_DIG=DIG_CODE[shi]; //段選

42 LSA=0;LSB=0;LSC=0;

43 Delay5ms();

44 GPIO_DIG=DIG_CODE[ge];

45 LSA=1;LSB=0;LSC=0;

46 Delay5ms();

47 }

48

49 void Timer0Init(void) interrupt 1

50 {

51 TL0 = 0xA8; //重裝初

52 TH0 = 0xFD;

53 num1++;

54 if(num1==200) //5次200ms即為1s到

55 {

56 num1=0;

57 num++;

58 if(num==60)

59 num=0;

60 shi=num/10;

61 ge = num%10;

62 }

63 }

64

65

66 void Delay5ms() //@12.000MHz

67 {

68 unsigned char i, j;

69

70 i = 59;

71 j = 90;

72 do

73 {

74 while (--j);

75 } while (--i);

76 }

總結(jié)

以上是生活随笔為你收集整理的2440 8字数码管 显示0到10 c语言,51单片机对8位数码管依次显示0-7的设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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