標(biāo)題: STC單片機(jī)可編程觸發(fā)控制模塊源碼與資料 數(shù)碼管顯示計(jì)數(shù) 倒計(jì)時(shí)功能 [打印本頁]
作者: zhangxinchun 時(shí)間: 2018-2-24 13:53
標(biāo)題: STC單片機(jī)可編程觸發(fā)控制模塊源碼與資料 數(shù)碼管顯示計(jì)數(shù) 倒計(jì)時(shí)功能
電路原理圖:
0.png (65.35 KB, 下載次數(shù): 30)
下載附件
2018-2-25 02:08 上傳
【簡(jiǎn)要說明】 此工業(yè)級(jí)板的作用是,模塊供電后,數(shù)碼管顯示設(shè)定時(shí)間,倒計(jì)時(shí)開始,當(dāng)數(shù)碼管倒計(jì)時(shí)到0時(shí),繼電器接通或者斷開,此模塊有三種工作模式,客戶可以根據(jù)自己的需要進(jìn)行選型。
三種工作形式分別是:
1、延時(shí)接通型:即,模塊通電后,繼電器保持通電前狀態(tài),當(dāng)延時(shí)時(shí)間到達(dá)數(shù)碼管設(shè)定時(shí)間值時(shí),繼電器吸合,并一直保持吸合狀態(tài),直到斷開供電電源為止。
2、延時(shí)斷開型:即,模塊通電后,繼電器立即吸合并保持吸合狀態(tài),當(dāng)延時(shí)時(shí)間達(dá)到數(shù)碼管設(shè)定值時(shí),繼電器斷開,并保持?jǐn)嚅_狀態(tài),直到,模塊斷電在從新供電才重復(fù)工作。
3、連續(xù)通斷型:即,模塊通電后,繼電器根據(jù)數(shù)碼管設(shè)定時(shí)間,延時(shí)接通,然后再根據(jù)數(shù)碼管設(shè)定時(shí)間,延時(shí)斷開,一直連續(xù)循環(huán)下去。直到模塊斷開電源才停止工作。
【簡(jiǎn)要說明】
一、板子尺寸:長(zhǎng)65mmX寬36mmX高18mm
二、主要器件:?jiǎn)纹瑱C(jī)、數(shù)碼管、繼電器
三、工作電壓:5V至36V 需要5V工作的,請(qǐng)備注說明。
四、板子功耗:小于150mA
五、特點(diǎn):
1、具有繼電器輸出信號(hào)指示功能。
2、供電即可工作無需外部觸發(fā)。
3、三種工作模式,滿足各種模式。
4、如果您會(huì)單片機(jī),可以根據(jù)自己需要,任意編程,我們可提供參考程序和相關(guān)資料。
5、兩個(gè)按鍵任意調(diào)節(jié)延時(shí)時(shí)間。
6、最高響應(yīng)次數(shù) 每秒通斷一次。
7、可以和72MM卡槽板配合安裝在DIN導(dǎo)軌上。
8、繼電器觸點(diǎn)干接點(diǎn)輸出,可以控制交流或者直流250V以內(nèi)任何負(fù)載。 9、端子采用螺旋壓接端子
10、工作溫度-40度至 +70度
11、工作濕度 10% ~ 80%RH
12、四周有4個(gè)固定安裝孔
13、具有電磁抗干擾能力
14、板子穩(wěn)定工作可靠
1.jpg (138.95 KB, 下載次數(shù): 37)
下載附件
2018-2-25 02:08 上傳
0~999秒可調(diào)-觸發(fā)延時(shí)斷開 - 延時(shí)閉合帶計(jì)數(shù)STC12C2052AD
- /********************************************************************
- 匯誠科技
- 實(shí)現(xiàn)功能:測(cè)試程序
- 使用芯片:STC12C2052AD
- 晶振:11.0592MHZ
- 波特率:9600
- 編譯環(huán)境:Keil
- 【聲明】此程序僅用于學(xué)習(xí)與參考,引用請(qǐng)注明版權(quán)和作者信息!
- /********************************************************************
- ********************************************************************/
- //#include<reg52.h>
- #include<STC12C2052AD.h> //庫文件
- #include<intrins.h>
- #define uchar unsigned char //宏定義字符型變量
- #define uint unsigned int //宏定義整型變量
- /*聲明 SFR 相關(guān) 與 的 IAP*/
- sfr IAP_DATA = 0xE2;
- sfr IAP_ADDRH = 0xE3;
- sfr IAP_ADDRL = 0xE4;
- sfr IAP_CMD = 0xE5;
- sfr IAP_TRIG = 0xE6;
- sfr IAP_CONTR = 0xE7;
- /********************************************************************
- IO口定義
- ********************************************************************/
- uchar s1=0;
- bit write=0;
- uint txian,dxian;
- uchar txian1,txian2,txian3;
- uchar dxian1,dxian2,dxian3;
- uchar T0RH=0,T0RL=0;
- uint ms=0;
- uchar A1,A2,A3;
- uchar B1,B2,B3;
- uchar C1,C2,C3;
- uchar D1,D2,D3;
- bit bz1=0;
- sbit P10=P1^0;//數(shù)碼管段
- sbit P11=P1^1;//數(shù)碼管段
- sbit P12=P1^2;//數(shù)碼管段
- sbit P13=P1^3;//數(shù)碼管段
- sbit P14=P1^4;//數(shù)碼管段
- sbit P15=P1^5;//數(shù)碼管段
- sbit P16=P1^6;//數(shù)碼管段
- sbit P17=P3^4;//信號(hào)輸入
- sbit P30=P3^0;//按鍵輸入
- sbit P31=P3^1;//按鍵輸入
- sbit P32=P3^2;//數(shù)碼管位
- sbit P33=P3^3;//數(shù)碼管位
- sbit P35=P3^5;//數(shù)碼管位
- sbit P37=P3^7; //繼電器輸出
- bit ts=1;
- uchar sj=0;
- bit dsbz=0;
- uchar jishu=0;
- bit sjsn=0;
- /********************************************************************
- 定義 ISP/IAP/EEPROM 命令
- *********************************************************************/
- #define CMD_IDLE 0
- #define CMD_READ 1
- #define CMD_PROGRAM 2
- #define CMD_ERASE 3
- #define ENABLE_IAP 0x83//SYSCLK<12MH
- #define IAP_ADDRESS 0x0000 //存儲(chǔ)地址
- /********************************************************************
- 禁用 ISP/IAP/EEPROM functionmake 單片機(jī) 在 一 安全 狀態(tài)
- *********************************************************************/
- void IapIdle()
- {
- IAP_CONTR = 0; //
- IAP_CMD = 0; //
- IAP_TRIG = 0; //
- IAP_ADDRH = 0x80; //
- IAP_ADDRL = 0; //
- }
- /********************************************************************
- 讀數(shù)據(jù)
- *********************************************************************/
- uchar IapReadByte(uint addr)
- {
- uchar dat;
- IAP_CONTR = ENABLE_IAP;
- IAP_CMD = CMD_READ;
- IAP_ADDRL = addr;
- IAP_ADDRH = addr >> 8;
- IAP_TRIG = 0x46;
- IAP_TRIG = 0xb9;
- _nop_();
- dat = IAP_DATA;
- IapIdle();
- return dat;
- }
- /********************************************************************
- 寫數(shù)據(jù)
- *********************************************************************/
- void IapProgramByte(uint addr, uchar dat)
- {
- IAP_CONTR = ENABLE_IAP;
- IAP_CMD = CMD_PROGRAM;
- IAP_ADDRL = addr;
- IAP_ADDRH = addr >> 8;
- IAP_DATA = dat;
- IAP_TRIG = 0x46;
- IAP_TRIG = 0xb9;
- _nop_();
- IapIdle();
- }
- /********************************************************************
- 擦除數(shù)據(jù)
- *********************************************************************/
- void IapEraseSector(uint addr)
- {
- IAP_CONTR = ENABLE_IAP;
- IAP_CMD = CMD_ERASE;
- IAP_ADDRL = addr;
- IAP_ADDRH = addr >> 8;
- IAP_TRIG = 0x46;
- IAP_TRIG = 0xb9;
- _nop_();
- IapIdle();
- }
- /********************************************************************
- 初始定義
- *********************************************************************/
- code uchar seg7code[10]={0x7B,0x09,0x75,0x5D,0x0F,0x5E,0x7E,0x49,0x7F,0x5F}; //顯示段碼 數(shù)碼管字跟
- /********************************************************************
- 延時(shí)函數(shù)
- *********************************************************************/
- void delay(uchar t)
- {
- uchar i,j;
- for(i=0;i<t;i++)
- {
- for(j=130;j>0;j--);
- { ;
- }
- }
- }
- /********************************************************************
- 顯示函數(shù) 接通時(shí)間
- *********************************************************************/
- //void tong(uchar tdate) //顯示函數(shù)
- void tong() //顯示函數(shù)
- {
- C1=txian/100;
- C2=txian%100/10;
- C3=txian%10;
- P32=1;P33=1;P35=1;
- P1=seg7code[C1];
- P32=0;P33=1;P35=1;
- delay(80);
- P32=1;P33=1;P35=1;
- P1=seg7code[C2];
- P32=1;P33=0;P35=1;
- delay(80);
- P32=1;P33=1;P35=1;
- P1=seg7code[C3];
- P32=1;P33=1;P35=0;
- delay(80);
-
- }
-
- void key()
- {
- if(P30==0)
- {
- delay(80);
- if(P30==0)
- {
- s1++;
- if(s1>=5){s1=0;}
- while(!P30);
- }
- }}
- //定時(shí)器0初始化
- void t0_init(unsigned char ms0) //ms0最大71
- {
- /***********************************************
- 一個(gè)機(jī)器周期=12*時(shí)鐘周期。
- 11059200為時(shí)鐘周期,一共為11059200/12=921600,就是每秒為921600Hz,
- 八位定時(shí)器 最大計(jì)時(shí) 0.2777778ms
- 十六位定時(shí)器最大計(jì)時(shí) 71.111111ms
- 11.0592MHz除12為921600Hz,就是一秒921600次機(jī)器周期,10ms=9216次機(jī)器周期。
- 65536-9216=56320(dc00)
- TH0=0xdc,TL0=0x00
- ***********************************************/
- long tmp; //臨時(shí)變量
- tmp = 11059200 / 12;
- tmp = (tmp * ms0) / 1000;
- tmp = 65536 - tmp;
- tmp = tmp + 3;
- T0RH = (unsigned char)(tmp>>8);
- T0RL = (unsigned char)tmp;
- TMOD &=0XF0;
- TMOD |=0X01; //方式一 一共四種方式 GATE0 C/T0 M0_1 M0_0 C/T0選擇時(shí)鐘計(jì)數(shù)還是外部計(jì)數(shù) 方式0是十三位定時(shí)器 ,方式1是十六位定時(shí)器,方式2是八位自動(dòng) 方式4是兩個(gè)八位
- TH0=T0RH;
- TL0=T0RL;
- ET0=1; //使能T0中斷
- EA=1;
- TR0=1;
- }
- /********************************************************************
- 主函數(shù)
- *********************************************************************/
- void main()
- {
- unsigned char flag=1,flag2=0;;
- txian1 = IapReadByte(0x01); //讀取0x01中的數(shù)據(jù) 并附給ca
- txian2 = IapReadByte(0x02); //讀取0x01中的數(shù)據(jù) 并附給ca
- txian3 = IapReadByte(0x03); //讀取0x01中的數(shù)據(jù) 并附給ca
- t0_init(10);
- P1M0=0X00;P1M1=0Xff;
- txian=txian1*100+txian2*10+txian3;
- P37=1;
- while(1)
- {
- key();
- if((P17==0)&&(bz1==0)){delay(80);if(P17==0){ts=0;bz1=1;ms=0;P37=0;sjsn=1;dsbz=0;}}
- if((P17==1)&&(bz1==1)){bz1=0;dsbz=0;jishu=0;}
- }
- }
- void t0(void) interrupt 1 using 0 //定時(shí)中斷服務(wù)函數(shù)
- {
- TH0=T0RH;
- TL0=T0RL;
- ms++;
-
- switch (s1){
- case 0: tong();break;
- case 1:ts=1;P1=seg7code[A1]; P32=0;P33=1;P35=1; if(P31==0){A1++;if(A1>9)A1=0;while(!P31);}break;
- case 2: P1=seg7code[A2]; P32=1;P33=0;P35=1; if(P31==0){A2++;if(A2>9)A2=0;while(!P31);}break;
- case 3: P1=seg7code[A3]; P32=1;P33=1;P35=0; if(P31==0){A3++;if(A3>9)A3=0;while(!P31);}break;
- case 4: txian1=A1;txian2=A2;txian3=A3;txian=txian1*100+txian2*10+txian3;write=1;break;
- default: break;
- }
- if(ms==40) //ms=40是1秒
- {
- ms=0;
- if(write==1)
- {
- write=0;
- IapEraseSector(0);
- IapProgramByte(0x01,txian1);
- IapProgramByte(0x02,txian2);
- IapProgramByte(0x03,txian3);
- }
- if((dsbz==1)&&(jishu<5)){sj++;if(sj==20){bz1=0;sj=0;dsbz=0;jishu++;}}
- if((sjsn==1)&&(dsbz==0)){txian--;}
- if(txian==0)
- {
- P37=1;
- sjsn=0;
- dsbz=1;
- txian=txian1*100+txian2*10+txian3;
- }
- }
- }
復(fù)制代碼
2.jpg (134.52 KB, 下載次數(shù): 34)
下載附件
2018-2-25 02:08 上傳
0.png (55.08 KB, 下載次數(shù): 30)
下載附件
2018-2-25 02:09 上傳
全部資料51hei下載地址:
配套程序.rar
(2.92 MB, 下載次數(shù): 60)
2018-2-24 13:52 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
GYJ-0072_帶觸發(fā)端的延時(shí)模塊原理圖.pdf
(352.25 KB, 下載次數(shù): 32)
2018-2-24 13:53 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
GYJ-0072_帶觸發(fā)端的延時(shí)模塊.pdf
(352.25 KB, 下載次數(shù): 30)
2018-2-24 13:53 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: 萬惡魔羯 時(shí)間: 2019-8-24 01:11
看看,謝謝了
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |