TA的每日心情 | 开心 2022-1-21 15:22 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
看了关于单片机纯软件使用IO口模拟DTMF信号的分析后,动手实践,用一款单片机搭了个电阻网络电路来实现DTMF信号,发现了个问题。( Y, C/ |' p9 Z! q( g+ ~
我用65US的采样频率,144的表格,12M晶振,8051的12T单片机,6个IO口。
. d3 e2 L. f- x7 c+ ~% u问题点,中断程序执行实践超过65US,代码如下,我做测试,只实现输出某个特定周期的一个正旋波形
. e2 y+ n8 K. a; \: Z5 P% r& V" Ovoid Timer1_Interrupt(void) interrupt 3 //Timer1 65US' J+ q" e2 D% Z, V6 L
{
0 j6 f9 Y& `! f! H6 |( [ j+ H( D
, w9 b/ V8 P) s# f TH1 = 0xFf; Y% ?9 t5 q+ R2 D8 x
TL1 = 0x2e;0 _ x/ z8 G' D* m: p. K3 j
ucfreqH_ext +=ucfreqH_step;, O5 Y* z* j3 m' p6 g
ucfreqL_ext +=ucfreqL_step;
* z! |. P" q T3 s ucfreqH = (char)(((ucfreqH_ext+4)>>3)%144);
9 {) I* C# M3 e; O ucfreqL = (char)(((ucfreqL_ext+4)>>3)%144);5 i! g/ h; {& W8 X0 g& J
P1=uc_SinParam[ucfreqH];
# ?+ F J$ |# |4 e}8 h# C. H" ?- K: Q: q
然后用示波器量波形,发现周期比表格理论的大了。查找问题,量某个IO口的波形图。发现最快的电压跳变实践是190US,远远超过65US的理论值。
6 P4 p" p0 @5 P. u' ]网上有理论说,用普通的51能实现DTMF,不知道问题出在哪里了?求大神解惑
$ S* g3 x, s, b% [$ h0 w: S4 M |
|