EDA365电子工程师网

标题: proteus仿真 不准确 [打印本页]

作者: Aiby2015    时间: 2015-8-26 11:47
标题: proteus仿真 不准确
我是利用定时器来进行仿真的 下面是我的程序 我打算输出1US的方波但是结果却是40us" f& J( G; j0 l! U5 O  T/ L
#include<reg51.h>
2 c2 O0 `0 F" [* K# O#define uint unsigned int
8 j: S" Q$ A: E#define uchar unsigned char
$ ^9 G; I* S# i: z0 Ysbit out=P1^3;
, [5 a# D2 I$ E: k  Xuint num,N;* t, d) u1 W; Q$ E- q& h
uchar FT;8 z) L2 z4 K; N: G+ Z2 L" G
void main(viod)
+ ]/ M5 O, l% P" w{                               
4 m) r9 [! U) i, s8 b$ |+ ]) I  Y EA=1;//全开  : N1 F$ ]: u% n2 J0 F0 k3 I
ET1=1;5 |7 E. |- P/ u$ ]
TMOD=0x01;2 `$ A4 V. p$ D" E
  TH1=(65536-1)/256;! N, S4 q, L2 k: y1 K2 j9 P
  TL1=(65536-1)%256;/ U& m1 B1 F: b& j/ z& |
//EX0=1;
% y& a+ m! D5 y; T4 a! o8 ~8 y //IT0=1;                       
4 Z) c3 m- d( ?% r  ^// ET0=1;
- u4 D$ |) h) ^' O: ]) @( u) W1 w- \0 X; C1 |: ~8 x
// TR0=1;7 g+ ~; m+ E' L! u* S) }
TR1=1;
: I$ q# R& U4 D1 v6 } while(1);/ d& W1 S' p. n! c) Y
0 m+ I/ ~$ t' e3 {/ y$ U

' J& ^0 ^$ u$ o8 I7 O}
$ }4 M4 v! Y# @+ n" ^& A- z3 q  n
- B! e5 c6 i; E: Q, rvoid T1_timer() interrupt 3
$ ~' Q7 |' V; E, ]0 }  X2 ~! `{  
$ g) D  |( ]& _+ V  TH1=(65536-1)/256;
0 R# V! R$ X5 i8 S0 }  TL1=(65536-1)%256;
8 ~0 B7 W) t, B+ w& I   out=~out;3 f8 T8 A& q: I2 z
  // delay(1);
7 @- Y& h) [! G, z- j/ _# g //  TR1=0;; ^0 l) X* E7 T
} / v2 t2 _, D% Q# ?9 b; N5 {

) P9 @8 g" h2 m% n
作者: ArthurGXH    时间: 2015-8-27 17:00
1. proteus仿真,我没有使用过。经过分析,问题可能出在你的身上。你用的是12M晶振、12时钟吧。你用定时器定1us,实际单片机在这么短的时间内,只够执行1条指令。你的中断里写了多少条指令啊?若不信,你把定时改成60us试试,肯定准确。
9 ?% k2 C) o: t2. 遇到问题,尽量不要先怀疑仿真器的问题,一般仿真器出问题的概率是比较小的。经验之谈。
作者: Aiby2015    时间: 2015-8-27 22:43
ArthurGXH 发表于 2015-8-27 17:003 k$ b$ Z9 ?/ s: ~
1. proteus仿真,我没有使用过。经过分析,问题可能出在你的身上。你用的是12M晶振、12时钟吧。你用定时器 ...
: D2 p" b! a$ m! Q: P5 |6 |
恩 我后面也发现是我的问题。。谢谢
* E; W( _. [7 r2 x& t




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2