完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`proteus我用的是定时器1进行1us的定时输出 但是最后的出的是40us的输出 这让我很苦恼。 以下是我的程序 #include #define uint unsigned int #define uchar unsigned char ***it out=P1^3; uint num,N; uchar FT; void main(viod) { EA=1;//全开 ET1=1; TMOD=0x01; TH1=(65536-1)/256; TL1=(65536-1)%256; //EX0=1; //IT0=1; // ET0=1; // TR0=1; TR1=1; while(1); } /*void delay(unsigned int i) { unsigned int j; unsigned char k; for(j=i;j>0;j--) for(k=125;k>0;k--); } void INchack()interrupt 0 { num=65536-TH0*256; if(num>=30) { N=N-15; } else { N=N+15; } FT=1; } void T0_timer() interrupt 1 { if(FT==1) { TH0=(65536-N)/256; TL0=(65536-N)%256; FT=0; } else { TH0=(65536-30)/256; TL0=(65536-30)%256; } TR1=1; } */ void T1_timer() interrupt 3 { TH1=(65536-1)/256; TL1=(65536-1)%256; out=~out; // delay(1); // TR1=0; } |
|
相关推荐
5个回答
|
|
一般的51在12MHz的时钟下,执行一条指令就要1us 你用定时器中断还要重载初值 还加了其他代码 肯定会推迟
|
|
|
|
那个不是一条指令1us,是这样的。 2机器周期 = 一个是节拍,6个节拍为一个指令周期,而一条指令由2-4个指令周期构成。 |
|
|
|
基础知识真是好久没看都混了…… 是一个机器周期为1us 一条指令占几个机器周期 |
|
|
|
OK!我也没说错吧,哈哈! |
|
|
|
不错,挺好的,多学习一些东西
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
4849 浏览 3 评论
6138 浏览 1 评论
6406 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
8154 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1236 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 03:30 , Processed in 0.556726 second(s), Total 52, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号