找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2730|回复: 1
收起左侧

[原创]c51单片机定时中断产生脉冲串???

[复制链接]
ID:33352 发表于 2012-12-11 11:12 | 显示全部楼层 |阅读模式
这是我编写的中断程序,从P2_6口产生一个脉冲串,但是偏差太大,那位帮忙看一下要改正那里,才能让偏差减小,谢了;
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
//#define zhuan 600   //如果在这里宏定义了,那么基本上可以消除一点偏差,但是如果不用宏定义,怎么改
sbit P2_6=P2^6;    
uint zhuan;
void main()

EA=1;
ET0=1;
TR0=1;
TMOD=0X01;
TH0=(65536-200)/256;
TL0=(65536-200)%256;
while(1)
{
zhuan=600;
}
}
void xx() interrupt 1
{
TH0=(65536-30000/zhuan)/256;
TL0=(65536-30000/zhuan)%256;
P2_6=~P2_6;
}
PCB加工找华强电路 http://www.hqpcb.com 样板2天出货
回复

使用道具 举报

ID:33352 发表于 2012-12-11 11:28 | 显示全部楼层
也就是从P2_6产生的脉冲串的周期不对,用proteus仿真看到:经zhuan=6时可以得到ms产生一个脉冲,但是如果将zhuan=60或zhuan=600,那产生脉冲的时间是2ms一个脉冲,
PCB加工找华强电路 http://www.hqpcb.com 样板2天出货
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表