0.png (51.33 KB, 下載次數: 69)
下載附件
2018-2-5 02:13 上傳
【簡要說明】
一、 尺寸:長114mmX寬72mmX高18mm
二、 主要芯片:單片機,數碼管、穩壓器 、繼電器
三、 工作電壓:6V至40V,功耗小于1W
四、 特點:1、具有穩壓電路,輸入電壓廣,具有電源指示燈。
2、具有6位數碼管顯示。
3、具有按鍵調節功能,設置參數帶記憶功能。
4、最大檢測頻率100KHZ。
5、雙路繼電器輸出。
6、繼電器最大控制負載300W。 7、單片機編程,客戶可以自己更改,提供源代碼
8、有無信號輸出,具有LED燈指示。
9、端子采用螺旋壓接端子
10、工作溫度-40度至 +70度 11、工作濕度 40% ~ 80%RH 12、具有電源防接反保護
13、具有續流保護 14、具有電磁抗干擾能力 15、板子穩定工作可靠
16、板子可安裝在DIN導軌上面
GYJ-0043_數字選頻工控開發板的電路原理圖:
0.png (123.7 KB, 下載次數: 69)
下載附件
2018-2-5 02:09 上傳
pcb圖:
0.jpg (153.53 KB, 下載次數: 75)
下載附件
2018-2-5 02:09 上傳
元件清單:
0.png (177.27 KB, 下載次數: 72)
下載附件
2018-2-5 02:10 上傳
實物圖與接線圖等:
DSC_0095.JPG (200.3 KB, 下載次數: 64)
下載附件
2018-2-5 00:54 上傳
標示圖.JPG (122.46 KB, 下載次數: 64)
下載附件
2018-2-5 00:54 上傳
接線圖 - 副本.JPG (178.36 KB, 下載次數: 62)
下載附件
2018-2-5 00:54 上傳
接線圖.JPG (134.02 KB, 下載次數: 68)
下載附件
2018-2-5 00:54 上傳
應用舉例.JPG (151.72 KB, 下載次數: 79)
下載附件
2018-2-5 00:54 上傳
DSC_0115.JPG (160.67 KB, 下載次數: 74)
下載附件
2018-2-5 00:54 上傳
DSC_0116.JPG (117.07 KB, 下載次數: 70)
下載附件
2018-2-5 00:54 上傳
51單片機源程序如下:
- #include "demo.h"
- #include "eeprom.h"
- #define uchar unsigned char//宏定義無符號字符型
- #define uint unsigned int //宏定義無符號整型
- uint tcnt1=0;//用于刷新數碼管
- uint qiannum1,bainum1,shinum1,genum1;
- uchar qiannum2,bainum2,shinum2,genum2;
- uchar qiannum3,bainum3,shinum3,genum3;
- code uchar seg7code[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數碼管字跟
- uchar wei1[3]={0XDf,0XBf,0X7f};//數碼管1的位的控制端
- uchar wei2[3]={0XFb,0XF7,0Xef};//數碼管2的位的控制端
- uchar abcf[4]={0x88,0x83,0xc6,0xbf};//abc-
- uchar abcf1,abcf2;//用于顯示特殊字符abc-
- uint dispcount=0;//獲取霍爾傳感器的數據用 獲取數據
- uint lck=0;//獲取霍爾傳感器的數據用 計時一秒用
- uint disp=0; //獲取霍爾傳感器的數據用 顯示到數碼管用
- void timer0_1init();//定時配置
- void displaynum();//將數字傳到數碼管上顯示
- static uchar presstime=0;//時間值按鍵用到的
- uint kf0=1;//按鍵用的標志位
- uint kt0=0;//按鍵用的標志位
- void keycan();//按鍵
- void keyflag();//按鍵結束調用,按鍵的建議使用,這樣可以減小code,但是觸發的不建議
- uint abc=0,abc1=0;//abc三種狀態
- uint keynum=0;//數碼管的位
- uint highnum=0,downnum=0;//最大數和最小數
- uchar highnum1=0,highnum2=0,downnum1=0,downnum2=0;//最大數和最小數
- bit flag_eeprom1=1;//掉電存儲的標志位
- void saveeepro();//掉電存儲
- void main(){
- timer0_1init();
- highnum1=Byte_Read(0x01);//掉電存儲用到
- highnum2=Byte_Read(0x02);//掉電存儲用到
- downnum1=Byte_Read(0x03);//掉電存儲用到
- downnum2=Byte_Read(0x04);//掉電存儲用到
- genum2=highnum1%10;//個位
- shinum2=highnum1%100/10;//十位
- bainum2=highnum2%10;//個位
- qiannum2=highnum2%100/10;//十位
-
- genum3=downnum1%10;//個位
- shinum3=downnum1%100/10;//十位
- bainum3=downnum2%10;//個位
- qiannum3=downnum2%100/10;//十位
-
- highnum=qiannum2*1000+bainum2*100+shinum2*10+genum2;
- downnum=qiannum3*1000+bainum3*100+shinum3*10+genum3;
- while(1){
- keycan();
- displaynum();
- }
- }
- void saveeepro(){//掉電存儲
- highnum1=shinum2*10+genum2;
- highnum2=qiannum2*10+bainum2;
- downnum1=shinum3*10+genum3;
- downnum2=qiannum3*10+bainum3;
- Sector_Erase(0); //擦除0x01地址中的數據 一定要先擦除再寫進 同一地址
- Byte_Program(0x01,highnum1); //擦除完成就可以寫入了
- Byte_Program(0x02,highnum2); //擦除完成就可以寫入了
- Byte_Program(0x03,downnum1); //擦除完成就可以寫入了
- Byte_Program(0x04,downnum2); //擦除完成就可以寫入了
- }
- void keycan(){//按鍵
- if(key1==0){//當按鍵1按下
- if(kf0){//當標志位kf0=1的時候進行
- if(presstime>100){//當時間值大于一百的時候
- kf0=0;//標志位kf0=0
- kt0=1;//標志位kt0=0
- presstime=0;//時間清零,重新進行
- keynum=0;
- abc1=0;
- disp=0;
- abc++;
- if(abc==3){//當位到3則置位0
- abc=0;
- }
- }
- }
- }else{//當按鍵松開
- keyflag();
- }//按鍵1結束
- if(abc>0){
- if(key2==0){if(kf0){if(presstime>100){kf0=0;kt0=1;presstime=0;flag_eeprom1=1;
- keynum++;if(keynum==5){keynum=0;
- }}}}else{keyflag();
- if((flag_eeprom1==1)){//加掉電存儲
- flag_eeprom1=0;
- saveeepro();//掉電存儲
- }
- }
- if(key3==0){if(kf0){if(presstime>100){kf0=0;kt0=1;presstime=0;flag_eeprom1=1;
- switch(keynum){
- case 1:
- if(abc==1){
- genum2++;//數碼管一加加
- if(genum2>9){//當數碼管一加加到9時置為1
- genum2=0;
- }
- }else if(abc==2){
- genum3++;//數碼管一加加
- if(genum3>9){//當數碼管一加加到9時置為1
- genum3=0;
- }
- }
- break;
- case 2:if(abc==1){shinum2++;if(shinum2>9){shinum2=0;}
- }else if(abc==2){shinum3++;if(shinum3>9){shinum3=0;}}
- break;
- case 3:if(abc==1){bainum2++;if(bainum2>9){bainum2=0;}
- }else if(abc==2){bainum3++;if(bainum3>9){bainum3=0;}}
- break;
- case 4:if(abc==1){qiannum2++;if(qiannum2>9){qiannum2=0;}
- }else if(abc==2){qiannum3++;if(qiannum3>9){qiannum3=0;}}
- break;
- default:break;
- }
- }}}else{keyflag();
- if((flag_eeprom1==1)){//加掉電存儲
- flag_eeprom1=0;
- saveeepro();//掉電存儲
- }
- }
- }
- }
- void displaynum(){//將數字傳到數碼管上顯示
- if(abc==0){
- abcf1=0;//a
- abcf2=3;//-
- genum1=disp%10;//個位
- shinum1=disp%100/10;//十位
- bainum1=disp%1000/100;//百位
- qiannum1=disp/1000;//千位
- if(abc1>2000){
- if(disp<downnum){
- out1=0;
- out2=1;
- }else if(disp>highnum){
- out1=1;
- out2=0;
- }else{
- out1=1;
- out2=1;
- }
- }else{
- out1=1;
- out2=1;
- }
- }else if(abc==1){
- abcf1=1;//b
- abcf2=3;//-
- highnum=qiannum2*1000+bainum2*100+shinum2*10+genum2;
- genum1=genum2;//個位
- shinum1=shinum2;//十位
- bainum1=bainum2;//百位
- qiannum1=qiannum2;//千位
- }else if(abc==2){
- abcf1=2;//c
- abcf2=3;//-
- downnum=qiannum3*1000+bainum3*100+shinum3*10+genum3;
- genum1=genum3;//個位
- shinum1=shinum3;//十位
- bainum1=bainum3;//百位
- qiannum1=qiannum3;//千位
- }
- }
- void timer0(void)interrupt 1 {
- TH0=0xe3;
- TL0=0xc;
- tcnt1++;
- presstime++;
- if(abc==0){
- abc1++;
- lck++;
- if(lck==1000){
- if(abc1>2000){
- disp=dispcount;
- }
- lck=0;
- dispcount=0;
- }
- }
- switch(tcnt1){
- case 1: P2=0XFF; P0=abcf[abcf1];P2=wei1[2];break;
- case 2: P2=0XFF; P0=abcf[abcf2];P2=wei1[1];break;
- case 3: P2=0XFF; P0=seg7code[qiannum1];if(keynum==4 || keynum==0){P2=wei1[0];}break;
- case 4: P2=0XFF; P0=seg7code[bainum1]; if(keynum==3 || keynum==0){P2=wei2[2];}break;
- case 5: P2=0XFF; P0=seg7code[shinum1]; if(keynum==2 || keynum==0){P2=wei2[1];}break;
- case 6: P2=0XFF; P0=seg7code[genum1]; if(keynum==1 || keynum==0){P2=wei2[0];}break;
- default: tcnt1=0; P2=0XFF; break;
- }
- }
- void timer0_1init(){//定時配置
- TMOD=0x0;
- TH0=0xe3;
- TL0=0xc;
- // IT0=1; //INT0下降沿中斷
- // EX0=1; //允許INT1中斷
- IT1=1; //INT1下降沿中斷
- EX1=1; //允許INT1中斷
- TR0=1;
- ET0=1;
- EA=1;
- }
- //void int0(void) interrupt 0{//P3^2//此處用于獲取霍爾傳感器的數據
- // dispcount++; //每一次中斷,計數加一
- //}
- void int1(void) interrupt 2{//P3^3//此處用于獲取霍爾傳感器的數據
- dispcount++; //每一次中斷,計數加一
- }
- void keyflag(){//按鍵結束調用,按鍵的建議使用,這樣可以減小code,但是觸發的不建議
- if(kt0){//當標志位kt0=1的時候進行
- if(presstime>100){//當時間值大于一百的時候
- kf0=1;//標志位kf0=1
- kt0=0;//標志位kt0=0
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png (7.75 KB, 下載次數: 73)
下載附件
2018-2-5 02:13 上傳
所有資料51hei提供下載:
GYJ-0043_數字選頻電路發貨資料.rar
(6.82 MB, 下載次數: 16)
2018-2-5 00:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|