本代码为编码开关代码,编码开关也就是数字音响中的 360度旋转的数字音量以及显示器上用的(单键飞梭开 关)等类似鼠标滚轮的手动计数输入设备。 我使用的编码开关为5个引脚的,其中2个引脚为按下 转轮开关(也就相当于鼠标中键)。另外3个引脚用来 检测旋转方向以及旋转步数的检测端。引脚分别为a,b,c b接地a,c分别接到P2.0和P2.1口并分别接两个10K上拉 电阻,并且a,c需要分别对地接一个104的电容,否则 因为编码开关的触点抖动会引起轻微误动作。本程序不 使用定时器,不占用中断,不使用延时代码,并对每个 细分步数进行判断,避免一切误动作,性能超级稳定。 我使用的编码器是APLS的EC11B可以参照附件的时序图 编码器控制流水灯最能说明问题,下面是以一段流水 灯来演示。
上传时间: 2017-07-03
上传用户:gaojiao1999
【问题描述】 在一个N*N的点阵中,如N=4,你现在站在(1,1),出口在(4,4)。你可以通过上、下、左、右四种移动方法,在迷宫内行走,但是同一个位置不可以访问两次,亦不可以越界。表格最上面的一行加黑数字A[1..4]分别表示迷宫第I列中需要访问并仅可以访问的格子数。右边一行加下划线数字B[1..4]则表示迷宫第I行需要访问并仅可以访问的格子数。如图中带括号红色数字就是一条符合条件的路线。 给定N,A[1..N] B[1..N]。输出一条符合条件的路线,若无解,输出NO ANSWER。(使用U,D,L,R分别表示上、下、左、右。) 2 2 1 2 (4,4) 1 (2,3) (3,3) (4,3) 3 (1,2) (2,2) 2 (1,1) 1 【输入格式】 第一行是数m (n < 6 )。第二行有n个数,表示a[1]..a[n]。第三行有n个数,表示b[1]..b[n]。 【输出格式】 仅有一行。若有解则输出一条可行路线,否则输出“NO ANSWER”。
标签: 点阵
上传时间: 2014-06-21
上传用户:llandlu
目录 一、 1、PCB布线 2、PCB布局 3、高速PCB设计 二、 1、高密度(HD)电路设计 2、抗干扰技术 3、PCB的可靠性设计 4、电磁兼容性和PCB设计约束 三、 1、改进电路设计规程提高可测性 2、混合信号PCB的分区设计 3、蛇形走线的作用 4、确保信号完整性的电路板设计准则 四、 1、印制电路板的可靠性设计 五、 1、DSP系统的降噪技术 2、POWERPCB在PCB设计中的应用技术 3、PCB互连设计过程中最大程度降低RF效应的基本方法 六、 1、混合信号电路板的设计准则 2、分区设计 3、RF产品设计过程中降低信号耦合的PCB布线技巧 七、 1、PCB的基本概念 2、避免混合讯号系统的设计陷阱 3、信号隔离技术 4、高速数字系统的串音控制 八、 1、掌握IC封装的特性以达到最佳EMI抑制性能 2、实现PCB高效自动布线的设计技巧和要点 3、布局布线技术的发展
上传时间: 2015-11-10
上传用户:龚小四龚小四
实验源代码 //Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("请输入矩阵第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可传递闭包关系矩阵是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元关系的可传递闭包\n"); void warshall(int,int); int k , n; printf("请输入矩阵的行数 i: "); scanf("%d",&k); 四川大学实验报告 printf("请输入矩阵的列数 j: "); scanf("%d",&n); warshall(k,n); }
上传时间: 2016-06-27
上传用户:梁雪文以
本书共分15章,重点介绍了印制电路板(PCB)的焊盘、过孔、叠层、走线、接地、去耦合、电源电路、时钟电路、模拟电路、高速数字电路、模数混合电路、射频电路的PCB设计的基本知识、设计要求、方法和设计实例,以及PCB的散热设计、PCB的可制造性与可测试性设计、PCB的ESD防护设计。本书内容丰富,叙述详尽清晰,图文并茂,并通过大量的设计实例说明了PCB设计中的一些技巧与方法,以及应该注意的问题,工程性好,实用性强。
上传时间: 2016-12-07
上传用户:xgsxgs
#include "iostream" using namespace std; class Matrix { private: double** A; //矩阵A double *b; //向量b public: int size; Matrix(int ); ~Matrix(); friend double* Dooli(Matrix& ); void Input(); void Disp(); }; Matrix::Matrix(int x) { size=x; //为向量b分配空间并初始化为0 b=new double [x]; for(int j=0;j<x;j++) b[j]=0; //为向量A分配空间并初始化为0 A=new double* [x]; for(int i=0;i<x;i++) A[i]=new double [x]; for(int m=0;m<x;m++) for(int n=0;n<x;n++) A[m][n]=0; } Matrix::~Matrix() { cout<<"正在析构中~~~~"<<endl; delete b; for(int i=0;i<size;i++) delete A[i]; delete A; } void Matrix::Disp() { for(int i=0;i<size;i++) { for(int j=0;j<size;j++) cout<<A[i][j]<<" "; cout<<endl; } } void Matrix::Input() { cout<<"请输入A:"<<endl; for(int i=0;i<size;i++) for(int j=0;j<size;j++){ cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl; cin>>A[i][j]; } cout<<"请输入b:"<<endl; for(int j=0;j<size;j++){ cout<<"第"<<j+1<<"个:"<<endl; cin>>b[j]; } } double* Dooli(Matrix& A) { double *Xn=new double [A.size]; Matrix L(A.size),U(A.size); //分别求得U,L的第一行与第一列 for(int i=0;i<A.size;i++) U.A[0][i]=A.A[0][i]; for(int j=1;j<A.size;j++) L.A[j][0]=A.A[j][0]/U.A[0][0]; //分别求得U,L的第r行,第r列 double temp1=0,temp2=0; for(int r=1;r<A.size;r++){ //U for(int i=r;i<A.size;i++){ for(int k=0;k<r-1;k++) temp1=temp1+L.A[r][k]*U.A[k][i]; U.A[r][i]=A.A[r][i]-temp1; } //L for(int i=r+1;i<A.size;i++){ for(int k=0;k<r-1;k++) temp2=temp2+L.A[i][k]*U.A[k][r]; L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r]; } } cout<<"计算U得:"<<endl; U.Disp(); cout<<"计算L的:"<<endl; L.Disp(); double *Y=new double [A.size]; Y[0]=A.b[0]; for(int i=1;i<A.size;i++ ){ double temp3=0; for(int k=0;k<i-1;k++) temp3=temp3+L.A[i][k]*Y[k]; Y[i]=A.b[i]-temp3; } Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1]; for(int i=A.size-1;i>=0;i--){ double temp4=0; for(int k=i+1;k<A.size;k++) temp4=temp4+U.A[i][k]*Xn[k]; Xn[i]=(Y[i]-temp4)/U.A[i][i]; } return Xn; } int main() { Matrix B(4); B.Input(); double *X; X=Dooli(B); cout<<"~~~~解得:"<<endl; for(int i=0;i<B.size;i++) cout<<"X["<<i<<"]:"<<X[i]<<" "; cout<<endl<<"呵呵呵呵呵"; return 0; }
标签: 道理特分解法
上传时间: 2018-05-20
上传用户:Aa123456789
八选一模拟开关CD4051参考电路:以TI公司的模拟开关IC芯片CD4051为核心元件的八选一模拟开关电路设计。该设计使用了SMA接口用于选通模拟信号,板子的数字地与模拟地用0欧磁珠隔离,关键信号使用弧形走线,以保证信号质量。为了便于单片机易于驱动CD4051的三个数选端A0, A1, A2和一个禁止端INH,板子用LM324与三极管组成串联稳压功率放大电路,以解决CD4051在供电正电压大于5V时,数字信号输入3.3V无法被识别为高电平的问题。同时本设计还利用平拨开关实现单片机控制和人工控制的切换,在人工模式下可以通过改变跳帽位置实现八选一中任意一路选通。在单片机控制模式下跳帽作用失效,由三个数选端控制选通信道。注意事项:附件资源包括Kicad工程文件,Gerber文件和BOM。电路双电源供电,供电电压受CD4051限制,可参考其数据手册。推荐-5V,0,+12V供电以发挥板上功率放大和CD4051的最大用途。
上传时间: 2021-10-19
上传用户:bluedrops
Generalplus 无线充电5V方案 PCB Layout Guide V1.GENERALPLUS 无线充电 5V 方案 PCB LAYOUT GUIDE ............................................................................................ 1 1 元件摆放 .......................................................................................................................................................................... 4 1.1 电源 VDD 电容要求 ...................................................................................................................................................... 4 1.2 MCU VDD 电容要求....................................................................................................................................................... 5 1.3 驱动部分......................................................................................................................................................................... 5 1.4 EMI 测试预留电容.......................................................................................................................................................... 6 2 电源 VDD 走线................................................................................................................................................................ 7 2.1 电源接口走线 ................................................................................................................................................................. 7 2.2 VPP 驱动线圈走线.......................................................................................................................................................... 7 2.3 NMOS 的 S 极................................................................................................................................................................. 9 2.4 VDD 走线过孔 .............................................................................................................................................................. 10 3 GND 走线........................................................................................................................................................................11 3.1 驱动电路的
标签: generalplus 无线充电
上传时间: 2021-10-20
上传用户:得之我幸78
3W原则在PCB设计中为了减少线间串扰,应保证线间距足够大,当线中心间距不少于3倍线宽时,则可保持大部分电场不互相干扰,这就是3W规则。3W原则是指多个高速信号线长距离走线的时候,其间距应该遵循3W原则,例如时钟线,差分线,视频、音频信号线,复位信号线及其他系统关键电路需要遵循3W原则,而并不是板上所有的布线都要强制符合3W原则。 满足3W原则能使信号间的串扰减少70%,而满足10W则能使信号间的串扰减少近98%。 3W原则虽然易记,但要强调一点,这个原则成立是有先前条件的。从串扰成因的物理意义考量,要有效防止串扰,该间距与叠层高度、导线线宽相关。对于四层板,走线与参考平面高度距离(5~10mils),3W是够了;但两层板,走线与参考层高度距离(45~55mils),3W对高速信号走线可能不够。3W原则一般是在50欧姆特征阻抗传输线条件下成立。一般在设计过程中因走线过密无法所有的信号线都满足3W的话,我们可以只将敏感信号采用3W处理,比如时钟信号、复位信号。
标签: pcb
上传时间: 2021-11-08
上传用户:wangshoupeng199
布线是PCB设计的重要组成部分,也是整个PCB设计中工作量最大和最耗时间的部分,工程师在进行PCB布线工作时,需要遵循一些基本的规则,如倒角规则、3W规则等。 环路最小规则,即信号线与其回路构成的环面积要尽可能小,环面积越小,对外的辐射越少,接收外界的干扰也越小。针对这一规则,在地平面分割时,要考虑到地平面与重要信号走线的分布,防止由于地平面开槽等带来的问题;在双层板设计中,在为电源留下足够空间的情况下,应该将留下的部分用参考地填充,且增加一些必要的地过空孔,将双面地信号有效连接起来,对一些关键信号尽量采用地线隔离,对一些频率较高的设计,需特别考虑其地平面信号回路问题,建议采用多层板为宜
标签: pcb
上传时间: 2021-11-08
上传用户: