资源简介
B码对时资料,多个资料,很有用的,大家共同学习
代码片段和文件信息
#include
#define UINT8 unsigned char
#define UINT16 unsigned int
sbit B_IN=P4^3;
sbit B_SS=P1^7;
UINT8 Bcode[89]i=0; //RAM for the coment decoded form IRIG-B100 in 1s
UINT8 sec=0min=0hour=0; //clock time to display in segment
UINT8 ppn;
bit flag=0pr=0; //B-code valid flagif B-code‘s exist is ascerstainedthen set
UINT8 code COM[6]={0x010x020x040x080x100x20}; //段选码-时分秒
UINT8 code SEG[10]={0x030x9f0x250x0d0x990x490x410x1f0x010x09}; //0-9的字型码
void InitSYS()
{
IP=0x80;
// AUXR=0x11;
// BRT=0xfc;
// SCON=0x50;
TMOD=0x11; //both time0 time1 as 16-bit timer
TH0=0x00;
TL0=0x00;
TH1=0xf8;
TL1=0xcd; //2ms
TR1=1; //enable timer1 2ms interrupt
IT0=1; //INT0 posedge trig
// ES=1;
EA=1;
}
void InitPCA()
{
AUXR1=0x40; //P1.3 transist to P4.3
CCON=0x00; //stop timerclear all flag
CMOD=0x00; //Fosc/12disable timer overflow
CCAPM1=0x31; //PCA module 1 capture as a transtion occours
CL=0;
CH=0;
CR=1; //enable all interrupt
}
/*void send(UINT8 serial_data)
{
SBUF=serial_data;
while(!TI) ;
TI=0;
}
*/
void INT0_int() interrupt 0 //clock generated by 1pps from B-code
{
sec++;
if(sec>=60) {sec=0;min++;}
if(min>=60) {min=0;hour++;}
if(hour>=24){hour=0;}
}
void Timer1_int() interrupt 3
{
UINT8 j; //0-5just for scan
TH1=0xf8;
TL1=0xcd; //2ms
P2=COM[j];
switch(j)
{
case 0: P0=SEG[sec/10]; break;
case 1: P0=SEG[sec%10]; break;
case 2: P0=SEG[min/10]; break;
case 3: P0=SEG[min%10]; break;
case 4: P0=SEG[hour/10];break;
case 5: P0=SEG[hour%10];break;
default: break;
}
j++;
if(j>=6) j=0;
}
void PCA_int() interrupt 7
{
CCF1=0;
if(B_IN) //posedge
{
TR0=1;
}
if(!B_IN) //negedgeIRIG-B decoder and storage
{
TR0=0; //stop timer0.
if((TH0>0x25)&&(TH0<0x27)) //8ms
{
p=2;
if(i==0) B_SS=0;
if(pn==2) {i=0;pr=1;}
}
else if((TH0>0x17)&&(TH0<0x19)) p=1; //5ms
else if((TH0>0x08)&&(TH0<0x10)) p=0; //2ms
if((p==1)||(p==0))
{
Bcode[i]=p;
i++;
}
if(pr)
{
if(i==10) B_SS=1;
if(i==30) flag=1; //IRIG-B code existsthen set the flagonly need the first clock timeso the others are passed by
if(i==88) pr=0; //precede set 11s is overthe new pps will begin
}
if(i>=89) i=0;
pn=p;
TH0=0x00;
TL0=0x00;
}
/*
if((TH0>0x25)&&(TH0<0x27)) //8ms
{
p=2;
if(pn==2) {i=0;pr=1;}
}
else if(TH0<0x20)
{
p=1;
Bcode[i]=TH0;
i++;
}
if(pr)
{
if(i==10) B_SS=1;
if(i==30) flag=1; //IRIG-B code existsthen set the flagonly need the first clock timeso the others are passed by
if(i==88) {B_SS=0;pr=0;} //precede set 11s is overthe new pps will begin
}
pn=p;
if(p==1) {send(i);send(Bcode[i]);}
TH0=0x00;
TL0=0x00;
}
*/
}
void main()
{
InitSYS();
InitPCA();
B_SS=1;
while(!flag
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 649126 2012-06-29 08:57 B码对时\+B+码对时.pdf
文件 3579 2011-08-23 13:47 B码对时\B-decoder1.c
文件 96768 2012-06-29 09:01 B码对时\FPGA_CPLD数字时钟的实现(原代码).doc
文件 330070 2009-12-29 11:08 B码对时\IRIG Serial Time Code Formats.pdf
文件 74657 2009-12-22 16:42 B码对时\IRIG-B.pdf
文件 200192 2012-06-28 16:33 B码对时\IRIG-B格式时间码解码接口卡电路设计.doc
文件 349696 2012-06-29 08:59 B码对时\IRIG-B码校时、对时_DCS、PLC对时.doc
文件 742194 2012-06-28 16:50 B码对时\IRIG-B解码芯片说明书(v1.12).pdf
文件 145207 2012-06-29 09:02 B码对时\在变电站智能设备中实现B码对时.pdf
文件 144000 2012-06-29 09:01 B码对时\基于CPLD的IRIG—B码解码器的设计.pdf
目录 0 2012-07-04 10:36 B码对时
----------- --------- ---------- ----- ----
2735489 11
相关资源
- 110kV变电站全套竣工图
- 简单变电站自动化系统
- 组态王变电站演程653
- 发电厂及变电站的二次回路.pdf
- 变电站操作票系统
- 智能变电站一体化监控系统设备及功
- IRIG-B码对时,项目的源程序及当时的
- 遗传算法在变电站选址中的应用
- 组态王 变电站演程
- 110kV/10kV变电站电气一次部分设计内含
- 南方电网变电站视频及环境监控系统
- 南瑞继保SCD配置工具
- DLT 860 变电站通信网络和系统整理完全
- 南瑞继保的SCD配置工具2016年12月版本
- IEC-61850标准[中文.完整版]+服务器软件
- 数字化变电站应用技术高翔
- 变电站指针式仪表目标检测数据集
- IEC61850测试工具
- 变电站巡检机器人
- 变电站指针式仪表数据集
- 变电站门禁系统解决方案(2015年最新
- 变电站仿真FLASH.rar
- 110/6kV变电站电气部分的设计
- [电力系统] 110、35、10kV变电站及线路
- Q/GDW 679-2011《智能变电站一体化监控
- 10kv变电站主接线图
- 110KV变电站的设计毕业论文
- 仿真变电站
- 智能变电站SCD文件
- 调监〔2014〕82号(国调中心关于增补
评论
共有 条评论