cpubbs 日志 - cpubbs虚拟仪器论坛 - cpubbs论坛免费虚拟仪器博客 labview虚拟仪器讨论区 - cpubbs论坛 虚拟仪器论坛|labview论坛|labwindows论坛|vi|cvi|数据采集卡|入门教程|初学|软件下载|虚拟仪器免费博客|虚拟仪器电子商务|虚拟仪器商城|虚拟仪器人才中心|图形化单片机编程cpuview|虚拟仪器在线商城 - Powered by X-Space
cpubbs论坛,专业的labview,labwindows,虚拟仪器数据采集卡交流论坛,免费博客,人才中心,电子商贸,欢迎您的光临!

发布新日志

  • at信息[转贴]

    2008-01-10 23:27:34

    AT指令測試成功 (外接式GPRS mode)

    ASCI碼指令

    功能

    手機回答

    AT回車

    握手

    OK

    ATE

    簡化顯示

    OK

    AT+CLCC

    來電顯示

    OK      來電話時串口輸出:RING

    AT+CNMI

    新資訊指示。這個命令選擇如何從網路上接收短資訊

    AT+CNMI=1,1,2

    設置收到短消息提示

    OK

    +CMTI:“SM”,4

    4表示手機內短消息數量

    AT+CMGL

    列出SIM卡中的短消息PDU/text

    0/REC UNREAD-未讀

    1/REC READ-已讀

    2/STO UNSENT-待發

    3/STO SENT-已發

    4/ALL-全部的)

    AT+CMGL=0

    讀取電話上全部未讀過的SMS消息

    AT+CMGL=4

    讀取全部SMS消息

    AT+CMGR=X回車

    讀取第X條短消息。資訊從+CPMS命令設定的記憶體讀取

    AT+CMGF=0回車

    PDU格式

    AT+CMGD=X回車

    刪除第X條短消息

    AT+CLIP=1,1

    來電自動顯示的指令

    ERROR

    來電話!

     

    RING   +CLIP: 13306285091,129

    AT+CMGR=1

    讀取第1條短信

    0:未讀過,新的短資訊

    1:已讀過

    第二個1表示已讀

    150 表示PDU資料的長度

    1 表示讀取第幾條短信

    +CMGR: 1,1,,150

    AT+CMGW

    SIM內存中寫入待發的短消息

    AT+CSCA

    短消息中心地址

    AT+CSCB

    選擇蜂窩廣播消息

    AT+CSMS

    選擇短消息服務。支援的服務有GSM-MOSMS-MTSMS-CB

    AT+CSDH

    顯示文本方式的參數

    ATD

    撥號命令。這個命令用來設置通話、資料或傳真呼叫

    ATH

    掛機命令

    ATA

    接電話

    AT+CEER

    擴展錯誤報告。這個命令給出當上一次通話設置失敗後中斷通話的原因。

    AT+CSNS

    單一編號方案

     

     

    用外接式GPRS mode之測試結果:

    AT+CMGL 列出SIM卡中的短消息PDU/text

      0/REC UNREAD-未讀,

      1/REC READ-已讀,

      2/STO UNSENT-待發,

      3/STO SENT-已發,

      4/ALL-全部的)

     

    出: AT+CMGL=0  //讀取電話上全部未讀過的SMS消息

    傳回: OK           //已經都讀取過

     

    送出AT+CMGL=1   //已讀

    傳回:

    +CMGL: 1,1,,23

    0791889623048014040C918896122907300000705051412285230461F8B90D

    +CMGL: 2,1,,25

    0791889623048014040C9188961229073000007050514114402306EF356C7D6E03

    +CMGL: 26,1,,155

    0791889623048014040C9188961115106900087040510100742388833256E060A8672A4F9D50B552

    D9535455466A5F5236630966427E737D0DFF1467084EFD6B3E9805FF0C53F065B09280884C727952

    2563D0919260A8FF0C67009072980865BC672C6708FF11FF1665E5524D7E736B3EFF0C4EE5514D55

    AA59315206671F90846B3E6B0A76CA3002598267094EFB4F55554F984C6B618FCE4F8696FB6D3D8A

    623002

     

    OK

  • 另一个更详细的AT指令集[转贴]

    2008-01-10 23:25:34

     

    1.通用指令

    AT指令

    说明

    AT+CGMI

    厂家认证请求,返回模块厂家信息

    AT+CGMM

    模式认证请求,返回模块使用频段

    AT+CGMR

    修正认证请求,返回软件版本

    AT+CGSN

    查看产品IMEI序列号

    AT+CSCS

    选择TE特性设置

    AT+WPCS

    选择ME特性设置

    AT+CIMI

    IMSI认证请求,返回SIM卡的IMSI

    AT+CCID

    获得SIM卡标识

    AT+GCAP

    查看功能列表

    A/

    重复上次命令

    AT+CPOF

    停止模块的运行

    AT+CFUN

    设置模块状态

    AT+CPAS

    查看模块当前活动状态

    AT+CMEE

    选择模块错误报告方式

    AT+CKPD

    模拟小键盘控制操作

    AT+CCLK

    设置或查看当前日期和时间

    AT+CALA

    设置警报日期和时间

    AT+CRMP

    演示铃声

    AT+CRSL

    设置振铃声音大小

    2.电话控制指令

    AT指令

    说明

    ATD

    拨号

    ATH

    挂机

    ATA

    接电话

    AT+CEER

    查看呼叫失败原因

    AT+VTD

    设置DTMF(双音多频)语音长度

    AT+VTS

    发送DTMF语音

    ATDL

    重拨上一次电话号码

    ATDn

    根据DTR信号自动拨号

    ATS0

    设置自动应答

    AT+CICB

    来电信差???

    AT+CSNS

    单一编号方案???

    AT+VGR

    调整接收声音增益

    AT+VGT

    调整发送声音增益

    AT+CMUT

    设置话筒静音

    AT+SPEAKER

    话筒选择

    AT+ECHO

    设置回音取消

    AT+SIDET

    设置侧音修正

    AT+VIP

    恢复到默认语音设置

    3.网络服务指令

    AT指令

    说明

    AT+CSQ

    查看网络信号质量

    AT+COPS

    选择服务商

    AT+CREG

    查看当前网络注册状态

    AT+WOPN

    文字方式显示网络提供商

    AT+CPOL

    查看优先网络列表

    4.安全指令

     

    AT指令

     

    说明

     

    AT+CPIN

     

    输入PIN

     

    AT+CPIN2

     

    输入PIN2

     

    AT+CPINC

     

    查看密码剩余尝试次数

     

    AT+CLCK

     

    锁住或解锁设备某些功能

     

    AT+CPWD

     

     

  • at+vcid来电显示

    2008-01-10 23:05:40

    +VCID=n---来电者标识。AT+VCID 启用/禁用呼叫者标识。
    参数:n = 0, 1, 2
    n = 0
    禁用呼叫者标识

    n = 1
    启用呼叫者标识,此为带格式的呼叫者报告
    n = 2
    启用呼叫者标识,此为不带格式的呼叫者报告
  • 74系列芯片功能大全[转贴]

    2007-12-27 11:14:10

    7400TTL2输入端四与非门7401TTL集电极开路2输入端四与非门7402TTL2输入端四或非门7403TTL集电极开路2输入端四与非门7404TTL六反相器7405TTL集电极开路六反相器7406TTL集电极开路六反相高压驱动器7407TTL集电极开路六正相高压驱动器7408TTL2输入端四与门7409TTL集电极开路2输入端四与门7410TTL3输入端3与非门74107TTL带清除主...

    同型号的74系列、74HC系列、74LS系列芯片,逻辑功能上是一样的。74LSxx、74HCxx的使用说明可参阅74xx的使用说明。 有些型号里包含了几种型号,如74HC161资料里包含了74HC160、74HC161、74HC162、74HC163四种芯片的功能。    
    7400 TTL 2输入端四与非门
    7401 TTL 集电极开路2输入端四与非门
    7402 TTL 2输入端四或非门
    7403 TTL 集电极开路2输入端四与非门
    7404 TTL 六反相器
    7405 TTL 集电极开路六反相器
    7406 TTL 集电极开路六反相高压驱动器
    7407 TTL 集电极开路六正相高压驱动器
    7408 TTL 2输入端四与门
    7409 TTL 集电极开路2输入端四与门
    7410 TTL 3输入端3与非门
    74107 TTL 带清除主从双J-K触发器
    74109 TTL 带预置清除正触发双J-K触发器
    7411 TTL 3输入端3与门
    74112 TTL 带预置清除负触发双J-K触发器
    7412 TTL 开路输出3输入端三与非门
    74121 TTL 单稳态多谐振荡器
    74122 TTL 可再触发单稳态多谐振荡器
    74123 TTL 双可再触发单稳态多谐振荡器
    74125 TTL 三态输出高有效四总线缓冲门
    74126 TTL 三态输出低有效四总线缓冲门
    7413 TTL 4输入端双与非施密特触发器
    74132 TTL 2输入端四与非施密特触发器
    74133 TTL 13输入端与非门
    74136 TTL 四异或门
    74138 TTL 3-8线译码器/复工器
    74139 TTL 双2-4线译码器/复工器
    7414 TTL 六反相施密特触发器
    74145 TTL BCD—十进制译码/驱动器
    7415 TTL 开路输出3输入端三与门
    74150 TTL 16选1数据选择/多路开关
    74151 TTL 8选1数据选择器
    74153 TTL 双4选1数据选择器
    74154 TTL 4线—16线译码器
    74155 TTL 图腾柱输出译码器/分配器
    74156 TTL 开路输出译码器/分配器
    74157 TTL 同相输出四2选1数据选择器
    74158 TTL 反相输出四2选1数据选择器
    7416 TTL 开路输出六反相缓冲/驱动器
    74160 TTL 可预置BCD异步清除计数器
    74161 TTL 可予制四位二进制异步清除计数器
    74162 TTL 可预置BCD同步清除计数器
    74163 TTL 可予制四位二进制同步清除计数器
    74164 TTL 八位串行入/并行输出移位寄存器
    74165 TTL 八位并行入/串行输出移位寄存器
    74166 TTL 八位并入/串出移位寄存器
    74169 TTL 二进制四位加/减同步计数器
    7417 TTL 开路输出六同相缓冲/驱动器
    74170 TTL 开路输出4×4寄存器堆
    74173 TTL 三态输出四位D型寄存器
    74174 TTL 带公共时钟和复位六D触发器
    74175 TTL 带公共时钟和复位四D触发器
    74180 TTL 9位奇数/偶数发生器/校验器
    74181 TTL 算术逻辑单元/函数发生器
    74185 TTL 二进制—BCD代码转换器
    74190 TTL BCD同步加/减计数器
    74191 TTL 二进制同步可逆计数器
    74192 TTL 可预置BCD双时钟可逆计数器
    74193 TTL 可预置四位二进制双时钟可逆计数器
    74194 TTL 四位双向通用移位寄存器
    74195 TTL 四位并行通道移位寄存器
    74196 TTL 十进制/二-十进制可预置计数锁存器
    74197 TTL 二进制可预置锁存器/计数器
    7420 TTL 4输入端双与非门
    7421 TTL 4输入端双与门
    7422 TTL 开路输出4输入端双与非门
    74221 TTL 双/单稳态多谐振荡器
    74240 TTL 八反相三态缓冲器/线驱动器
    74241 TTL 八同相三态缓冲器/线驱动器
    74243 TTL 四同相三态总线收发器
    74244 TTL 八同相三态缓冲器/线驱动器
    74245 TTL 八同相三态总线收发器
    74247 TTL BCD—7段15V输出译码/驱动器
    74248 TTL BCD—7段译码/升压输出驱动器
    74249 TTL BCD—7段译码/开路输出驱动器
    74251 TTL 三态输出8选1数据选择器/复工器
    74253 TTL 三态输出双4选1数据选择器/复工器
    74256 TTL 双四位可寻址锁存器
    74257 TTL 三态原码四2选1数据选择器/复工器
    74258 TTL 三态反码四2选1数据选择器/复工器
    74259 TTL 八位可寻址锁存器/3-8线译码器
    7426 TTL 2输入端高压接口四与非门
    74260 TTL 5输入端双或非门
    74266 TTL 2输入端四异或非门
    7427 TTL 3输入端三或非门
    74273 TTL 带公共时钟复位八D触发器
    74279 TTL 四图腾柱输出S-R锁存器
    7428 TTL 2输入端四或非门缓冲器
    74283 TTL 4位二进制全加器
    74290 TTL 二/五分频十进制计数器
    74293 TTL 二/八分频四位二进制计数器
    74295 TTL 四位双向通用移位寄存器
    74298 TTL 四2输入多路带存贮开关
    74299 TTL 三态输出八位通用移位寄存器
    7430 TTL 8输入端与非门
    7432 TTL 2输入端四或门
    74322 TTL 带符号扩展端八位移位寄存器
    74323 TTL 三态输出八位双向移位/存贮寄存器
    7433 TTL 开路输出2输入端四或非缓冲器
    74347 TTL BCD—7段译码器/驱动器
    74352 TTL 双4选1数据选择器/复工器
    74353 TTL 三态输出双4选1数据选择器/复工器
    74365 TTL 门使能输入三态输出六同相线驱动器
    74365 TTL 门使能输入三态输出六同相线驱动器
    74366 TTL 门使能输入三态输出六反相线驱动器
    74367 TTL 4/2线使能输入三态六同相线驱动器
    74368 TTL 4/2线使能输入三态六反相线驱动器
    7437 TTL 开路输出2输入端四与非缓冲器
    74373 TTL 三态同相八D锁存器
    74374 TTL 三态反相八D锁存器
    74375 TTL 4位双稳态锁存器
    74377 TTL 单边输出公共使能八D锁存器
    74378 TTL 单边输出公共使能六D锁存器
    74379 TTL 双边输出公共使能四D锁存器
    7438 TTL 开路输出2输入端四与非缓冲器
    74380 TTL 多功能八进制寄存器
    7439 TTL 开路输出2输入端四与非缓冲器
    74390 TTL 双十进制计数器
    74393 TTL 双四位二进制计数器
    7440 TTL 4输入端双与非缓冲器
    7442 TTL BCD—十进制代码转换器
    74352 TTL 双4选1数据选择器/复工器
    74353 TTL 三态输出双4选1数据选择器/复工器
    74365 TTL 门使能输入三态输出六同相线驱动器
    74366 TTL 门使能输入三态输出六反相线驱动器
    74367 TTL 4/2线使能输入三态六同相线驱动器
    74368 TTL 4/2线使能输入三态六反相线驱动器
    7437 TTL 开路输出2输入端四与非缓冲器
    74373 TTL 三态同相八D锁存器
    74374 TTL 三态反相八D锁存器
    74375 TTL 4位双稳态锁存器
    74377 TTL 单边输出公共使能八D锁存器
    74378 TTL 单边输出公共使能六D锁存器
    74379 TTL 双边输出公共使能四D锁存器
    7438 TTL 开路输出2输入端四与非缓冲器
    74380 TTL 多功能八进制寄存器
    7439 TTL 开路输出2输入端四与非缓冲器
    74390 TTL 双十进制计数器
    74393 TTL 双四位二进制计数器
    7440 TTL 4输入端双与非缓冲器
    7442 TTL BCD—十进制代码转换器
    74447 TTL BCD—7段译码器/驱动器
    7445 TTL BCD—十进制代码转换/驱动器
    74450 TTL 16:1多路转接复用器多工器
    74451 TTL 双8:1多路转接复用器多工器
    74453 TTL 四4:1多路转接复用器多工器
    7446 TTL BCD—7段低有效译码/驱动器
    74460 TTL 十位比较器
    74461 TTL 八进制计数器
    74465 TTL 三态同相2与使能端八总线缓冲器
    74466 TTL 三态反相2与使能八总线缓冲器
    74467 TTL 三态同相2使能端八总线缓冲器
    74468 TTL 三态反相2使能端八总线缓冲器
    74469 TTL 八位双向计数器
    7447 TTL BCD—7段高有效译码/驱动器
    7448 TTL BCD—7段译码器/内部上拉输出驱动
    74490 TTL 双十进制计数器74491 TTL 十位计数器
    74498 TTL 八进制移位寄存器
    7450 TTL 2-3/2-2输入端双与或非门
    74502 TTL 八位逐次逼近寄存器
    74503 TTL 八位逐次逼近寄存器
    7451 TTL 2-3/2-2输入端双与或非门
    74533 TTL 三态反相八D锁存器
    74534 TTL 三态反相八D锁存器
    7454 TTL 四路输入与或非门
    74540 TTL 八位三态反相输出总线缓冲器
    7455 TTL 4输入端二路输入与或非门
    74563 TTL 八位三态反相输出触发器
    74564 TTL 八位三态反相输出D触发器
    74573 TTL 八位三态输出触发器
    74574 TTL 八位三态输出D触发器
    74645 TTL 三态输出八同相总线传送接收器
    74670 TTL 三态输出4×4寄存器堆
    7473 TTL 带清除负触发双J-K触发器
    7474 TTL 带置位复位正触发双D触发器
    7476 TTL 带预置清除双J-K触发器
    7483 TTL 四位二进制快速进位全加器
    7485 TTL 四位数字比较器
    7486 TTL 2输入端四异或门
    7490 TTL 可二/五分频十进制计数器
    7493 TTL 可二/八分频二进制计数器
    7495 TTL 四位并行输入\输出移位寄存器
    7497 TTL 6位同步二进制乘法器
     
    常用74系列标准数字电路的中文名称资料
    器件代号 器件名称 74 74LS 74HC
    00 四2输入端与非门 √ √ √
    01 四2输入端与非门(OC) √ √
    02 四2输入端或非门 √ √ √
    03 四2输入端与非门(OC) √ √
    04 六反相器 √ √ √
    05 六反相器(OC) √ √
    06 六高压输出反相器(OC,30V) √ √
    07 六高压输出缓冲,驱动器(OC,30V) √ √ √
    08 四2输入端与门 √ √ √
    09 四2输入端与门(OC) √ √ √
    10 三3输入端与非门 √ √ √
    11 三3输入端与门 √ √
    12 三3输入端与非门(OC) √ √ √
    13 双4输入端与非门 √ √ √
    14 六反相器 √ √ √
    15 三3输入端与门 (OC) √ √
    16 六高压输出反相器(OC,15V) √
    17 六高压输出缓冲,驱动器(OC,15V) √
    20 双4输入端与非门 √ √ √
    21 双4输入端与门 √ √ √
    22 双4输入端与非门(OC) √ √
    25 双4输入端或非门(有选通端) √ √ √
    26 四2输入端高压输出与非缓冲器 √ √ √
    27 三3输入端或非门 √ √ √
    28 四2输入端或非缓冲器 √ √ √
    30 8输入端与非门 √ √ √
    32 四2输入端或门 √ √ √
    33 四2输入端或非缓冲器(OC) √ √
    37 四2输入端与非缓冲器 √ √
    38 四2输入端与非缓冲器(OC) √ √
    40 双4输入端与非缓冲器 √ √ √
    42 4线-10线译码器(BCD输入) √ √
    43 4线-10线译码器(余3码输入) √
    44 4线-10线译码器(余3葛莱码输入) √
    48 4线-7段译码器 √
    49 4线-7段译码器 √
    50 双2路2-2输入与或非门 √ √ √
    51 2路3-3输入,2路2-2输入与或非门 √ √ √
    52 4路2-3-2-2输入与或门 √
    53 4路2-2-2-2输入与或非门 √
    54 4路2-3-3-2输入与或非门 √ √
    55 2路4-4输入与或非门 √
    60 双4输入与扩展器 √ √
    61 三3输入与扩展器 √
    62 4路2-3-3-2输入与或扩展器 √
    64 4路4-2-3-2输入与或非门 √
    65 4路4-2-3-2输入与或非门(OC) √
    70 与门输入J-K触发器 √
    71 与或门输入J-K触发器 √
    72 与门输入J-K触发器 √
    74 双上升沿D型触发器 √ √
    78 双D型触发器 √ √
    85 四位数值比较器 √
    86 四2输入端异或门 √ √ √
    87 4位二进制原码/反码 √
    95 4位移位寄存器 √
    101 与或门输入J-K触发器 √
    102 与门输入J-K触发器 √
    107 双主-从J-K触发器 √
    108 双主-从J-K触发器 √
    109 双主-从J-K触发器 √
    110 与门输入J-K触发器 √
    111 双主-从J-K触发器 √ √
    112 双下降沿J-K触发器 √
    113 双下降沿J-K触发器 √
    114 双下降沿J-K触发器 √
    116 双4位锁存器 √
    120 双脉冲同步驱动器 √
    121 单稳态触发器 √ √ √
    122 可重触发单稳态触发器 √ √ √
    123 可重触发双稳态触发器 √ √ √
    125 四总线缓冲器 √ √ √
    126 四总线缓冲器 √ √ √
    128 四2输入端或非线驱动器 √ √ √
    132 四2输入端与非门 √ √ √ 
  • cpuview最新面板

    2007-11-08 18:37:15

    cpubbs论坛产品这一:CPUVIEW图形化单片机编程系统,现在已经能支持到ARM芯片了,正在研发一个核心工控板,用CPUVIEW能实现为其编程,实现可编程可扩展的多功能采集卡的功能!

     

    cpuview专题贴地址如下:

    http://www.cpubbs.com/forum/viewthread.php?tid=18681&extra=page%3D1

  • 器件功能列表集锦(不断增加收录)

    2007-10-08 09:55:28

    这些资料均是收录自互联网,不断增加:

     

    MAX889T电压反相器

  • cpuview图形化单片机编程系统最新版可以支持到ARM等任意CPU

    2007-10-07 09:53:08

    最新版本的CPUVIEW图形化单片机编程系统现在扩展成功编译器,用户自写程序节点等功能,使CPUVIEW成为通用的图形化单片机编程系统成为了可能,我们只需要将需要扩展的CPU库和编译器添加,即可支持该CPU了!详情请查看:

    http://www.cpubbs.com/forum/viewthread.php?tid=18681&extra=page%3D1

  • [转]10种软件滤波方法的示例程序

    2007-09-12 09:51:30

    假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad();

    1、限副滤波
    /*  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、中位值滤波法
    /*  N值可根据实际情况调整
        排序采用冒泡法*/
    #define N  11

    char filter()
    {
       char value_buf[N];
       char count,i,j,temp;
       for ( count=0;count<N;count++)
       {
          value_buf[count] = get_ad();
          delay();
       }
       for (j=0;j<N-1;j++)
       {
          for (i=0;i<N-j;i++)
          {
             if ( value_buf[i]>value_buf[i+1] )
             {
                temp = value_buf[i];
                value_buf[i] = value_buf[i+1];
                 value_buf[i+1] = temp;
             }
          }
       }
       return value_buf[(N-1)/2];
    }     

    3、算术平均滤波法
    /*
    */

    #define N 12

    char filter()
    {
       int  sum = 0;
       for ( count=0;count<N;count++)
       {
          sum + = get_ad();
          delay();
       }
       return (char)(sum/N);
    }

    4、递推平均滤波法(又称滑动平均滤波法)
    /*
    */
    #define N 12

    char value_buf[N];
    char i=0;

    char filter()
    {
       char count;
       int  sum=0;
       value_buf[i++] = get_ad();
       if ( i == N )   i = 0;
       for ( count=0;count<N,count++)
          sum = value_buf[count];
       return (char)(sum/N);
    }

    5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
    /*
    */
    #define N 12

    char filter()
    {
       char count,i,j;
       char value_buf[N];
       int  sum=0;
       for  (count=0;count<N;count++)
       {
          value_buf[count] = get_ad();
          delay();
       }
       for (j=0;j<N-1;j++)
       {
          for (i=0;i<N-j;i++)
          {
             if ( value_buf[i]>value_buf[i+1] )
             {
                temp = value_buf[i];
                value_buf[i] = value_buf[i+1];
                 value_buf[i+1] = temp;
             }
          }
       }
       for(count=1;count<N-1;count++)
          sum += value[count];
       return (char)(sum/(N-2));
    }

    6、限幅平均滤波法
    /*
    */  
    略 参考子程序1、3

    7、一阶滞后滤波法
    /* 为加快程序处理速度假定基数为100,a=0~100 */

    #define a 50

    char value;

    char filter()
    {
       char  new_value;
       new_value = get_ad();
       return (100-a)*value + a*new_value;
    }

    8、加权递推平均滤波法
    /* coe数组为加权系数表,存在程序存储区。*/

    #define N 12

    char code coe[N] = {1,2,3,4,5,6,7,8,9,10,11,12};
    char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;

    char filter()
    {
       char count;
       char value_buf[N];
       int  sum=0;
       for (count=0,count<N;count++)
       {
          value_buf[count] = get_ad();
          delay();
       }
       for (count=0,count<N;count++)
          sum += value_buf[count]*coe[count];
       return (char)(sum/sum_coe);
    }

    9、消抖滤波法

    #define N 12

    char filter()
    {
       char count=0;
       char new_value;
       new_value = get_ad();
       while (value !=new_value);
       {
          count++;
          if (count>=N)   return new_value;
           delay();
          new_value = get_ad();
       }
       return value;    
    }

    10、限幅消抖滤波法
    /*
    */
    略 参考子程序1、9
  • 电机测速原理[转贴]

    2007-09-07 18:33:00

    一般可以使用霍尔或者光电对管测速

    拿霍尔为例,在转轴上想办法安装一个或等间距的安装几个磁性物质,然后将霍尔器件固定在靠近转轴的地方。这样,在转轴旋转的时候,磁性物质靠近霍尔器件,就会输出一个脉冲。在一定时间内对脉冲计数,就可以知道这段时间内转轴转了几圈了,也就实现了测速。

    如果使用光电对管,也是一样的道理。在转轴上安装一个转盘,转盘上等间距的刻有几条缝隙(或小孔)。把光电对管安装在转盘两面相对的位置,缝隙转至光电对管时,光电对管中的接收管就可以接收到发射管发射的红外线,则会输出一个电平信号。类似的道理,计数,计算即可得到速度

  • 一些滤波的子函数(转贴)

    2006-11-14 10:20:59

    1、限副滤波
    /*  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、中位值滤波法
    /*  N值可根据实际情况调整
        排序采用冒泡法*/
    #define N  11

    char filter()
    {
       char value_buf[N];
       char count,i,j,temp;
       for ( count=0;count<N;count++)
       {
          value_buf[count] = get_ad();
          delay();
       }
       for (j=0;j<N-1;j++)
       {
          for (i=0;i<N-j;i++)
          {
             if ( value_buf>value_buf[i+1] )
             {
                temp = value_buf;
                value_buf = value_buf[i+1];
                 value_buf[i+1] = temp;
             }
          }
       }
       return value_buf[(N-1)/2];
    }    

    3、算术平均滤波法
    /*
    */

    #define N 12

    char filter()
    {
       int  sum = 0;
       for ( count=0;count<N;count++)
       {
          sum + = get_ad();
          delay();
       }
       return (char)(sum/N);
    }

    4、递推平均滤波法(又称滑动平均滤波法)
    /*
    */
    #define N 12

    char value_buf[N];
    char i=0;

    char filter()
    {
       char count;
       int  sum=0;
       value_buf[i++] = get_ad();
       if ( i == N )   i = 0;
       for ( count=0;count<N,count++)
          sum = value_buf[count];
       return (char)(sum/N);
    }

    5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
    /*
    */
    #define N 12

    char filter()
    {
       char count,i,j;
       char value_buf[N];
       int  sum=0;
       for  (count=0;count<N;count++)
       {
          value_buf[count] = get_ad();
          delay();
       }
       for (j=0;j<N-1;j++)
       {
          for (i=0;i<N-j;i++)
          {
             if ( value_buf>value_buf[i+1] )
             {
                temp = value_buf;
                value_buf = value_buf[i+1];
                 value_buf[i+1] = temp;
             }
          }
       }
       for(count=1;count<N-1;count++)
          sum += value[count];
       return (char)(sum/(N-2));
    }

    6、限幅平均滤波法
    /*
    */ 
    略 参考子程序1、3

    7、一阶滞后滤波法
    /* 为加快程序处理速度假定基数为100,a=0~100 */

    #define a 50

    char value;

    char filter()
    {
       char  new_value;
       new_value = get_ad();
       return (100-a)*value + a*new_value;
    }

    8、加权递推平均滤波法
    /* coe数组为加权系数表,存在程序存储区。*/

    #define N 12

    char code coe[N] = {1,2,3,4,5,6,7,8,9,10,11,12};
    char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;

    char filter()
    {
       char count;
       char value_buf[N];
       int  sum=0;
       for (count=0,count<N;count++)
       {
          value_buf[count] = get_ad();
          delay();
       }
       for (count=0,count<N;count++)
          sum += value_buf[count]*coe[count];
       return (char)(sum/sum_coe);
    }

    9、消抖滤波法

    #define N 12

    char filter()
    {
       char count=0;
       char new_value;
       new_value = get_ad();
       while (value !=new_value);
       {
          count++;
          if (count>=N)   return new_value;
           delay();
          new_value = get_ad();
       }
       return value;   
    }

Open Toolbar