目錄
題目
要顯示的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文件