|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我是利用定时器来进行仿真的 下面是我的程序 我打算输出1US的方波但是结果却是40us
% B/ i8 z. q8 {3 `. ^1 D: Y0 C#include<reg51.h>
1 \: U: g3 X' F) v#define uint unsigned int
+ H/ v8 o. d7 t! [#define uchar unsigned char, m$ H4 X4 A& i
sbit out=P1^3;9 F- _5 j: o4 V
uint num,N;7 V" d% S- R# k+ K* t7 A
uchar FT;1 W3 O$ N3 f! {$ J2 m
void main(viod)
6 r0 h! e, ]0 n* y! M% B6 t" ]. q{ $ ]8 a/ d) d+ ~% t1 b) _
EA=1;//全开 + f8 e- v$ J) W p8 r* o
ET1=1;, I( P* m7 F& m2 M% Z
TMOD=0x01;$ _ w+ ?9 ^: q9 p: V
TH1=(65536-1)/256;# Z# e, c5 h6 H( y: w6 u5 k
TL1=(65536-1)%256;
) P- ]1 }9 e8 @6 K9 m% V* z5 T6 p& \4 O0 T //EX0=1;
9 a! }, H+ a- o0 K1 f3 m. \; p //IT0=1; & n, w" J0 C% X! {, |' A3 j$ R
// ET0=1;
' j0 E+ C5 L& `$ K
3 r# N6 |/ A3 C3 e// TR0=1;6 _8 X' [ t' A6 @
TR1=1;& ^1 R$ h$ E8 J9 f* M8 C
while(1);: W6 j+ L1 h( j. m
" Z$ N) D5 p4 D$ |0 F
! X6 Y' ]& m, m: _+ ]}* o! \% j/ z+ _
, m9 A: h% _8 A
void T1_timer() interrupt 3% N, g3 y; k2 a3 ? A2 s
{
1 z/ V5 ?- a5 i; [* o TH1=(65536-1)/256;
- O4 `6 E4 z7 C% B9 z; b TL1=(65536-1)%256;' j/ v9 o; |; A O' z
out=~out;
9 `' j, }. ~4 e' ^' i/ m // delay(1);
( w& T7 b, Z6 s0 {2 Z // TR1=0;
! j9 m, h8 g. @$ s7 i* r+ W; t0 Z E}
7 M8 u& S2 O. M9 B+ e
+ g# @7 q1 D7 q6 a |
|