基本的入門練習 所有的系統 最終總要顯示一些數字
用大陸宏晶科技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);}
}
沒有留言:
張貼留言