ADS-B机场场面监视技术研究对机场场面监视中ADS-B系统的应用方式方法进行了分析了论证。
上传时间: 2017-06-13
上传用户:mhwang1973
/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定义 sfr WDT_CONTR = 0xe1;//stc2051的看门狗?????? /**********全局常量************/ //写卡的命令 #define write_command0 0//写密码 #define write_command1 1//写配置字 #define write_command2 2//密码写数据 #define write_command3 3//唤醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //读卡的时间参数us #define ts_min 250//270*11.0592/12=249//取近似的整数 #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10调整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中断处理:采用查询的方法读卡时关所有中断****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI总线 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//测试绿灯 sbit led_light1 = P1^5;//测试红灯 sbit led_light_ok = P1^1;//读卡成功标志 sbit fengmingqi = P1^5; /***********全局变量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密码 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存储卡上用户数据(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收数组ram uchar command; //第一个命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //缓存定时值,因用同一个定时器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //缓存定时值,因用同一个定时器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函数原型*****************/ //读写操作 void f_readcard(void);//全部读出1~7 AOR唤醒 void f_writecard(uchar x);//根据命令写不同的内容和操作 void f_clearpassword(void);//清除密码 void f_changepassword(void);//修改密码 //功能子函数 void write_password(uchar data *data p);//写初始密码或数据 void write_block(uchar x,uchar data *data p);//不能用通用指针 void write_bit(bit x);//写位 /*子函数区*****************************************************/ void delay_2(uint x) //延时,时间x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能频繁的复位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允许接收 //SCON =0x50; //01010000B:10位异步收发,波特率可变,SM2=0不用接收到有效停止位才RI=1, //REN=1允许接收 TMOD = 0x21; //定时器1 定时方式2(8位),定时器0 定时方式1(16位) TCON = 0x40; //设定时器1 允许开始计时(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //启动定时器 WDT_CONTR = 0x3c;//使能看门狗 p_U2270B_Standby = 0;//单电源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//读卡 { EA = 0;//全关,防止影响跳变的定时器计时 WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用唤醒功能来防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作码读0页 write_bit(0); write_password(&bankdata[24]);//密码block7 p_U2270B_CFE =1 ;// delay_2(516);//编程及确认时间5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一个稳定的低电平?超时判断? while(!p_U2270B_OutPut);//等待上升沿的到来同步信号检测1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定时器晚启动10个周期 //同步头 if((324 < a.W) && (a.W < 353)) ;//检测同步信号1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //读0~7块的数据 for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8个位 { //等待下降沿的到来 while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再赋值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//读卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//写卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//写密码:初始化密码 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_bit(0);//写锁定位0 for(i = 0;i < 35;i++) { write_bit(1);//写数据位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//测试使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密码存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡参数:初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_bit(0);//写锁定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密码写数据 { uchar data*data p; p = &bankdata[24]; write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_password(p);//发口令 write_bit(0);//写锁定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//写数据 } else if(x == write_command3)//aor //唤醒 { //cominceptbuff[1]操作码10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密码 p_U2270B_CFE = 1;//此时数据不停的循环传出 } else //停止操作码 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密码 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密码 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作码10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//发原密码 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//锁定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//写新配置参数:pwd=0 //密码无效:即清除密码 DATA = 0x00;//停止操作码00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密码 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密码 DATA = 0x80;//操作码10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//发原密码 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//锁定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//写新密码 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密码存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作码00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函数***********************************/ void write_bit(bit x)//写一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延时448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26写1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26写0 } } /*******************写一个block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0数据 { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //读卡 f_writecard(command1); //写卡 f_clearpassword(); //清除密码 f_changepassword(); //修改密码 } }
标签: 12345
上传时间: 2017-10-20
上传用户:my_lcs
工程制图B教学课件,内容还不错,有需要的下载,看看
标签: 教学资料
上传时间: 2018-03-01
上传用户:lgdxy
刚刚上传的是工程B习题答案,有需要的可下载看看
标签: 工程制图
上传时间: 2018-03-01
上传用户:lgdxy
代码中包含两种算法的代码:crc[15:0]=1+x^2+x^15+x^16; crc[4:0]=1+x^2+x^5
上传时间: 2018-04-07
上传用户:kang30
VK元泰原厂LED的面板驱动产品主要应用于段式和点阵式LED的显示驱动包括但不局限以下产品: 仪表显示、大小家电、标志牌、健身器材显示面板等,同时涉及显示器控制器、双斜率与显示驱动ADC及显示器驱动计数器相关产品,产品具备显示、背光、按键扫描、单线、两线及三线通讯等不同特色。LED面板显示驱动控制芯片/段式和点阵式LED显示驱动专家。样品免费,大量原装现货!欢迎加Q索取产品PDF资料。 VK元泰原厂LED显示屏驱动主要大量应用于以下这些产品简介: 1:VCR、VCD、DVD 及家庭影院等产品的显示屏驱动。 2:电磁炉、微波炉、冰箱、空调 、家庭影院等产品的高段位显示屏驱动。 3:电子产品LED显示屏驱动,电子秤及小家电产品的显示屏驱动。 4:机顶盒、各种家电设备、智能电表等数码管、多段位显示屏驱动 VK1628概述 VK1628 是 1/5~1/8 占空比的 LED 显示控制驱动电路。由 10 根段输出、4 根栅输出、3 根段/栅输出,1 个显示存储器、控制电路、键扫描电路组成了一个高可靠性的单片机外围 LED 驱动电路。串行数据通过4线串行接口输入到 VK1628采用 SOP28 的封装形式。 VK1629A概述 VK1629A 是LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数字接口、数据锁存器、LED 高压驱动等电路。主要应用于冰箱、空调、家庭影院等产品的高段位显示屏驱动。 VK1629B概述 VK1629B 是 LED(发光二极管显示器)驱动控制专用电路,内部集成有 MCU 数字接口、数据锁存器、键盘扫描、LED 高压驱动等电路。主要应用于冰箱、空调、家庭影院等产品的高段位显示屏驱动。 VK1629C 概述 VK1629C 是带键盘扫描接口的 LED(发光二极管显示器)驱动控制专用电路,内部 集成有 MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。主要应用于冰箱、空调、家庭影院等产品的高段位显示屏驱动。 VK1629D 概述 VK1629D 是 LED(发光二极管显示器)驱动控制专用电路,内部集成有 MCU 数字接口、数据锁存器、LED 高压驱动等电路。主要应用于冰箱、空调、家庭影院等产品的高段位显示屏驱动。 VK1640 概述 VK1640 是一款 LED(发光二极管显示器)驱动控制专用电路,内部集成有 MCU 数字接口、数据锁存器、LED 高压驱动。本产品采用 CMOS 工艺,主要应用于小型 LED 显示屏驱动。 VK1640B概述 ----- SSOP24 超小封装体积方便开发设计,更低成本单价! VK1640B 是一款 LED(发光二极管显示器)驱动控制专用电路,内部集成有 MCU 数字接口、 数据锁存器、LED 高压驱动。本产品采用 CMOS 工艺,主要应用于小型 LED 显示屏驱动。 VK1650概述 VK1650 是一种带键盘扫描电路接口的 LED 驱动控制专用电路。内部集成有 MCU 输入输出控制数字接口、数据锁存器、LED 驱动、键盘扫描、辉度调节等电路。本芯片性能稳定、质量可靠、抗干扰能力强,可适应于 24 小时长期连续工作的应用场合。 VK1651概述 VK1651 是一种带键盘扫描接口的 LED(发光二极管显示器)驱动控制专用电路,内部集 成有 MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良,质量可靠。主要应用于电磁炉。微波炉及小家电产品的显示屏驱动。 VK1668概述 VK1668 是 1/5~1/8 占空比的 LED 显示控制驱动电路。由 10 根段输出、4 根栅输出、3 根段/栅输出,1 个显示存储器、控制电路、键扫描电路组成了一个高可靠性的单片机外围 LED 驱动电路。串行数据通过4线串行接口输入到 VK1668采用 SOP24 的封装形式。 VK6932概述 VK6932 是一款 LED(发光二极管显示器)驱动控制专用电路,内部集成有 MCU 数字接口、数据锁存器、LED 高压驱动。本产品采用 CMOS 工艺,主要应用于 LED 显示屏驱动。 VK16K33 概述 --- RAM映射16*8 LED控制器驱动器,带按键控制 VK16K33是一个内存映射和多功能LED控制器驱动程序。更大显示设备中的段是128个模式(16个SEG 和 8个COM),矩阵键为13*3(更大值)。扫描路。VK16K33的软件配置特点使其适用于多个LED应用包括LED模块和显示子系统。VK16K33与大多数微控制器兼容,并且通过双线双向I2c总线进行通信。 内存映射的LED控制器及驱动器 VK1628 --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:70/52 共阴驱动:10段7位/13段4位 共阳驱动:7段10位 按键:10x2 封装SOP28 VK1629 --- 通讯接口:STB/CLK/DIN/DOUT 电源电压:5V(4.5~5.5V) 驱动点阵:128 共阴驱动:16段8位 共阳驱动:8段16位 按键:8x4 封装QFP44 VK1629A --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:128 共阴驱动:16段8位 共阳驱动:8段16位 按键:--- 封装SOP32 VK1629B --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:112 共阴驱动:14段8位 共阳驱动:8段14位 按键:8x2 封装SOP32 VK1629C --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:120 共阴驱动:15段8位 共阳驱动:8段15位 按键:8x1 封装SOP32 VK1629D --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:96 共阴驱动:12段8位 共阳驱动:8段12位 按键:8x4 封装SOP32 VK1640 --- 通讯接口: CLK/DIN 电源电压:5V(4.5~5.5V) 驱动点阵:128 共阴驱动:8段16位 共阳驱动:16段8位 按键:--- 封装SOP28 VK1640B -- 通讯接口: CLK/DIN 电源电压:5V(4.5~5.5V) 驱动点阵:96 共阴驱动:8段12位 共阳驱动:12段8位(封装小,价格低)封装SSOP24 VK1650 --- 通讯接口: SCL/SDA 电源电压:5V(3.0~5.5V) 驱动点阵:8x16 共阴驱动:8段4位 共阳驱动:4段8位 按键:7x4 封装SOP16/DIP16 VK1651 --- 通讯接口: SCL/SDA 电源电压:5V(3.0~5.5V) 驱动点阵:8x14 共阴驱动:7段4位 共阳驱动:4段7位 按键:7x4 封装SOP16/DIP16 VK1668 ---通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:70/52 共阴驱动:10段7位/13段4位 共阳驱动:7段10位 按键:10x2 封装SOP24 VK6932 --- 通讯接口:STB/CLK/DIN 电源电压:5V(4.5~5.5V) 驱动点阵:128 共阴驱动:8段16位17.5/140mA 共阳驱动:16段8位 按键:--- 封装SOP32 VK16K33 --- 通讯接口:SCL/SDA 电源电压:5V(4.5V~5.5V) 驱动点阵:128/96/64 共阴驱动:16段8位/12段8位/8段8位 共阳驱动:8段16位/8段12位/8段8位 按键:13x3 10x3 8x3 封装SOP20/SOP24/SOP28 联 系 人:许先生 联 系 QQ:191 888 5898 联系手机:188 9858 2398
标签: 1628 1629 1640 1651 1650 LED VK 面板 芯片 版本
上传时间: 2019-02-16
上传用户:szqxw1688
用于开发单片机的!!!超级单片机开发工具!!! 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。 详细说明: 1、RT转换:支持两种电路,8/10位转换精度,生成C/ASM源代码格式的数据,可手工输入数据或从文件中读取,输入的数据可以保存到文件中。文件格式为逗号分隔符: 温度,阻值 2、LED编码信息:可以支持 7段/14段/16段 LED,支持 C/ASM 语法,可生成 4/8 位编码,4位编码主要用于某些 LCD 驱动芯片。其中 7 段码包括:0 -- F (Hex) 14 段码包括:A -- Z, 0 -- F 16 段码包括:A -- Z, 0 -- F 编码方案可以保存供将来使用。 使用方法请点帮助。 3、色环电阻计算器功能。 4、HEX/BIN 文件相互转换; HEX/BIN 转换成 C/ASM 源代码格式,适用于eeprom数据等处理。 加入CRC校验码生成功能。其中生成BIN文件时自动生成校验码,Get CRC 可生成任意文件的CRC码。 另外还有相关知识、资料等。 5、串口调试具有 a. 基本通讯功能; b. 数据分析功能,可自定义通讯数据中的变量,包括变量名、变量类型(长度),显示方式等; 内存映射功能中自定义变量的起始地址即内存起始地址,可自定义; 由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本); 可自定义内存块的起始/结束标志; 历史数据保存功能; c. 交互式通讯, 主发时可自定义多命令自动循环发送; 从发时可定义接收到相应命令后的应答数据并自动应答; 6、串口监视功能 目前具有本功能的多为共享软件,本软件中没有任何限制。 实时监视串口操作而不占用串口资源,可保存历史数据,2k下测试通过,98下使用捕捉时可能会有点问题,没有进行调试。 并口监视应该可以使用,没有调试。 各种工具
标签: 单片机
上传时间: 2019-05-27
上传用户:小爱心早餐
Py3爬取B站视频弹幕。。。。。。。。。。。。。
上传时间: 2019-12-17
上传用户:wine
1998年建模B题,内含解题方法解题步骤。
上传时间: 2020-05-02
上传用户:isomerrrr
全国大学生电子设计竞赛2020年TI杯模拟电子系统设计专题邀请赛多种幅度调制信号发生电路(B 题)
上传时间: 2021-07-08
上传用户:st-15180703380