对应程序: #include<reg52.h> #define uint unsigned int #define uChar unsigned Char uChar code tab[]={ 0x81, 0x42, 0x24, 0x18, }; void delay(uint z) { uint i,j; for(i=z;i>0;i--) for(j=120;j>0;j--); } void init() { P0=0x00; }
上传时间: 2014-01-17
上传用户:ruan2570406
第五章 Keil C51库函数参考 C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51的库函数系统。 1. 第一节 本征库函数(intrinsic routines)和非本征证库函数 C51提供的本征函数是指编译时直接将固定的代码插入当前行,而不是用ACALL和LCALL语句来实现,这样就大大提供了函数访问的效率,而非本征函数则必须由ACALL及LCALL调用。 C51的本征库函数只有9个,数目虽少,但都非常有用,列如下: _crol_,_cror_:将Char型变量循环向左(右)移动指定位数后返回 _iror_,_irol_:将int型变量循环向左(右)移动指定位数后返回 _lrol_,_lror_:将long型变量循环向左(右)移动指定位数后返回 _nop_: 相当于插入NOP _testbit_: 相当于JBC bitvar测试该位变量并跳转同时清除。 _chkfloat_: 测试并返回源点数状态。 使用时,必须包含#inclucle 一行。 如不说明,下面谈到的库函数均指非本征库函数
上传时间: 2013-10-19
上传用户:1184599859
假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 /* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值 */ #define A 10 Char value; Char filter() { Char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰 对温度、液位的变化缓慢的被测参数有良好的滤波效果 C、缺点: 对流量、速度等快速变化的参数不宜 /* N值可根据实际情况调整 排序采用冒泡法*/
上传时间: 2014-12-26
上传用户:nanshan
#ifndef __485_C__ #define __485_C__ #include #include #define unsigned Char uChar #define unsigned int uint /* 通信命令 */ #define __ACTIVE_ 0x01 // 主机询问从机是否存在 #define __GETDATA_ 0x02 // 主机发送读设备请求 #define __OK_ 0x03 // 从机应答 #define __STATUS_ 0x04 // 从机发送设备状态信息 #define __MAXSIZE 0x08 // 缓冲区长度 #define __ERRLEN 12 // 任何通信帧长度超过12则表示出错 uChar dbuf[__MAXSIZE]; // 该缓冲区用于保存设备状态信息 uChar dev; // 该字节用于保存本机设备号 sbit M_DE = P1^0; // 驱动器使能,1有效 sbit M_RE = P1^1; // 接收器使能,0有效
上传时间: 2014-12-26
上传用户:604759954
AVRPRO烧录器,是针对ATMEL公司的90系列AVR精简指令单片机设计的专用烧录工具该产品只有软件部分,无需硬件支持,仅仅只需4根线,将计算机并口和用户板相连,这都是因为采用了ISP串行编程。软件支持擦、写、校验、写保护位以及批处理。使用极其方便。 该产品的最大优点有: 1. 使用串行编程,达到了在线编程,节省了购买万用编程器和适配器的费用(万用编程器需2千元左右,适配器需3、4百元,并各个芯片和封装需不同适配器)。用户板也无需在焊插座(带来可靠性下降),而且为软件升级带来了极大的便利。 2. 使用方便,无需硬件,给现场调试带来了极大的便利,不用再带笨重的编程器,而且为AVR单片机的使用上带来了方便。 3. 价格实在太便宜,为您省了不少钱。 硬件使用说明: 并口和用户板连接说明 并口2脚<―――>用户板单片机MOSI 并口3脚<―――>用户板单片机SCK 并口12脚<―――>用户板单片机MISO 并口25脚<―――>用户板单片机GND 软件使用说明: 软件名是AVRPRO.EXE,支持DOS,WIN9x,支持.hex(intel)格式,可直接运行AVRPRO.EXE,也可以键入AVRPRO.EXE 目录\文件名.HEX,直接运行时可进入菜单,可选择擦、写、校验、写保护位以及批处理。键入文件名时,软件运行批处理,自动完成擦、写、校验、写保护位
上传时间: 2014-12-27
上传用户:zhang97080564
串行传送的特点 随着多微机系统的应用和微机网络的发展,通信功能显得越来越重要。这里所说的通信是指计算机与外界的信息交换。因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换。由于串行通信所用的传输线少,并且可以借助现存的电话网进行信息传送,因此,特别适合于远距离传送。对于那些与计算机相距不远的人机交换设备和串行存储的外部设备(磁盘等),采用串行方式交换数据也很普遍。在实时控制和管理方面,采用多台微处理机组成分级分布式控制系统,其中各CPU之间的通信一般都是串行方式。所以,串行接口是微机应用系统常用的接口。串行传送是在一根传输线上一位一位的传送,这根线既做数据线又做联络线,也就是说要在一根传输线上既传送数据信息,又传送联络控制信息,这就是串行方式传送的第一个特点。那么,如何来识别在一根线串行传送的信息流中,哪一部分是联络信号,哪一部分是数据信号。为解决这个问题,就引出了串行通信的数据格式的约定。因此,串行传送的第二个特点是它的数据格式有固定的要求(即固定的数据格式),分异步和同步数据格式,与此相应,就有异步通信和同步通信两种方式。异步通信方式是按字符传送的,而同步通信是按数据块传送的。
上传时间: 2014-12-27
上传用户:shen007yue
钟是现代人类日常生活必不可少的工具,语音时钟更是现在电子时钟多功能化发展的一个方向。语音电子钟具有突出的播报时间的功能,它被广泛用在生活中的各种场合。本设计就是从日常生活中常见的事物入手,通过对语音电子钟的设计,让我认识到单片机已经深入到我们生活的每个领域。 本文从语音电子钟的设计原理、设计方案入手,详细介绍了系统硬件设计、软件设计及调试。在语音电子钟的设计中,要处理好以下几个关键:D/A(数/模)转换,语音识别,人机接口,程序设计。D/A(数/模)和语音识别技术关系到时间的正确播报,人机接口是播报时间和调整时间的关键。利用凌阳SPCE061A单片机在语音识别和处理方面的优点,结合实践,设计出有特色的语音电子钟。
上传时间: 2013-10-30
上传用户:feitian920
清单1 LSDAA: ADC R16,R16 ;十进制数(在R16中)左移调整子程序 ADDAA: IN R6,SREG ;bcd码相加调整子程序,先保存相加后的 LDI R17,$66 ;状态the old status ADD R16,R17 ;再将和预加立即数$66 IN R17,SREG ;输入相加后新状态(the new status) OR R6,R17 ;新旧状态相或 SBRS R6,0 ;相或后进位置位则跳行 SUBI R16,$60 ;否则减去$60(十位bcd不满足调整条件) SBRS R6,5 ;半进位置位则跳行 SUBI R16,6 ;否则减去$06(个位bcd不满足调整条件) ROR R6 ;向高位BCD返还进位位! RET
上传时间: 2013-10-08
上传用户:zh_901
/通过DS18B20测试当前环境温度, 并通过数码管显示当前温度值, 目前显示范围: 0.0~ +99.9度 #include #include #define uChar unsigned Char #define uint unsigned int #define DATAPORT P0 //定义P0口为Led数据口 //#define SETTEMP P1 //定义P1口为设定温度 #define SELECT P2 //定义P2口为选择信号 sbit L1 = P1^1; //灯作为电机 sbit L2 = P1^2; sbit L3 = P1^3;
上传时间: 2013-11-04
上传用户:liulinshan2010
将汽车控制器线束接入该测试仪器,做好汽车控制信号与仪器端口的一一对应。然后通过上位机的参数设置(试验次数和间隔周期等参数),到这里我们就可以点击开始测试按钮,进行测试试验。 系统功能描述它具有32路TTL数字信号测量,8路模拟信号测量,40个5V双刀双掷继电器的自诊断控制,通过USB总线与计算机进行数据传输和受控制指令的传输,将和测试数据上传,由上位计算机对数据进行分析、统计和存储,内部实时时钟指示,还可通过RS485进行远程数据上传。工作原理是,系统上电后,固件开始运行,通过初始化和自检程序后进入菜单选择界面,按照使用目的进入对应菜单进行操作。
上传时间: 2013-11-07
上传用户:RQB123