登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

求单片机应用系统中去除工频干扰的程序!谢谢!

作者:thht4321 栏目:单片机
求单片机应用系统中去除工频干扰的程序!谢谢!
求单片机应用系统中去除工频干扰的程序!谢谢!最好是AVR的!谢谢!
wyhtjw@163.com

2楼: >>参与讨论
zsmbj
看看这个,对你有帮助:
 

http://lw.mumayi.net/htmldata/84/90/2005_10/article_19226_1.html

3楼: >>参与讨论
thht4321
谢谢!已看过了.最好有ATMEGA64的子程序!
单片机去工频(1)
【浩惠电子 http://www.hheet.com/bbs 版权所有】
;例程:



ORG 0000H



BEGIN: LJMP MAIN



ORG 000BH ;定时器0中断矢量地址



LJMP T0ZDFW



ORG 004BH



;~~~~~~~~~~~~~~~~~



;定时器0中断服务程序



T0ZDFW: ...... ;PUSH(保护现场)



MOV TH0, #0ECH ;采样间隔5ms(12M晶振)



MOV TL0, #78H



JB 1FH, LCGPGR



;――――――――――――-



;建立初始模板



JLCSMB: LCALL SAMPLE1 ;ADC采样,并保存采样值



;到外部RAM中



LCALL MATCH



CJNE R1, #1CH, CONT



MOV R1, #10H



CONT: DJNZ R2, NEXT



DJNZ R3, NEXT



SETB 1FH ;初始模板建立完毕



MOV R1, #11H



;11H、12H:存放初始模板值0(低地址存放低字节,高地址存放高字节)



;14H、15H:存放初始模板值1



;17H、18H:存放初始模板值2



;1AH、1BH:存放初始模板值3



NEXT: ...... ;POP



RETI



;――――――――――――-



;滤除工频干扰



LCGPGR: LCALL SAMPLE2



MOV R0, #30H



LCALL LVBO



LCALL CHANGE



DJNZ R6, NEXT



DJNZ R7, NEXT



SETB 3FH ;滤波结束



LJMP NEXT



;~~~~~~~~~~~~~~~~~



;主程序



MAIN: ...... ;程序初始化



LCALL CLEARRAM ;清内存



MOV R1, #10H



MOV R2, #00H ;256×4=1024



MOV R3, #04H



MOV R4, #00H ;R4,R5用于保存访问外部RAM的地址



MOV R5, #00H



MOV R6, #00H ;滤波信号的数据个数为



MOV R7, #00H ;256×256=65536个



SETB EA ;开中断



MOV DPTR, #00H ;外部RAM用DPTR寻址



MOV TMOD, #01H ;设置定时器0模式1



MOV TH0, #0EC H ;为定时器0赋初值



MOV TL0, #78H



CLR 1FH ;1FH为建立初始模板和滤波的判别标志



CLR 3FH ;3FH为滤波结束判别标志



SETB ET0 ;开定时器0中断



SETB TR0 ;开定时器0



WAIT: JNB 3FH, $



......



CLR TR0 ;关定时器0



......



;~~~~~~~~~~~~~~~~~



;子程功能:采样并保存



SAMPLE1: ...... ;启动A/D采样,采样值的低字节



;存放在ADCDATAL单元,采样



;值的高字节存放在ADCDATAH单元



MOV A, ADCDATAL ;读取A/D采样低字节



MOVX @DPTR, A ;存入外部RAM



INC DPTR



MOV A, ADCDATAH ;读取A/D采样高字节



MOVX @DPTR, A ;存入外部RAM



INC DPTR



RET



;――――――――――――――



;子程功能:采样



SAMPLE2: …… ;启动A/D采样,采样值的低字节



;存放在ADCDATAL单元,采样



;值的高字节存放在ADCDATAH单元



RET



;――――――――――――――



;子程功能:累加



MATCH: MOV A, ADCDATAL ;读取A/D采样低字节



ADD A, @R1



MOV @R1, A



INC R1



MOV A, ADCDATAH ;读取A/D采样高字节



ADDC A, @R1



MOV @R1, A



INC R1



MOV A, #00H



ADDC A, @R1



MOV @R1, A



INC R1



RET



;――――――――――――――



;子程功能:对信号进行滤波(三字节减法),并将结果保存到外部RAM



LVB CLR C



MOV A, ADCDATAL ;读取A/D采样低字节



SUBB A, @R1



MOV @R0, A



INC R0



INC R1



MOV A, ADCDATAH ;读取A/D采样高字节



SUBB A, @R1



MOV @R0, A



INC R0



DEC R1



MOV A, #01H ;读取A/D采样高字节



SUBB A, #00H



MOV @R0, A



DEC R0



DEC R0



DEC R1



;将滤波结果保存到外部RAM



MOV @R0, A



MOVX @DPTR, A



INC R0



INC DPTR



MOV @R0, A



MOVX @DPTR, A



INC R0



INC DPTR



MOV @R0, A



MOVX @DPTR, A



INC DPTR



RET 

4楼: >>参与讨论
thht4321
求去除工频的atmega64C语言子程序!
 
参与讨论
昵称:
讨论内容:
 
 
相关帖子
请教,在GCC里怎么将 结构体 定义到 Flash 中?
ATMEGA128外接SRAM需用那种型号的锁存器呀!
AVR的IO口驱动led究竟是直接驱动好,还是灌电流输入好?
请教自动转换量程问题!
atmega128
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号