sht11是集温湿度于一体,并带有模数转换的芯片,此驱动程序是通过IIC总线读取温湿度的,并可已经转换为10进制了
上传时间: 2017-08-10
上传用户:康郎
学习java图形界面的设计,10进制数的转换
上传时间: 2017-08-31
上传用户:zhangjinzj
编写子程序嵌套结构的程序,把整数分别用二进制和八进制形式显示出来。 主程序 :把整数字变量 存入堆栈,并调用子程序 ; 子程序 :从堆栈中取出 ;调用二进制显示程序 ,显示出与 其等效的二进制数;输出 个空格; 调用八进制显示程序 ,显示出与其等效的八进制数;调用输出回车 及换行符的子程序。
上传时间: 2013-12-27
上传用户:小码农lz
•ARINC429总线协议是美国航空电子工程委员会(Airlines Engineering Committee)于1977年7月提出的,并于同年发表并获得批准使用,它的全称是数字式信息传输系统(Digital Information Transmission System ) 。协议标准规定了航空电子设备及有关系统间的数字信息传输要求。ARINC429广泛应用在先进的民航客机中,如B-737、B-757、B-767,俄制军用飞机也选用了类似的技术。
标签: ARINC429 总线
上传时间: 2015-03-25
上传用户:423619775
微机原理与接口知识点总结: 1.绪论:计算机系统组成;冯诺依曼体系结构;进制之间的转换;数的原码、反码、补码表示;补码加减法运算;溢出判断 2.通用计算机工作原理:指令格式;存储器模型;程序如何自动执行 3.CPU工作原理:CPU的基本构成(运算器、控制器、寄存器),各个部分的功能;CPU的工作原理;CPU的具体实例8086内部结构;8086的地址构成(逻辑地址与物理地址关系);8086存储器分段概念;8086存储器组织(存储顺序);8086的外部引脚;8086处理器的基本时序。
标签: 接口资料1
上传时间: 2016-01-03
上传用户:glylgw
/****************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
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count); } } 【程序3】 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。 public class lianxi03 { public static void main(String[] args) { int b1, b2, b3;
上传时间: 2017-12-24
上传用户:Ariza
异或计算小工具,输入16进制数组,可计算出异或后的16进制结果
标签: 异或计算器
上传时间: 2021-11-09
上传用户:d07li
CD40系列CD45系列集成芯片DATASHEET数据手册170个芯片技术手册资料合集:4000 CMOS 3输入双或非门1反相器.pdf4001 CMOS 四2输入或非门.pdf4002 CMOS 双4输入或非门.pdf4006 CMOS 18级静态移位寄存器.pdf4007 CMOS 双互补对加反相器.pdf4008 CMOS 4位二进制并行进位全加器.pdf4009 CMOS 六缓冲器-转换器(反相).pdf4010 CMOS 六缓冲器-转换器(同相).pdf40100 CMOS 32位双向静态移位寄存器.pdf40101 CMOS 9位奇偶发生器-校验器.pdf40102 CMOS 8位BCD可预置同步减法计数器.pdf40103 CMOS 8位二进制可预置同步减法计数器.pdf40104 CMOS 4位三态输出双向通用移位寄存器.pdf40105 CMOS 先进先出寄存器.pdf40106 CMOS 六施密特触发器.pdf40107 CMOS 2输入双与非缓冲-驱动器.pdf40108 CMOS 4×4多端寄存.pdf40109 CMOS 四三态输出低到高电平移位器.pdf4011 CMOS 四2输入与非门.pdf40110 CMOS 十进制加减计数-译码-锁存-驱动.pdf40117 CMOS 10线—4线BCD优先编码器.pdf4012 CMOS 双4输入与非门.pdf4013 CMOS 带置位-复位的双D触发器.pdf4014 CMOS 8级同步并入串入-串出移位寄存器.pdf40147 CMOS 10线—4线BCD优先编码器.pdf4015 CMOS 双4位串入-并出移位寄存器.pdf4016 CMOS 四双向开关.pdf40160 CMOS 非同步复位可预置BCD计数器.pdf40161 CMOS 非同步复位可预置二进制计数器.pdf40162 CMOS 同步复位可预置BCD计数器.pdf40163 CMOS 同步复位可预置二进制计数器.pdf4017 CMOS 十进制计数器-分频器.pdf40174 CMOS 六D触发器.pdf40175 CMOS 四D触发器.pdf4018 CMOS 可预置 1分N 计数器.pdf40181 CMOS 4位算术逻辑单元.pdf40182 CMOS 超前进位发生器.pdf4019 CMOS 四与或选译门.pdf40192 CMOS 可预制四位BCD计数器.pdf40193 CMOS 可预制四位二进制计数器.pdf40194 CMOS 4位双向并行存取通用移位寄存器.pdf4020 CMOS 14级二进制串行计数-分频器.pdf40208 CMOS 4×4多端寄存器.pdf4021 CMOS 异步8位并入同步串入-串出寄存器.pdf4022 CMOS 八进制计数器-分频器.pdf4023 CMOS 三3输入与非门.pdf4024 CMOS 7级二进制计数器.pdf4025 CMOS 三3输入或非门.pdf40257 CMOS 四2线-1线数据选择器-多路传输.pdf4026 CMOS 7段显示十进制计数-分频器.pdf4027 CMOS 带置位复位双J-K主从触发器.pdf4028 CMOS BCD- 十进制译码器.pdf4029 CMOS 可预制加-减(十-二进制)计数器.pdf4030 CMOS 四异或门.pdf4031 CMOS 64级静态移位寄存器.pdf4032 CMOS 3位正逻辑串行加法器.pdf4033 CMOS 十进制计数器-消隐7段显示.pdf4034 CMOS 8位双向并、串入-并出寄存器.pdf4035 CMOS 4位并入-并出移位寄存器.pdf4038 CMOS 3位串行负逻辑加法器.pdf4040 CMOS 12级二进制计数-分频器.pdf4041 CMOS 四原码-补码缓冲器.pdf4042 CMOS 四时钟控制 D 锁存器.pdf4043 CMOS 四三态或非 R-S 锁存器.pdf4044 CMOS 四三态与非 R-S 锁存器.pdf4045 CMOS 21位计数器.pdf4046 CMOS PLL 锁相环电路.pdf4047 CMOS 单稳态、无稳态多谐振荡器.pdf4048 CMOS 8输入端多功能可扩展三态门.pdf4049 CMOS 六反相缓冲器-转换器.pdf4050 CMOS 六同相缓冲器-转换器.pdf4051 CMOS 8选1双向模拟开关.pdf4051,2,3.pdf4052 CMOS 双4选1双向模拟开关.pdf4053 CMOS 三2选1双向模拟开关.pdf4054 C
上传时间: 2021-11-09
上传用户:kent
9.集成库的作用和制作c.avi 87.8M9.集成库的作用和制作b.avi 67.1M9.集成库的作用和制作a.avi 786.2M8.PCB库的设计b.rmvb 162.3M8.PCB库的设计a.avi 972.8M7.原理图库的设计b.avi 624.8M7.原理图库的设计a.avi 868.9M6.原理图设计深入b.avi 592.8M6.原理图设计深入a.rmvb 235.2M5.原理图设计提高b.avi 306.6M5.原理图设计提高a.avi 427.6M4.原理图设计进阶b.rmvb 223.3M4.原理图设计进阶a.avi 746.2M3.原理图设计初步b.avi 258.3M3.原理图设计初步a.avi 651.1M2.电子设计基础知识b.avi 279.2M2.电子设计基础知识a.avi 518.9M13.PCB设计深入c.avi 861.1M13.PCB设计深入b.avi 723.8M13.PCB设计深入a.avi 588.7M12.PCB设计提高b.rmvb 234.4M12.PCB设计提高a.avi 301.7M11.PCB设计进阶c.avi 483.6M11.PCB设计进阶b.avi 798.6M11.PCB设计进阶a.rmvb 233.3M10.PCB设计初步d.avi 561.4M10.PCB设计初步c.rmvb 227.1M10.PCB设计初步b.avi 727.2M10.PCB设计初步a.avi 495.2MAltium Designer概述b.avi 400.6M1.Altium Designer概述a .avi 427M
标签: altium designer
上传时间: 2022-06-14
上传用户: