2020年6月18日 星期四

STC勞作 四位七段顯示器

四位數七段顯示器掃描顯示
基本的入門練習  所有的系統  最終總要顯示一些數字
用大陸宏晶科技STC15W404S單晶片  直接掃描共陽極四位數七段顯示器

拿一個單晶片來掃描四位數七段顯示器  是很浪費  大材小用
因為STC15W404S  28隻腳  只賣NTD$10  所以就給他浪費下去

當年大陸宏晶科技因為程式燒入單晶片之後
因為有特殊加密
程式不會被破解  所以快速竄紅

宏晶科技的特殊加密  已經確定破解開了
所以又推出第二代單晶片  號稱 還沒有人破解

大陸宏晶科技單晶片  價格都非常便宜
40隻腳全功能的單晶片  價格都只再新臺幣10~20多元之間
很適合拿來給小孩當玩具   燒壞也不會心痛

背面


正面


點亮






程式
/********************
MCU=STC15W404S-DIP28 
STC15W204S-DIP16  P0不完整  不方便直控
4digit 7 segment need 8+4=12 pin
P3八隻腳接七段顯示a-dp  P2^0~P2^3腳接七段顯示1~4位數
***************/

#include <reg52.h>
unsigned int num=0;

int d;
//// uchar LED_CODE[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E};
// 0~F
code unsigned char LED_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E};

void MyDelay(int ti){
unsigned char i,j,k;
for(i = ti;i > 0; i--) for(j = 12000; j > 0; j--) for(k = 19000; k > 0; k--);
}

//******************************
void MyDelayAndScan(int ti){
unsigned char i,j,k,t;
for(i = ti;i > 0; i--) for(j = 12; j > 0; j--) for(k = 19; k > 0; k--){
for(  t=0;t<4;t++){
d=num%10;P3=0xff;P2=0x01;P3= LED_CODE[d];   //  0b0001
d=(num%100-num%10)/10;P3=0xff;P2=0x02;P3= LED_CODE[d];
d=(num%1000-num%100)/100;P3=0xff;P2=0x04;P3= LED_CODE[d];
d=num/1000;P3=0xff;P2=0x08;P3= LED_CODE[d];
}
}
num++;
}



//******************************
void main(){
while(1){MyDelayAndScan(2);}
}

沒有留言: