本代码为编码开关代码,编码开关也就是数字音响中的 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
随着电子技术的快速发展,各种电子设备对时间精度的要求日益提升。在卫星发射、导航、导弹控制、潜艇定位、各种观测、通信等方面,时钟同步技术都发挥着极其重要的作用,得到了广泛的推广。对于分布式采集系统来说,中心主站需要对来自于不同采集设备的采集数据进行汇总和分析,得到各个采集点对同一事件的采集时间差异,通过对该时间差异的分析,最终做出对事件的准确判断。如果分布式采集系统中的各个采集设备不具有统一的时钟基准,那么得到的各个采集时间差异就不能反映出实际情况,中心主站也无法准确地对事件进行分析和判断,甚至得出错误的结论。因此,时钟同步是分布式采集系统正常运作的必要前提。 目前国内外时钟同步领域常用的技术有GPS授时技术,锁相环技术和IRIG-B 码等。GPS授时技术虽然精度高,抗干扰性强,但是由于需要专用的GPS接收机,若单纯使用GPS 授时技术做时钟同步,就需要在每个采集点安装接收机,成本较高。锁相环是一种让输出信号在频率和相位上与输入参考信号同步的技术,输出信号的时钟准确度和稳定性直接依赖于输入参考信号。IRIG-B 码是一种信息量大,适合传输的时间码,但是由于其时间精度低,不适合应用于高精度时钟同步的系统。基于上述分析,本文结合这三种常用技术,提出了一种基于FPGA的分布式采集系统时钟同步控制技术。该技术既保留了GPS 授时的高精确度和高稳定性,又具备IRIG-B时间码易传输和低成本的特性,为分布式采集系统中的时钟同步提供了一种新的解决方案。 本文中的设计采用了Ublox公司的精确授时GPS芯片LEA-5T,通过对GPS芯片串行时间信息解码,获得准确的UTC时间,并实现了分布式采集系统中各个采集设备的精确时间打码。为了能够使整个分布式采集系统具有统一的高精度数据采集时钟,本论文采用了数模混合的锁相环技术,将GPS 接收芯片输出的高精度秒信号作为参考基准,生成了与秒信号高精度同步的100MHZ 高频时钟。本文在FPGA 中完成了IRIG-B 码的编码部分,将B 码的准时标志与GPS 秒信号同步,提高了IRIG-B 码的时间精度。在分布式采集系统中,IRIG-B时间码能直接通过串口或光纤将各个采集点时间与UTC时间统一,节约了各点布设GPS 接收机的高昂成本。最后,通过PC104总线对时钟同步控制卡进行了数据读取和测试,通过实验结果的分析,提出了改进方案。实验表明,改进后的时钟同步控制方案具有很高的时钟同步精度,对时钟同步技术有着重大的推进意义!
上传时间: 2013-08-05
上传用户:lz4v4
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230
ICCAVR软件中文使用说明书:一ImageCraft 的ICC AVR 编译器安装1 运行光盘上的SETUP.EXE 程序进行安装方法一a 打开我的电脑b 打开光盘驱动器所对应的盘符c 双击光盘中文件SETUP.EXE 的图标d 按照屏幕提示选定一个安装路径后进行安装方法二a 在开始菜单中选择运行项目b 在运行对话框中填入drive:\setup.exe注意drive 对应你的机器中的光盘驱动器盘符c 按确定键开始安装d 其余同方法一注意按上述方法进行安装后得到的是一个只可以使用30 天的未注册版对正式版用户还要进行第二步的注册才可得到一个无时间限制的正式版ICC AVR 正式版分标准版和专业版在标准版中有一些功能限制如代码的压缩工程和文件的配置检查在标准版中不可以使用
上传时间: 2013-10-23
上传用户:hwl453472107
ICCAVR教程,ICCAVR软件中文件使用说明书,双龙公司翻译整理。建议大家认真学习一下这个资料,内容不是很长,看了之后会对ICCAVR有更深的了解。 ImageCraft ICCAVR 的中文使用说明翻译 詹卫前一ImageCraft 的ICC AVR 编译器安装1 运行光盘上的SETUP.EXE 程序进行安装方法一a 打开我的电脑b 打开光盘驱动器所对应的盘符c 双击光盘中文件SETUP.EXE 的图标d 按照屏幕提示选定一个安装路径后进行安装方法二a 在开始菜单中选择运行项目b 在运行对话框中填入drive:\setup.exe注意drive 对应你的机器中的光盘驱动器盘符c 按确定键开始安装d 其余同方法一注意按上述方法进行安装后得到的是一个只可以使用30 天的未注册版对正式版用户还要进行第二步的注册才可得到一个无时间限制的正式版ICC AVR 正式版分标准版和专业版在标准版中有一些功能限制如代码的压缩工程和文件的配置检查在标准版中不可以使用
上传时间: 2013-11-05
上传用户:zhyfjj
高精度乘法基本思想和加法一样。其基本流程如下: ①读入被乘数s1,乘数s2 ②把s1、s2分成4位一段,转成数值存在数组a,b中;记下a,b的长度k1,k2; ③i赋为b中的最低位; ④从b中取出第i位与a相乘,累加到另一数组c中;(注意:累加时错开的位数应是多少位 ?) ⑤i:=i-1;检测i值:小于k2则转⑥,否则转④ ⑥打印结果
上传时间: 2015-08-16
上传用户:源弋弋
一:需求分析 1. 问题描述 魔王总是使用自己的一种非常精练而抽象的语言讲话,没人能听懂,但他的语言是可逐步解释成人能听懂的语言,因为他的语言是由以下两种形式的规则由人的语言逐步抽象上去的: ----------------------------------------------------------- (1) a---> (B1)(B2)....(Bm) (2)[(op1)(p2)...(pn)]---->[o(pn)][o(p(n-1))].....[o(p1)o] ----------------------------------------------------------- 在这两种形式中,从左到右均表示解释.试写一个魔王语言的解释系统,把 他的话解释成人能听得懂的话. 2. 基本要求: 用下述两条具体规则和上述规则形式(2)实现.设大写字母表示魔王语言的词汇 小写字母表示人的语言的词汇 希腊字母表示可以用大写字母或小写字母代换的变量.魔王语言可含人的词汇. (1) B --> tAdA (2) A --> sae 3. 测试数据: B(ehnxgz)B 解释成 tsaedsaeezegexenehetsaedsae若将小写字母与汉字建立下表所示的对应关系,则魔王说的话是:"天上一只鹅地上一只鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一只鹅地上一只鹅". | t | d | s | a | e | z | g | x | n | h | | 天 | 地 | 上 | 一只| 鹅 | 追 | 赶 | 下 | 蛋 | 恨 |
上传时间: 2014-12-02
上传用户:jkhjkh1982
利用最新的嵌入式开发工具EDK,在FPGA 中完成对PDIUSBD12 的硬件定制和固件编程,从而在FPGA 中实现U S B 控制器, 并最终完成U S B 的枚举过程、驱动程序的开发和简单的应用。
上传时间: 2013-11-25
上传用户:fnhhs
这是编译原理的一个实验, 是把一个正则表达式转化为不确定有穷自动机NFA的算法程序,朋兴趣的朋友可以下载来看看哦。 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 本实例的符号包括: 1. 基本正则表达式, 如ab 2. 重复, 如a* 3. 在各项中选择, 如a|b 使用时在Convert的Reg Exp中点击输入正则表达式, 然后单击Convert->to NFA就可以了。
上传时间: 2016-06-22
上传用户:wangchong