要顯示的8個字符已存放在以BUF開始的存儲區單元中(稱爲顯示緩衝區),依次送到LED顯示器中顯示。CPU通過P0口和P2口控制8位LED顯示器,LED爲共陰極顯示器。

目錄

題目

1.0繪製電路圖protues:

2.0程序代碼:

3.0 protues仿真:

在uvision下生成hex文件

protues添加hex文件

仿真


題目

要顯示的8個字符已存放在以BUF開始的存儲區單元中(稱爲顯示緩衝區),依次送到LED顯示器中顯示。CPU通過P0口和P2口控制8位LED顯示器,LED爲共陰極顯示器。

1.0繪製電路圖protues:

 

 繪製方法:

2.0程序代碼:

 

#include<reg51.h>

//unsigned char wei[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};  位碼
//unsigned char s[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0X6F};	 段碼

//延遲函數
void delay(unsigned int n){
	unsigned int i=0,j=0;
	for(i=0;i<n;i++){
		for(j=0;j<120;j++);
	}
}
  
void main()
{
   while(1)
   {
    P2=0x80;
    P0=0x3F;
    delay(1);

    P2=0x40;
    P0=0x06;
    delay(1);

    P2=0x20;
    P0=0x5b;
    delay(1);

    P2=0x10;
    P0=0x4f;
    delay(1);

    P2=0x08;
    P0=0x66;
    delay(1);

    P2=0x04;
    P0=0x6d;
    delay(1);

    P2=0x02;
    P0=0x7d;
    delay(1);

    P2=0x01;
    P0=0x07;
    delay(1);
   }
}

#include<reg51.h>


unsigned char s[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0X6F};
unsigned char str[] = {0x76,0x79,0x38,0x38,0x3f};
unsigned char wei[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//unsigned char wei[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};

void delay(unsigned int n){
	unsigned int i=0,j=0;
	for(i=0;i<n;i++){
		for(j=0;j<120;j++);
	}
}



void seg(){
	unsigned int i=0;
	for(i=0;i<8;i++){
		P0 = s[i];
		P2 = wei[7-i];
		delay(1);
	}
}

void main(){
	while(1){
		seg();		
	}
}

3.0 protues仿真:

在uvision下生成hex文件

 

protues添加hex文件

仿真

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章