基于对处于偏远地区的光伏发电基站电源运行情况进行远程控制和检测的目的,本系统设计了具有针对性的监测系统,基站电源发电的电压、电流值每5 s钟采集一次,通过GPRS模块无线高速传输到总站计算机进行检测和控制。进行串口通信实时数据采集、存储、查询,并完成对上位机串行口接收数据设置、上位机对下位机工作情况的检测和系统功能的设定。探讨了GPRS模块进行数据传输的过程,MC35i驱动及AT指令的编写和数据传输协议的制定。在大量的实验的基础上,采集到日光强度改变时基站电源运行情况的数据,为提高太阳能电池的利用率提供了实践依据。
上传时间: 2013-11-06
上传用户:破晓sunshine
1.有三根杆子A,B,C。A杆上有若干碟子 2.每次移动一块碟子,小的只能叠在大的上面 3.把所有碟子从A杆全部移到C杆上 经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片: 如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C 此外,汉诺塔问题也是程序设计中的经典递归问题
上传时间: 2016-07-25
上传用户:gxrui1991
溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級!!\n") else if (a>=80) printf("73分=B等級!!\n") else if (a>=70) printf("73分=C等級!!\n") else if (a>=60) printf("73分=D等級!!\n") else if (a<60) printf("73分=E等級!!\n") } { if (b>=90) printf("b=A等級!!\n") else if (b>=80) printf("85分=B等級!!\n") else if (b>=70) printf("85分=C等級!!\n") else if (b>=60) printf("85分=D等級!!\n") else if (b<60) printf("85分=E等級!!\n") } { if (c>=90) printf("c=A等級!!\n") else if (c>=80) printf("66分=B等級!!\n") else if (c>=70) printf("66分=C等級!!\n") else if (c>=60) printf("66分=D等級!!\n") else if (c<60) printf("66分=E等級!!\n") } system("pause") return 0 }
上传时间: 2014-11-10
上传用户:wpwpwlxwlx
溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級!!\n") else if (a>=80) printf("73分=B等級!!\n") else if (a>=70) printf("73分=C等級!!\n") else if (a>=60) printf("73分=D等級!!\n") else if (a<60) printf("73分=E等級!!\n") } { if (b>=90) printf("b=A等級!!\n") else if (b>=80) printf("85分=B等級!!\n") else if (b>=70) printf("85分=C等級!!\n") else if (b>=60) printf("85分=D等級!!\n") else if (b<60) printf("85分=E等級!!\n") } { if (c>=90) printf("c=A等級!!\n") else if (c>=80) printf("66分=B等級!!\n") else if (c>=70) printf("66分=C等級!!\n") else if (c>=60) printf("66分=D等級!!\n") else if (c<60) printf("66分=E等級!!\n") } system("pause") return 0 }
上传时间: 2013-12-12
上传用户:亚亚娟娟123
给定两个集合A、B,集合内的任一元素x满足1 ≤ x ≤ 109,并且每个集合的元素个数不大于105。我们希望求出A、B之间的关系。 任 务 :给定两个集合的描述,判断它们满足下列关系的哪一种: A是B的一个真子集,输出“A is a proper subset of B” B是A的一个真子集,输出“B is a proper subset of A” A和B是同一个集合,输出“A equals B” A和B的交集为空,输出“A and B are disjoint” 上述情况都不是,输出“I m confused!”
标签:
上传时间: 2017-03-15
上传用户:yulg
PIC16C63单片机UART通信——A机读取时钟芯片DS1302获得当前时间,通过UART通信传给B机,B机使用LCD1602显示当前时间
上传时间: 2013-11-30
上传用户:shanml
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
MSP430系列flash型超低功耗16位单片机MSP430系列单片机在超低功耗和功能集成等方面有明显的特点。该系列单片机自问世以来,颇受用户关注。在2000年该系列单片机又出现了几个FLASH型的成员,它们除了仍然具备适合应用在自动信号采集系统、电池供电便携式装置、超长时间连续工作的设备等领域的特点外,更具有开发方便、可以现场编程等优点。这些技术特点正是应用工程师特别感兴趣的。《MSP430系列FLASH型超低功耗16位单片机》对该系列单片机的FLASH型成员的原理、结构、内部各功能模块及开发方法与工具作详细介绍。MSP430系列FLASH型超低功耗16位单片机 目录 第1章 引 论1.1 MSP430系列单片机1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 结构概述2.1 引 言2.2 CPU2.3 程序存储器2.4 数据存储器2.5 运行控制2.6 外围模块2.7 振荡器与时钟发生器第3章 系统复位、中断及工作模式3.1 系统复位和初始化3.1.1 引 言3.1.2 系统复位后的设备初始化3.2 中断系统结构3.3 MSP430 中断优先级3.3.1 中断操作--复位/NMI3.3.2 中断操作--振荡器失效控制3.4 中断处理 3.4.1 SFR中的中断控制位3.4.2 中断向量地址3.4.3 外部中断3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗应用的要点23第4章 存储空间4.1 引 言4.2 存储器中的数据4.3 片内ROM组织4.3.1 ROM 表的处理4.3.2 计算分支跳转和子程序调用4.4 RAM 和外围模块组织4.4.1 RAM4.4.2 外围模块--地址定位4.4.3 外围模块--SFR4.5 FLASH存储器4.5.1 FLASH存储器的组织4.5.2 FALSH存储器的数据结构4.5.3 FLASH存储器的控制寄存器4.5.4 FLASH存储器的安全键值与中断4.5.5 经JTAG接口访问FLASH存储器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序计数器PC5.1.2 系统堆栈指针SP5.1.3 状态寄存器SR5.1.4 常数发生寄存器CG1和CG25.2 寻址模式5.2.1 寄存器模式5.2.2 变址模式5.2.3 符号模式5.2.4 绝对模式5.2.5 间接模式5.2.6 间接增量模式5.2.7 立即模式5.2.8 指令的时钟周期与长度5.3 指令组概述5.3.1 双操作数指令5.3.2 单操作数指令5.3.3 条件跳转5.3.4 模拟指令的简短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 无符号数相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符号数相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 无符号数乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符号数乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的软件限制6.4.1 寻址模式6.4.2 中断程序6.4.3 MACS第7章 基础时钟模块7.1 基础时钟模块7.2 LFXT1与XT27.2.1 LFXT1振荡器7.2.2 XT2振荡器7.2.3 振荡器失效检测7.2.4 XT振荡器失效时的DCO7.3 DCO振荡器7.3.1 DCO振荡器的特性7.3.2 DCO调整器7.4 时钟与运行模式7.4.1 由PUC启动7.4.2 基础时钟调整7.4.3 用于低功耗的基础时钟特性7.4.4 选择晶振产生MCLK7.4.5 时钟信号的同步7.5 基础时钟模块控制寄存器7.5.1 DCO时钟频率控制7.5.2 振荡器与时钟控制寄存器7.5.3 SFR控制位第8章 输入输出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中断控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口逻辑第9章 看门狗定时器WDT9.1 看门狗定时器9.2 WDT寄存器9.3 WDT中断控制功能9.4 WDT操作第10章 16位定时器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定时器模式控制10.2.2 时钟源选择和分频10.2.3 定时器启动10.3 定时器模式10.3.1 停止模式10.3.2 增计数模式10.3.3 连续模式10.3.4 增/减计数模式10.4 捕获/比较模块10.4.1 捕获模式10.4.2 比较模式10.5 输出单元10.5.1 输出模式10.5.2 输出控制模块10.5.3 输出举例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕获/比较控制寄存器CCTLx10.6.4 Timer_A中断向量寄存器10.7 Timer_A的UART应用 第11章 16位定时器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定时器长度11.2.2 定时器模式控制11.2.3 时钟源选择和分频11.2.4 定时器启动11.3 定时器模式11.3.1 停止模式11.3.2 增计数模式11.3.3 连续模式11.3.4 增/减计数模式11.4 捕获/比较模块11.4.1 捕获模式11.4.2 比较模式11.5 输出单元11.5.1 输出模式11.5.2 输出控制模块11.5.3 输出举例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕获/比较控制寄存器CCTLx11.6.4 Timer_B中断向量寄存器第12章 USART通信模块的UART功能12.1 异步模式12.1.1 异步帧格式12.1.2 异步通信的波特率发生器12.1.3 异步通信格式12.1.4 线路空闲多机模式12.1.5 地址位多机通信格式12.2 中断和中断允许12.2.1 USART接收允许12.2.2 USART发送允许12.2.3 USART接收中断操作12.2.4 USART发送中断操作12.3 控制和状态寄存器12.3.1 USART控制寄存器UCTL12.3.2 发送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率选择和调整控制寄存器12.3.5 USART接收数据缓存URXBUF12.3.6 USART发送数据缓存UTXBUF12.4 UART模式,低功耗模式应用特性12.4.1 由UART帧启动接收操作12.4.2 时钟频率的充分利用与UART的波特率12.4.3 多处理机模式对节约MSP430资源的支持12.5 波特率计算 第13章 USART通信模块的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的从模式13.2 中断与控制功能 13.2.1 USART接收/发送允许位及接收操作13.2.2 USART接收/发送允许位及发送操作13.2.3 USART接收中断操作13.2.4 USART发送中断操作13.3 控制与状态寄存器13.3.1 USART控制寄存器13.3.2 发送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率选择和调制控制寄存器13.3.5 USART接收数据缓存URXBUF13.3.6 USART发送数据缓存UTXBUF第14章 比较器Comparator_A14.1 概 述14.2 比较器A原理14.2.1 输入模拟开关14.2.2 输入多路切换14.2.3 比较器14.2.4 输出滤波器14.2.5 参考电平发生器14.2.6 比较器A中断电路14.3 比较器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比较器A应用14.4.1 模拟信号在数字端口的输入14.4.2 比较器A测量电阻元件14.4.3 两个独立电阻元件的测量系统14.4.4 比较器A检测电流或电压14.4.5 比较器A测量电流或电压14.4.6 测量比较器A的偏压14.4.7 比较器A的偏压补偿14.4.8 增加比较器A的回差第15章 模数转换器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC内核15.2.2 参考电平15.3 模拟输入与多路切换15.3.1 模拟多路切换15.3.2 输入信号15.3.3 热敏二极管的使用15.4 转换存储15.5 转换模式15.5.1 单通道单次转换模式15.5.2 序列通道单次转换模式15.5.3 单通道重复转换模式15.5.4 序列通道重复转换模式15.5.5 转换模式之间的切换15.5.6 低功耗15.6 转换时钟与转换速度15.7 采 样15.7.1 采样操作15.7.2 采样信号输入选择15.7.3 采样模式15.7.4 MSC位的使用15.7.5 采样时序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 转换存储寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中断标志寄存器ADC12IFG.x和中断允许寄存器ADC12IEN.x15.8.5 中断向量寄存器ADC12IV15.9 ADC12接地与降噪第16章 FLASH型芯片的开发16.1 开发系统概述16.1.1 开发技术16.1.2 MSP430系列的开发16.1.3 MSP430F系列的开发16.2 FLASH型的FET开发方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 标准复位过程和进入BSL过程16.3.2 BSL的UART协议16.3.3 数据格式16.3.4 退出BSL16.3.5 保护口令16.3.6 BSL的内部设置和资源附录A 寻址空间附录B 指令说明B.1 指令汇总B.2 指令格式B.3 不增加ROM开销的模拟指令B.4 指令说明(字母顺序)B.5 用几条指令模拟的宏指令附录C MSP430系列单片机参数表附录D MSP430系列单片机封装形式附录E MSP430系列器件命名
上传时间: 2014-04-28
上传用户:sssnaxie
/****************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
产品型号:VK2C21 ——— 【完全兼容替代HT16C21,无需做任何改动!直接可以切换】 产品品牌:VINTEK/元泰 产品年份:新年份 封装形式:NSOP16 SOP20 SOP24 SOP28 联 系 人:许先生 联 系 QQ:1918885898 联系手机:18898582398 工程服务,技术支持,价格具有优势! 概述 VK2C21 是一款存储器映射和多功能 LCD 控制 / 驱动芯片。该芯片显示模式有 80 点 (20×4) 或 128 点 (16×8)。VK2C21 的软件配置特性使得它 适用于多种 LCD 应用,包括 LCD 模块和显示子 系统。VK2C2X系列为I2C介面、RAM mapping的LCD控制暨驱动IC,此系列以先进设计技术降低IC耗电、提升抗杂讯及ESD防护能力。全系列包含VK2C22/VK2C22G、VK2C23/VK2C23G、VK2C24/VK2C24G等。VK2C22已成功获得单相电表客戶的认可及采用,VK2C23及VK2C24适合于点数需求较大的三相电表的应用。 此系列內建显示记忆体及RC振荡电路;工作电压范围:2.4V~5.5V;提供2种图框扫描频率:80Hz or 160Hz;可由外挂电阻调整VLCD电压,也提供內建可由指令调整16阶的VLCD电压;提供全屏闪烁功能、有三种频率可选。透过I2C介面及多項內置电路,VK2C2X系列与系统控制晶片的传输只需2根信号线,大大省去系统零件及布线、降低客戶系统成本。 特性 ★工作电压:2.4 ~ 5.5V ★内部 32kHz RC 振荡器 ★Bias:1/3 或 1/4;Duty:1/4 或 1/8 ★带电压跟随器的内部 LCD 偏置发生器 ★I2C 接口 ★两个可选 LCD 帧频率:80Hz 或 160Hz ★多达 16×8 位 RAM 用来存储显示数据 ★显示模式: 20×4 模式:20 SEGs 和 4 COMs 16×8 模式:16 SEGs 和 8 COMs ★多种闪烁模式 ★读 / 写地址自动增加 ★内建 16 级 VLCD 电压调整电路 ★低功耗 ★提供 VLCD 引脚用来调整 LCD 工作电压 ★采用硅栅极 CMOS 制造工艺 ★封装类型:20/24/28 SOP, 16 NSOP ★此篇产品叙述为功能简介,如需要完整产品PDF资料可以联系许先生索取! VK2C21适用于高抗噪声的小点数LCD应用 VK2C21是采用I2C接口的通用型LCD控制暨驱动器,可选用4 Common或8 Common的驱动模式,最多可显示128点;本产品采用低耗电设计、在3V工作时只有18uA耗电流。高整合性脚位设计:比竞争者封装脚数更少、可显示点数更多;与系统控制芯片的传输只需2根信号线、外挂零件少、可降低客户系统成本。 VK2C21内建有128 Bit显示内存,可降低主控MCU的负担;工作电压宽广:2.4V~5.5V;提供2种图框扫瞄频率;内建调整电路可以指令设定16阶VLCD电压;提供全屏闪烁功能、有三种频率可选。最大可显示点数为4 COM x 20 SEG或8 COM x 16 SEG。 VK2C2x系列具备低耗电、高抗噪声及高ESD防护能力。全系列包含VK2C21、VK2C22/VK2C22G、VK2C23/VK2C23G、VK2C24/VK2C24G等。VK2C22已成功获得大陆、美国地区单相电表客户的认可及采用,VK2C23及VK2C24适合于点数需求较大的三相电表的应用。 VK2C21适用于家电、民生消费品、工业仪表、水表、农网表、瓦斯表等之应用。VK2C21提供28/24/20SOP及16NSOP封装,依封装不同、点数略有差异,有关点数及封装的选用。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 产品型号:VK2C22 ——— 【完全兼容替代HT16C22,无需做任何改动!直接可以切换】 产品品牌:VINTEK/元泰 产品年份:新年份 封装形式:LQFP48 LQFP52 联 系 人:许先生 联 系 QQ:1918885898 联系手机:18898582398 工程服务,技术支持,价格具有优势! 概述 VK2C22/VK2C22G 是一款存储器映射和多功能 LCD 控制 / 驱动芯片。该系列芯片显示模式有 176 点 (44×4)VK2C22/VK2C22G 软件配置特性使 得它适用于多种 LCD 应用,包括 LCD 模块和显示子系统。VK2C22/VK2C22G 通过双线双向 I2C 接口与大多数微处理器 / 微控制器进行通信。 VK2C2X系列为I2C介面、RAM mapping的LCD控制暨驱动IC,此系列以先进设计技术降低IC耗电、提升抗杂讯及ESD防护能力。全系列包含VK2C22/VK2C22G、VK2C23/VK2C23G、VK2C24/VK2C24G等。VK2C22已成功获得单相电表客戶的认可及采用,VK2C23及VK2C24适合于点数需求较大的三相电表的应用。 特性 ★工作电压:2.4V ~ 5.5V ★内部 32kHz RC 振荡器S ★Bias:1/2 或 1/3;Duty:1/4 ★带电压跟随器的内部 LCD 偏置发生器 ★I2C接口 ★两个可选 LCD 帧频率:80Hz 或 160Hz ★多达 44×4 位 RAM 用来存储显示数据 ★最大显示模式 44×4:44 SEGs 和 4 COMs ★多种闪烁模式 ★读 / 写地址自动增加 ★内建 16 级 VLCD 电压调整电路 ★低功耗 ★提供 VLCD 引脚来调整 LCD 工作电压 ★采用硅栅极 CMOS 制造工艺 ★封装类型:48LQFP,52QFP ★此篇产品叙述为功能简介,如需要完整产品PDF资料可以联系许先生索取! LCD驱动IC推出VK2C22新I2C接口系列 本公司专注于TN/STN LCD的中小尺寸应用,VK162X系列控制暨驱动IC已营销业界多年。2010年更展开I2C标准接口系列的新产品开发,此系列包含VK2C22、VK2C23、VK2C24等。IC特性强调低功耗、高抗噪声及高系统ESD防护能力,以高整合度的脚位包装,提供客户最大的显示点数。VK2C22是首先开发完成的型号,VK2C23、VK2C24会陆续推出。 VK2C22内建显示内存及RC振荡电路;工作电压宽广:2.4V~5.5V;2种Bias分压:1/2 & 1/3;最大显示点数可支持4 Common x 44 Segment(52QFP)。提供2种图框扫瞄频率:80Hz or 160Hz;可由外挂电阻调整VLCD电压,也提供16阶可由内建指令调整的VLCD电压。透过I2C接口及多项内置电路,VK2C22与系统控制芯片的传输只需2根信号线,大大省去系统零件及布线、降低客户系统成本。与其它同包装的产品,VK2C22提供更多的显示点数。 VK2C22适用于家电、车载、民生消费品、工业仪表等的LCD显示器的控制及驱动,高抗噪声及高ESD防护能力尤适合数字式LCD电表、水表、瓦斯表等。依包装不同尚有2种点数可选择:4 Common x 40 Segment(48 LQFP)及4 Common x 36 Segment(44QFP)。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 产品型号:VK2C23 ——— 【完全兼容替代HT16C23,无需做任何改动!直接可以切换】 产品品牌:VINTEK/元泰 产品年份:新年份 封装形式:LQFP64 LQFP48 联 系 人:许先生 联 系 QQ:1918885898 联系手机:18898582398 工程服务,技术支持,价格具有优势! VK2C23/VK2C23G -- RAM Mapping 56*4 / 52*8 LCD Driver Controller 概述 VK2C23/VK2C23G 是一款存储器映射和多功能 的 LCD 控制 / 驱动芯片。该芯片的显示字段为 224 点 (56 SEG × 4 COM) 或 416 点 (52 SEG × 8 COM)。VK2C23/VK2C23G 芯片的软件配置特 性使其适用于多种 LCD 应用,包括 LCD 模块和 显示子系统。VK2C23/VK2C23G 芯片可通过双 线双向 I2C 接口与大多数微处理器或微控制器进 行通信。 VK2C2X系列为I2C介面、RAM mapping的LCD控制暨驱动IC,此系列以先进设计技术降低IC耗电、提升抗杂讯及ESD防护能力。全系列包含VK2C22/VK2C22G、VK2C23/VK2C23G、VK2C24/VK2C24G等。VK2C22已成功获得单相电表客戶的认可及采用,VK2C23及VK2C24适合于点数需求较大的三相电表的应用。 此系列內建显示记忆体及RC振荡电路;工作电压范围:2.4V~5.5V;提供2种图框扫描频率:80Hz or 160Hz;可由外挂电阻调整VLCD电压,也提供內建可由指令调整16阶的VLCD电压;提供全屏闪烁功能、有三种频率可选。透过I2C介面及多項內置电路,VK2C2X系列与系统控制晶片的传输只需2根信号线,大大省去系统零件及布线、降低客戶系统成本。 产品特性 ★工作电压:2.4 ~ 5.5V ★内部 32kHz RC 振荡器 ★Bias:1/3 或 1/4;Duty:1/4 或 1/8 ★带电压跟随器的内部 LCD 偏置发生器 ★I2C 总线接口 ★两种可选的 LCD 帧频率:80Hz 或 160Hz ★多达 52×8 位的 RAM 用于存储显示数据 ★显示模式: – 56×4 模式:56 SEG × 4 COM – 56×4 模式:56 SEG × 4 COM ★多种闪烁模式 ★读 / 写地址自动增加 ★内建 16 级 VLCD 电压调整电路 ★低功耗 ★提供 VLCD引脚来调整 LCD 工作电压 ★采用硅栅极 CMOS 工艺制造 ★封装类型:48LQFP,64LQFP ★ 此篇产品叙述为功能简介,如需要完整产品PDF资料可以联系许先生索取! LCD/LED液晶控制器及驱动器系列 芯片简介如下: RAM映射LCD控制器和驱动器系列 VK1024B 2.4V~5.2V 6seg*4com 6*3 6*2 偏置电压1/2 1/3 S0P-16 VK1056B 2.4V~5.2V 14seg*4com 14*3 14*2 偏置电压1/2 1/3 SOP-24/SSOP-24 VK1072B 2.4V~5.2V 18seg*4com 18*3 18*2 偏置电压1/2 1/3 SOP-28 VK1072C 2.4V~5.2V 18seg*4com 18*3 18*2 偏置电压1/2 1/3 SOP-28 VK1088B 2.4V~5.2V 22seg*4com 22*3 偏置电压1/2 1/3 QFN-32L(4MM*4MM) VK0192 2.4V~5.2V 24seg*8com 偏置电压1/4 LQFP-44 VK0256 2.4V~5.2V 32seg*8com 偏置电压1/4 QFP-64 VK0256B 2.4V~5.2V 32seg*8com 偏置电压1/4 LQFP-64 VK0256C 2.4V~5.2V 32seg*8com 偏置电压1/4 LQFP-52 VK1621S-1 2.4V~5.2V 32*4 32*3 32*2 偏置电压1/2 1/3 LQFP44/48/SSOP48/SKY28/DICE裸片 VK1622B 2.7V~5.5V 32seg*8com 偏置电压1/4 LQFP-48 VK1622S 2.7V~5.5V 32seg*8com 偏置电压1/4 LQFP44/48/52/64/QFP64/DICE裸片 VK1623S 2.4V~5.2V 48seg*8com 偏置电压1/4 LQFP-100/QFP-100/DICE裸片 VK1625 2.4V~5.2V 64seg*8com 偏置电压1/4 LQFP-100/QFP-100/DICE VK1626 2.4V~5.2V 48seg*16com 偏置电压1/5 LQFP-100/QFP-100/DICE (高品质 高性价比:液晶显示驱动IC 原厂直销 工程技术支持!) (所有型号全部封装均有现货,欢迎加Q查询 191 888 5898 许生) 高抗干扰LCD液晶控制器及驱动系列 VK2C21A 2.4~5.5V 20seg*4com 16*8 偏置电压1/3 1/4 I2C通讯接口 SOP-28 VK2C21B 2.4~5.5V 16seg*4com 12*8 偏置电压1/3 1/4 I2C通讯接口 SOP-24 VK2C21C 2.4~5.5V 12seg*4com 8*8 偏置电压1/3 1/4 I2C通讯接口 SOP-20 VK2C21D 2.4~5.5V 8seg*4com 4*8 偏置电压1/3 1/4 I2C通讯接口 NSOP-16 VK2C22A 2.4~5.5V 44seg*4com 偏置电压1/2 1/3 I2C通讯接口 LQFP-52 VK2C22B 2.4~5.5V 40seg*4com 偏置电压1/2 1/3 I2C通讯接口 LQFP-48 VK2C23A 2.4~5.5V 56seg*4com 52*8 偏置电压1/3 1/4 I2C通讯接口 LQFP-64 VK2C23B 2.4~5.5V 36seg*8com 偏置电压1/3 1/4 I2C通讯接口 LQFP-48 VK2C24 2.4~5.5V 72seg*4com 68*8 60*16 偏置电压1/3 1/4 1/5 I2C通讯接口 LQFP-80 超低功耗LCD液晶控制器及驱动系列 VKL060 2.5~5.5V 15seg*4com 偏置电压1/2 1/3 I2C通讯接口 SSOP-24 VKL128 2.5~5.5V 32seg*4com 偏置电压1/2 1/3 I2C通讯接口 LQFP-44 VKL144A 2.5~5.5V 36seg*4com 偏置电压1/2 1/3 I2C通讯接口 TSSOP-48 VKL144B 2.5~5.5V 36seg*4com 偏置电压1/2 1/3 I2C通讯接口 QFN48L (6MM*6MM) 静态显示LCD液晶控制器及驱动系列 VKS118 2.4~5.2V 118seg*2com 偏置电压 -- 4线通讯接口 LQFP-128 VKS232 2.4~5.2V 116seg*2com 偏置电压1/1 1/2 4线通讯接口 LQFP-128 内存映射的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 VK1650 --- 通讯接口: SCL/SDA 电源电压:5V(3.0~5.5V) 驱动点阵:8x16 共阴驱动:8段4位 共阳驱动:4段8位 按键: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 (所有型号全部封装均有现货,欢迎加Q查询 191 888 5898 许生) 以上介绍内容为IC参数简介,难免有错漏,且相关IC型号众多,未能一一收录。欢迎联系索取完整资料及样品! 请加许先生 QQ:191 888 5898联系!谢谢 生意无论大小,做人首重诚信!本公司全体员工将既往开来,再接再厉。争取为各位带来更专业的技术支持,更优质的销售服务,更高性价比的好产品.竭诚希望能与各位客户朋友深入沟通,携手共进,共同成长,合作共赢!谢谢。
标签: 工程服务 技术支持 LCD液晶驱动显示芯片 兼容替代 性价比高
上传时间: 2019-07-03
上传用户:shubashushi66