虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

N<b>进制</b>计数器原

  • C51单片机并行口扩展设计及应用

    C51单片机是我们生活中最常用的系列,MCS-51系列单片机有4个并行口(P0,P1,P2,P3口),但对一个稍微复杂的应用系统来说,真正可供用户使用的并行口,只有P1口可用,况且常常因扩展I2C和SPI的器件需占用某些P1口,迫使用户不得不扩展并行口以满足实际的需要。习惯上,常用的并行口接口芯片有8255、8155,这两种芯片功能比较齐全,可以使用在相对比较复杂的系统中,但如是对一般的系统而言,这些功能往往闲置不用。那么就可以选用一些本来闲置不用的口线作为选通信号来进行并行口的扩展,这样就能充分利用单片机有限的I/O资源,在本设计中是将P1口扩展成一个或几个8位并行口,在每一个八位口上接入8个发光二极管做为输出,二极管是做开关量来使用的,在这里设计了跑马灯和流水灯程序,做到对开关量的开断控制;配合开关量的控制笔者设计了一个共阳LED数码管,用来显示当前发光二极管发亮的序号,做到更加直观的双重控制效果,然后再将P0口通过D/A转换器和一放大器输出一个模拟信号,其结果可以通过示波器看出。这样整个系统即有了数字信号输出和模拟信号输出,也有数码管显示功能,实用性能大提高了。2、 基于89C51的系统硬件设计2.1 并行口的扩展的电路设计 众所周知,C51系列的单片机都有四个I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我们通常仅仅使用P1口作为并行口,而令其余口(P2、P3)处于闲置状态,所以这次设计,我们就是使用闲置不用的P3口做为选能信号线来将P1口进行并行口扩展。 (1) 种方式的并行口扩展优点 连线简单; 不占用存储器空间; (2) 编程也方便灵活。但也有很大的缺点 并行口扩展能力有限,(如使用74LS573(74LS373)且不进行驱动处理,则最多可扩展4个同样类型的并行输出端口,当然还需要与之对应的四个选通信号。) 如扩展较多,选通信号占用并行口位数太多,例如欲扩展8个并行输出端口,则需要8个选能信号,此时,仅选能信号就占用了一个8位并行口,这对在I/O端口线有限的单片机系统中,如此浪费资源的现象是不能容忍的。在本次的设计中,采用芯片74HC573(带三态输出的八进制透明D型锁存器)对P1口进行了一个8位并行口的扩展,选通信号选用P3口的P3.3引脚。原理图如图1所示:

    标签: C51 单片机 并行口 扩展设计

    上传时间: 2013-11-18

    上传用户:dbs012280

  • 51单片机C语言编程实例

    C语言编程基础:1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3    2. void main( void )  //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口    3. {    4.  P1_3 = 1;   //给P1_3赋值1,引脚P1.3就能输出高电平VCC    5.  While( 1 );  //死循环,相当 LOOP: goto LOOP;    6. }   注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。在某引脚输出低电平的编程方法:(比如P2.7引脚)代码1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2.7    2. void main( void )  //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口    3. {    4.  P2_7 = 0;   //给P2_7赋值0,引脚P2.7就能输出低电平GND    5.  While( 1 );  //死循环,相当 LOOP: goto LOOP;    6. }   在某引脚输出方波编程方法:(比如P3.1引脚)代码1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1    2. void main( void )  //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口    3. {    4.  While( 1 )  //非零表示真,如果为真则执行下面循环体的语句    5.  {    6. P3_1 = 1;  //给P3_1赋值1,引脚P3.1就能输出高电平VCC    7.   P3_1 = 0;  //给P3_1赋值0,引脚P3.1就能输出低电平GND    8.  }    //由于一直为真,所以不断输出高、低、高、低……,从而形成方波    9. }   将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) )

    标签: 51单片机C语言 编程实例

    上传时间: 2013-11-02

    上传用户:zengduo

  • rs232串口通信程序下载

    主要功能:1、将串口通讯协议存储为一个通讯文件,可是随时将存储通讯协议文件调入计算机运行与下位机通讯可以实现通讯对话,供下位机工程师参考使用,其主要的通讯协议本程序把它们分成四种情况。以下说明:1)下位机直接发送数据,上位机只接收不回应数据。2)下位机直接发送数据,上位机接收并回应数据。3)上位机直接发送数据,下位机只接收不回应数据。4)上位机直接发送数据,下位机接收并回应数据。下位机工程师完全可以利用这个功能单独的并且很方便的调试与上位机通讯程序,更改双方的通讯协议,不再需要上位机工程师的配合。windwos标准操作,使用方便。2、可以监听活动串口的数据,将监听到的数据显示到数据显示区里面,可以保存。也可以将原先保存的文件数据读进来,以供分析。数据可以按照十六进制和ascii码显示出来。3、自动识别串口设置,当不知道对方设备的通讯串口设置时,可以利用该功能让此程序自动识别,当然前提是对方设备必须是一直在发数据,整个识别过程大概需要二分钟。4、可以通过该程序,利用串口将文件发送到另一个计算机上。另一个计算机通过接收文件接收所发出的文件。

    标签: 232 rs 串口通信

    上传时间: 2013-11-11

    上传用户:semi1981

  • PCtoLCD2002完美版_汉字字模生成软件

    更新说明:   1。界面采用新的字体,不会再有那种难看的黑色粗体字,比以前的要漂亮多了。   2。加入全面的提示帮助,尽量减少普通用户的各种疑惑。   3。修正生成文件的扩展名的一些BUG,不会总是加上FON的扩展名了。   4。修正生成字模数据的一些格式BUG,现在生成的C51格式字模数据基本上可以直接粘贴到源程序中使用而不需要修改了   5。加入新的字模数据格式调整项,允许用户更自由的定制自己需要的数据格式   6。最重要的更新:全面支持保存当前设置功能,用户设置的字模格式,主窗口状态和字库生成窗口选项信息均可保存,下一次打开窗口时不用重新设置(由于要全面更改程序使用的变量结构,所以这部分化了很多时间)。   7。修正了新建图象时会自动跳到图形模式的BUG   8。增加输出紧凑格式数据选项,可以生成不包含空白行的字模数据。   9。完善了每行数据显示个数的功能,可以任意设置每行显示的数据个数,并同时可以设置每行索引数据显示个数。   10。修正了取模说明的一些错误,并改动了格式。   11。现在当用户选择10进制输出时,会自动去掉生成字模数据前的“0x",或后面的“H”,选择16进制时则会自动加上。   12。对各个窗体重新设计以全面适应最大化的需要,如果您觉得当前窗口不够大,可以最大化使用。   13。增加生成英文点阵字库功能,可自动生成ASCII码从0-127的任意点阵字库,使用方法同生成国标点阵字库功能。   14。再次优化代码,去掉各种调试信息,使程序速度再快一些。   15。还有一些细微的调整我记不清了…… 需要注意的地方:  在测试的过程中我发现了一个问题:在WIN98或WINME下当用户需要生成特大点阵的字模时(例如320*320,1024*768的汉字字模),此时由于数据量非常庞大,而WIN98/WINME会有64K的数据容量限制,所以在主窗口中是无法得到全部的字模数据的,这时您需要使用字库生成功能,通过形成一个数据文件才能得到完整的字模数据。   另外生成特大字模时如果出现“内存不足”的提示,请把液晶仿真面板的像素点改小一些,这样可以节省内存。

    标签: PCtoLCD 2002 汉字 字模生成

    上传时间: 2013-10-17

    上传用户:fengzimili

  • 连续相位QAM调制技术及其FPGA实现

    目前通信领域正处于急速发展阶段,由于新的需 求层出不穷,促使新的业务不断产生,因而导致频率资源越来越紧张。在有限的带宽里要传输大量的多媒体数据,提高频谱利用率成为当前至关重要的课题,否则将 很难容纳如此众多的业务。正交幅度调制(QAM)由于具有很高的频谱利用率被DVB-C等标准选做主要的调制技术。与多进制PSK(MPSK)调制不 同,OAM调制采取幅度与相位相结合的方式,因而可以更充分地利用信号平面,从而在具有高频谱利用效率的同时可以获得比MPSK更低的误码率。 但仔细分析可以发现QAM调制仍存在着频繁的相位跳变,相位跳变会产生较大的谐波分量,因此如果能够在保证QAM调制所需的相位区分度的前提下,尽量减少 或消除这种相位跳变,就可以大大抑制谐波分量,从而进一步提高频谱利用率,同时又不影响QAM的解调性能。文献中提出了针对QPSK调制的相位连续化方 法,本文借鉴该方法,提出连续相位QAM调制技术,并针对QAM调制的特点在电路设计时作了改进。

    标签: FPGA QAM 相位 调制技术

    上传时间: 2013-10-31

    上传用户:凤临西北

  • labview中文教程

    第八章 labview的编程技巧     本章介绍局部变量、全局变量、属性节点和其他一些有助于提高编程技巧的问题,恰当地运用这些技巧可以提高程序的质量。   8.1 局部变量 严格的语法尽管可以保证程序语言的严密性,但有时它也会带来一些使用上的不便。在labview这样的数据流式的语言中,将变量严格地分为控制器(Control)和指示器(Indicator),前者只能向外流出数据,后者只能接受流入的数据,反过来不行。在一般的代码式语言中,情况不是这样的。例如我们有变量a、b和c,只要需要我们可以将a的值赋给b,将b的值赋给c等等。前面所介绍的labview内容中,只有移位积存器即可输入又可输出。另外,一个变量在程序中可能要在多处用到,在图形语言中势必带来过多连线,这也是一件烦人的事。还有其他需要,因此labview引入了局部变量。

    标签: labview 教程

    上传时间: 2013-10-27

    上传用户:xieguodong1234

  • 用MDK生成bin格式的可执行文件

    用MDK 生成bin 文件1用MDK 生成bin 文件Embest 徐良平在RV MDK 中,默认情况下生成*.hex 的可执行文件,但是当我们要生成*.bin 的可执行文件时怎么办呢?答案是可以使用RVCT 的fromelf.exe 工具进行转换。也就是说首先将源文件编译链接成*.axf 的文件,然后使用fromelf.exe 工具将*.axf 格式的文件转换成*.bin格式的文件。下面将具体说明这个操作步骤:1. 打开Axf_To_Bin 文件中的Axf_To_Bin.uv2 工程文件;2. 打开Options for Target ‘Axf_To_Bin’对话框,选择User 标签页;3. 构选Run User Programs After Build/Rebuild 框中的Run #1 多选框,在后边的文本框中输入C:\Keil\ARM\BIN31\fromelf.exe --bin -o ./output/Axf_To_Bin.bin ./output/Axf_To_Bin.axf 命令行;4. 重新编译文件,在./output/文件夹下生成了Axf_To_Bin.bin 文件。在上面的步骤中,有几点值得注意的是:1. C:\Keil\ARM\BIN31\表示RV MDK 的安装目录;2. fromelf.exe 命令的具体语法格式如下:命令的格式为:fromelf [options] input_file命令选项如下:--help 显示帮助信息--vsn 显示版本信息--output file 输出文件(默认的输出为文本格式)--nodebug 在生成的映象中不包含调试信息--nolinkview 在生成的映象中不包含段的信息二进制输出格式:--bin 生成Plain Binary 格式的文件--m32 生成Motorola 32 位十六进制格式的文件--i32 生成Intel 32 位十六进制格式的文件--vhx 面向字节的位十六进制格式的文件t--base addr 设置m32,i32 格式文件的基地址--text 显示文本信息文本信息的标志-v 打印详细信息-a 打印数据地址(针对带调试信息的映象)-d 打印数据段的内容-e 打印表达式表print exception tables-f 打印消除虚函数的信息-g 打印调试表print debug tables-r 打印重定位信息-s 打印字符表-t 打印字符串表-y 打印动态段的内容-z 打印代码和数据大小的信息

    标签: MDK bin 可执行文件

    上传时间: 2013-12-17

    上传用户:AbuGe

  • 无线传感器网络中协作通信的能耗优化方法

      针对能量受限的无线传感器网络,该文综合考虑了协作节点数量和调制方式对系统能量有效性的影响,提出一种能量最优的综合优化方法。文中首先给出了在Rayleigh 衰落信道环境下,协作通信系统采用二相相移键控(BPSK)和M 进制正交幅度调制(MQAM)时误码率的闭式表达,同时对协作通信的系统能耗进行了分析。在此基础上,根据能耗最小化原则对协作节点数量和调制方式进行了联合优化。仿真结果表明,与调制方式固定或协作节点数固定的系统相比,该方案能进一步降低协作通信的系统能耗。

    标签: 无线传感器网络 协作通信 能耗

    上传时间: 2013-11-21

    上传用户:angle

  • 多功能单片机开发工具

    超级单片机开发工具,包含:模拟/数字转换表计算,LED 编码器,色环电阻阻值计算,Hex/Bin转换,串口调试器,端口监视器等实用功能 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。   1. 模拟/数字转换表计算 本功能主要用于准备用于查表计算的 R/T 表格,主要用于温度、浊度等模拟量的测量,根据电路分压电阻的位置分为两种,可以参看图示选择正确的电路连接形式;可自定义分压电阻阻值;目前支持8位 /10位转换精度;可选择生成汇编/C源代码格式的数据等。   2. LED 编码器 本功能主要用于自动根据图形信息、段位置信息生成可保存在单片机程序存储器中供查表使用的数据。可自行定义字符的图形及各段的位置信息;可以选择LED类型,目前有 7段、14段、16段三种类型;自带图形定义,也可自定义并能保存自定义方案;自定义位置信息并可保存;可以生成 8位、4位编码,4位编码主要针对一些有 4个COM端的LED/LCD驱动器;同样可以保存为C/ASM格式数据。   3. 色环电阻阻值计算 本功能主要为记不住色环值的人(像我)用的,比较简单,单击相应环的相应颜色,阻值将实时给出。   4. Hex/Bin转换 Intel Hex格式文件和Bin格式文件相互转换,本功能使用机会较少。 Hex/Bin文件转换为文本方式(变量定义方式),将Hex文件或Bin文件转换为C/ASM源代码格式的数据。 CRC计算,提供3种计算方法。   5. 串口调试器 可以通过串口接收/发送数据,作为普通的串口调试器,可以手动发送所填内容,也可以发送整个文件;   内存映射功能,对于监控单片机内存非常方便,还可以定义内存变量,自动从接收到的数据中提取变量值,支持字节型、整型、长整型、浮点型、双精度型、位掩码(可用于位变量)、数组型(其他不规则变量)等,同时支持10进制、16进制、2进制显示;可以自由选择需要实时监测的变量;变量方案可以存盘等等;可以设为固定长度或定义首/尾标志,设置内存中实际起始地址,显示时和计算变量时用;由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本);   变量组合,适用于文本方式的变量监测,例如: Var1=1111#var2=2222#var3=333.333   通讯时可以选择二进制、文本方式显示;可设置自动滚屏;设置最大显示行数; 可以选择多命令交互方式通讯,且可以作为主发方、从发方;主发时可以循环发送所选命令;从发时可以定义自动应答命令,即接收到表中所列的命令后,自动用相应内容应答,是不是很实用?   可以设为手动发送或定时发送。   可自定义通讯超时时间。   可以保存历史数据,包括发送和接收数据!   计划加入调制解调器控制。   6. 端口监视器 监视所选串口/并口的一切通讯活动而不占用其资源,可以设置过滤条件,可同时监视多个端口,可以保存数据,可以直接记录到文件中。

    标签: 多功能 单片机 开发工具

    上传时间: 2013-10-13

    上传用户:大灰狼123456

  • 混合串口调试工具_软件下载

         软件名称:Commix混合串口调试工具软件版本:1.0 软件作者:周陈平作者邮件:ggenien@163.com 软件容量:193KB 软件语言:简体中文授权形式:免费软件应用平台:Win95/98/NT/2000 发布日期:2001年11月06日软件介绍: 很好的串口调试工具,能够混合输入、显示16进制数、10进制数、ASCII字符,能按多种常用方法(如Modbus等)自动加入校验,还可将设定好的参数保存为注册表文件,尤其适合做工业控制方面的通讯调试。使用说明按界面上的“?”就能看到。只有一个执行文件,不用安装。 打开程序后,有16个串口可供选择 Commix 混合输入串口调试工具     Commix设计为串口调试工具,最大特点是:能够混合输入16进制数、10进制数、ASCII字符,这种功能通过转义符“\”实现。 界面说明: 1、 HEX:           输入数据看作16进制字节,不区分大小写     ASCII:         输入数据看作ASCII字符     忽略空格输入:  是否忽略用户输入数据中的空格     自动换行:      是否在接收与发送的数据之间自动换行显示 2、 在HEX和ASCII方式输入时,转义符输入都有效 3、 在ASCII方式,20h到7Eh的字符直接显示,其他字符显示为转义符形式 4、 如果改变显示区的光标位置,新的显示将插入在光标处 5、 用户输入(从串口输出)的数据显示为绿色,从串口输入的数据显示为蓝色,发送到接收之间的间隔时间(毫秒)显示为灰色,用户在显示区输入的字符显示为黑色 6、 程序不检测串口状态,因此也能用于最简单的3线制(第2、3、5针)RS232通讯 7、 串口打开后,修改通讯参数时不必关闭,新参数立即生效 8、 程序结束时,参数自动保存到注册表;点击注册表图标,可将当前设置保存到注册表文件 校验使用: 1、 主界面上,“校验”复选框被选中时,会出现校验设置窗口 2、 选择不同的校验方式,会有不同的选项出现     HEX/ASCII:    选择校验结果的存放方式 3、 如果校验被允许,程序将按“数据 校验 结束符”的顺序发送,结束符的默认格式与主界面上的HEX/ASCII设置相同 转义符使用: 1、 16进制输入:     \xhh 2、 10进制输入:     \ddd 3、 预定义字符输入: \ccc 或 \cc 或 \\ 4、 显示字符输入:   \ra 5、 转义符输入长度必须与上述相符,不区分大小写 转义符使用举例:     \x1B 、\027 、\ESC 的值是 1Bh     \x0d 、\013 、\cr  的值是 0Dh     \rA  、\065        的值是 41h     \\   、\r\  、\x5C 的值是 字符\     ASCII输入:  \stx011234R01\etx57\cr\lf       与HEX输入:02 30 31 31 32 33 34 \rR 30 31 03 \r5 \r7 \cr\lf 是相同的 转义符中的预定义字符:     输入    值     \\      字符\     \LF     0Ah     \CR     0Dh     \NUL    0     \SOH    1     \STX    2     \ETX    3     \EOT    4     \ENQ    5     \ACK    6     \NAK    15h     \CAN    18h     \ESC    27h

    标签: 串口调试工具 软件

    上传时间: 2013-11-20

    上传用户:dalidala