TA的每日心情 | 开心 2022-1-21 15:22 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
看了关于单片机纯软件使用IO口模拟DTMF信号的分析后,动手实践,用一款单片机搭了个电阻网络电路来实现DTMF信号,发现了个问题。
: W- I5 I; Y3 u! \; u8 ~5 V我用65US的采样频率,144的表格,12M晶振,8051的12T单片机,6个IO口。
0 N" D" x, d- ~6 c7 B8 A7 _! H问题点,中断程序执行实践超过65US,代码如下,我做测试,只实现输出某个特定周期的一个正旋波形1 K- i6 ]7 J1 x/ Y% c" z. a2 O
void Timer1_Interrupt(void) interrupt 3 //Timer1 65US
d2 _/ N; F$ Q! a{
, `; S7 O( ` Z. Y& o( U. w, ]; g" \
TH1 = 0xFf; - s9 ~/ X; R1 v5 m+ q5 [7 t
TL1 = 0x2e;
7 l0 Z9 N3 B: ?/ R: s ucfreqH_ext +=ucfreqH_step;
" }. ~7 F3 J$ L2 y0 ? ucfreqL_ext +=ucfreqL_step;7 } [1 S/ i4 V& w2 x: J
ucfreqH = (char)(((ucfreqH_ext+4)>>3)%144);
+ C) s1 ~3 L7 R& X, Y. l. z; S ucfreqL = (char)(((ucfreqL_ext+4)>>3)%144);: {) k) u) l5 W8 g- q- K
P1=uc_SinParam[ucfreqH];
9 w, s8 o/ _* a1 d5 J; a}) `) X* h: b/ z4 K5 O `
然后用示波器量波形,发现周期比表格理论的大了。查找问题,量某个IO口的波形图。发现最快的电压跳变实践是190US,远远超过65US的理论值。3 S2 D9 z' L9 u3 ]4 ^* D
网上有理论说,用普通的51能实现DTMF,不知道问题出在哪里了?求大神解惑
0 J- v# }6 ~0 @& j8 j7 o |
|