TA的每日心情 | 开心 2022-1-21 15:22 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
看了关于单片机纯软件使用IO口模拟DTMF信号的分析后,动手实践,用一款单片机搭了个电阻网络电路来实现DTMF信号,发现了个问题。
$ l9 A" n. ?/ V! |$ s4 t- V我用65US的采样频率,144的表格,12M晶振,8051的12T单片机,6个IO口。% s" N6 a5 k) O( A& U6 g
问题点,中断程序执行实践超过65US,代码如下,我做测试,只实现输出某个特定周期的一个正旋波形. O" s: E6 k! ]4 N( G- l
void Timer1_Interrupt(void) interrupt 3 //Timer1 65US% \4 u* g! E' Q @0 r# C
{ R4 S; J& ?# J, G U9 }
3 ^5 ^% B4 ]7 B% a& _9 ~ TH1 = 0xFf;
i# R4 A. @, v2 V) E' U' | TL1 = 0x2e;
( P+ S+ `: R5 W) G ucfreqH_ext +=ucfreqH_step;3 \; k( K3 t5 J5 {. j
ucfreqL_ext +=ucfreqL_step;
. ?1 P8 g9 q$ t* s8 U. ]% f0 G5 ] ucfreqH = (char)(((ucfreqH_ext+4)>>3)%144);
8 T7 k$ ?0 }1 M9 s' V3 G) p3 d- S ucfreqL = (char)(((ucfreqL_ext+4)>>3)%144);1 M1 F8 R( O, W8 M
P1=uc_SinParam[ucfreqH]; j- }) }! j. e" y
}' v" i1 Q# i; Z! d' R
然后用示波器量波形,发现周期比表格理论的大了。查找问题,量某个IO口的波形图。发现最快的电压跳变实践是190US,远远超过65US的理论值。
9 f6 Z% u2 \: g- x网上有理论说,用普通的51能实现DTMF,不知道问题出在哪里了?求大神解惑% ]% t1 \; M/ d' ]2 E
|
|