本代码为编码开关代码,编码开关也就是数字音响中的 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
实验源代码 //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
上传用户:梁雪文以
#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
300个C51单片机设计proteus仿真源码软件源码:100000秒以内的计时程序10秒的秒表12864LCD图形滚动演示128X64LED160128LCD图文演示1602字符液晶滚动演示程序1602液晶显示的DS1302实时时钟16×16点阵(滚动显示)16×16点阵2(滚动显示)2io5键盘模拟音量数码管显示2×20串行字符液晶演示32x16汉字44行列键盘485全双工通信4×4键盘矩阵控制条形LED显示4个独立式按键控制LED开关4个独立式按键控制LED移位4只数码管滚动显示0~3555可调PWM发生器555的应用6264扩展内存6个16×16点阵74HC154译码器应用74HC59574HC595串入并出芯片应用74LS138译码器应用74LS148扩展中断8051双机通信简例8255并行口扩展实例89C51PWM8x8LED汉字显示8x8点阵做的贪吃蛇游戏8×8LED点阵屏显示数字8只数码管同时显示不同字符8只数码管显示多个不同字符8只数码管滚动显示8~F8只数码管滚动显示单个数字8只数码管滚动显示数字串8只数码管闪烁显示8通道自动温度检测系统仿真(含原程序)ADC0808 PWM实验ADC0809模数转换与显示ADC0832模数转换与显示AT89C51对直流电动机的驱动AVR_UartBCD译码数码管显示数字c51 可预设电压的数控电源(功能强大)clockConterCPU控制的独立式键盘扫描实验da、ad。液晶,传递函数模型综合应用的实例DIY51式数控电源DS1621温度传感器实验ds18b20DS18B20温度传感器实验DS18B20温度检测及其液晶显示HorseLightI2CIIC-24C04与数码管IIC-24C04与蜂鸣器INT0与INT1中断计数INT0中断3位计数INT0及INT1中断计数INT0和INT1控制条形LEDINT1中断5位计数IO并行口直接驱动单个数码管K1-K4 分组控制LEDK1-K4 控制LED移位K1-K4 控制数码管加减演示K1-K4 控制数码管移位显示K1-K4 键状态显示key_lcdks0108 液晶12864LCD频率计仿真LED代码查询V1[1].1LED模拟交通灯LED闪烁M16_AN_CompareM16_EEPROMM16_HorseMAX7221控制数码管动态显示my16key_cNT0中断控制LEDNT0中断计数NumberDisplayP3口流水灯PCF8574PCF8583+LCD1602PCF8591模数与数模转换实验proteus ADDC的练习程序PWMPWMLEDPWM控制LED的亮度仿真程序PWM控制马达的方法PWM波输出(可调)PWM电机正反转pwm程序实例PWM调温RAM扩展练习sscom32串口调试TIMER0与TIMER1控制条形LEDTIMER0控制LED二进制计数TIMER0控制单只LED闪烁TIMER0控制四只LED滚动闪烁TIMER0控制流水灯ULN2803usart_t《lcd1602仿真实例》一个数控直流稳压电源一个步进电机的仿真一步一步教你51_PC串口通信万能逻辑电路实验三机通讯串口仿真mcu_pc串口方式1串行数据转换为并行数据交通灯从左到右的流水灯光藕隔离驱动电机内部函数intrins.h应用举例净水控制器仿真电路刚做好的十个字的led屏模拟有程序包含单片机寄存器的头文件单只按键控制单只数码管滚动显示单只数码管循环显示0-9单只数码管循环显示0~F单片机与PC机串口通讯仿真单片机之间双向通信单片机向PC发送数据单片机向主机发送字符串单片机接收PC发出的数据单片机控制的电动自行车驱动系统单片机数据发送程序发一个用定时器做的PWM基于1602+ds12b80+ds1302+音乐+电子书+流水灯的多功能电子表基于ADC0832的数字电压表基于AT24C02的多机通信基于AT89C51+MAX7219的频率计 附带proteus仿真电路图 实际硬件电路测试通过基于DS1302的日历时钟基于yjwpm测试过的DS18B20仿真实例多功能电子钟多点温度测量多路开关状态指示大屏幕仿真子电路做的一个H型电机驱动电路字符串函数string.h应用举例字符函数ctype.h应用举例宏定义应用举例定时器中断控制的独立式键盘扫描实验定时器控制交通指示灯定时器控制数码动态显示定时器控制数码管动管显示对I2C总线上挂接多个AT24C0
上传时间: 2021-10-27
上传用户:wangshoupeng199
随着科学技术的快速发展,服务类机器人已经广泛应用到人们的日常生活中。不仅提高了人们的生活质量,还为人们节省了大量时间。因此,进行扫地机器人的设计与研究工作就具有十分重要的意义。本文以 STM32 单片机作为核心控制器,通过电源电路、光耦隔离电路、H 桥电机驱动电路的设计以及红外传感器模块的应用,设计出一款可以将地上的纸屑等杂物吸入垃圾收纳盒的扫地机器人,并且该机器人还具有前方遇障碍物自行躲避,前方悬空可防坠落等功能。
上传时间: 2022-04-28
上传用户:jason_vip1
为解决移相全桥电路驱动及相角控制问题,设计了一种数字控制的移相全桥驱动电路.以TPL521为光耦隔离、IR2110为栅极驱动芯片.由DSP产生PWM信号,经过光耦隔离和逻辑电路后送至IR2110进行相角控制.文章对IR2110驱动电路原理进行分析及参数进行设计,对TMS320F28335进行设置并给出部分代码.实验结果表明:通过TMS320F28335可产生的不同相角的PWM波形,满足了移相全桥对不同相角控制的要求.In order to solve the problem of phase-shifted full-bridge circuit driving and phase angle control,a digitally controlled phaseshifted full-bridge driving circuit was designed. TPL521 optocoupler isolation,IR2110 gate driver chip. PWM signals are generated by the DSP and sent to the IR2110 for phase angle control after optocoupler isolation and logic circuits. This text carries on the analysis to the principle of IR2110 drive circuit and parameter design,set up and give out some code to TMS320F28335. The experimental results show that the PWM waveforms with different phase angles generated by TMS320F28335 can meet the requirements of phase-shifted full-bridge control for different phase angles.
上传时间: 2022-05-03
上传用户:zhanglei193
随着科学技术的快速发展,服务类机器人已经广泛应用到人们的日常生活中。不仅提高了人们的生活质量,还为人们节省了大量时间。因此,进行扫地机器人的设计与研究工作就具有十分重要的意义。本文以 STM32 单片机作为核心控制器,通过电源电路、光耦隔离电路、H 桥电机驱动电路的设计以及红外传感器模块的应用,设计出一款可以将地上的纸屑等杂物吸入垃圾收纳盒的扫地机器人,并且该机器人还具有前方遇障碍物自行躲避,前方悬空可防坠落等功能。
上传时间: 2022-05-08
上传用户:
随着经济发展,步进电机在工业生产与社会生活中的应用越来越广泛,对精度的要求也在不断提高。日益扩展的实际应用需求,不仅对步进电机结构提出了更高的要求,而且对步进电机的驱动控制也提出了更高的要求。虽然步进电机存在很多的优点,但是实际应用起来也有许多的不方便,很大程度上是受到步进电机驱动器的限制。步进电机的应用必须选用与之匹配的步进电机驱动器,以满足电机对不同电流大小的要求。而且现在的很多控制器不够智能化,实际应用中,除了要选用专门的驱动器之外,还要配备一个控制器,来发送一些脉冲,或者调节一些步进电机的运行参数。大多数驱动器都无法满足高精度高效控制的需求,这些驱动器没能更好的开发出步进电机的细分等方面的潜能。由上述可知,目前常用驱动器缺乏普适性,电流大小无法满足不同类型电机的要求,细分分辨率不高,斩波频率不可调,保护功能不足,智能化程度不高。 针对步进电机存在的上述问题,本课题设计了性能较为优越的步进电机驱动系统。该驱动器采用了恒流驱动与细分驱动的原理,结合单片机与电力电子应用技术,来提高驱动器的性能。该步进电机驱动系统,硬件上包括STM32与LV8726专用芯片组成的控制电路、功率放大电路、光耦隔离电路以及USB转串口的通信电路。软件上使用VB6.0编写了驱动器的控制应用程序,通过上位机实时控制步进电机的运行状态,以提高智能化的程度。 对整个系统的测试表明,电机的实际输出波形与理论输出波形接近。优化的加速曲线的设计,使得电机在高速启动的时候,不会出现失步或者堵转的情况。通过上位机的界面,可以实时控制步进电机在各种参数下运行,并实时地切换运行状态,运行参数主要包括步进电机的速度,加速度,步距角细分,绕组电流,正反转,启动和停止,电流衰减率,上下桥臂切换的死区时间等参数。驱动器除具备以上功能之外,还具备多种保护功能,如欠压保护,过流保护,过温报警等功能。该驱动器能够驱动多种不同类型的步进电机,具有更高的输出电流,电流无极可调,具有更高的细分分辨率。能够满足多场合下,高精度高效的应用需求。
上传时间: 2022-05-29
上传用户:qdxqdxqdxqdx
该电路输入端为PWM信号,也可以DA输出,输出4-20MA .在变送器中已经成熟使用 ,如果需要隔离可以在PWM端加一级光耦隔离,PWM频率200HZ 左右就可以,输出端最低电压为9V ,最高可以24v。
标签: XTR111
上传时间: 2022-06-14
上传用户:bluedrops