找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2774|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

程序調(diào)試沒問題,但是跟預(yù)想的功能不一樣中斷沒起作用,程序和連線圖都貼上來,求解答

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

#include<reg51.h>
#define unit unsigned int
#define uchar unsigned char
#define DutyCycle 200
sbit R=P2^1;
sbit L=P2^0;
sbit PWM=P2^2;
uchar flag=1;
uchar dida=0;
void turnClockwise()
{
R=1;
L=0;
}
void turnAntiClockwise()
{
R=0;
L=1;
}
void init()
{
TMOD=0x01;
IT0=1;
EX0=1;
PWM=1;
}
void int0() interrupt 0
{
flag=0;
}
void main()
{
init();
while(1)
   if(flag==1)
    turnAntiClockwise();
   else
    turnClockwise();
}
void time_0() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
dida++;
if(dida>=DutyCycle)
    PWM=0;
  else
    PWM=1;
if(dida==100)
    dida=0;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:107559 發(fā)表于 2016-3-27 22:36 | 只看該作者
你想達(dá)到啥功能呢??
回復(fù)

使用道具 舉報(bào)

板凳
ID:74145 發(fā)表于 2016-3-28 00:48 | 只看該作者
功能要說明一下吧
回復(fù)

使用道具 舉報(bào)

地板
ID:72781 發(fā)表于 2016-3-28 08:27 | 只看該作者
功能是不是,按鍵按下會(huì)切換正反轉(zhuǎn)?然后有PWM波控制轉(zhuǎn)速?沒大仔細(xì)看,中斷不起作用是因?yàn)槟阍趍ain中沒有開啟總中斷,EA=1;主要疑問有,你的外部中斷0那個(gè)地方1沒有上拉,2在程序里面沒有設(shè)置觸發(fā)方式是低電平觸發(fā)還是下降沿觸發(fā),還有設(shè)置的DutyCycle值為200,比100大,在定時(shí)器中斷中dida>DutyCycle,PWM波才給0,然而,當(dāng)dida=100后,你有把dida變成0了,等于永遠(yuǎn)也不會(huì)大于DutyCycle。PS,一夜沒睡,沒仔細(xì)看程序,回答的不對(duì)、沒看到的勿怪啊
回復(fù)

使用道具 舉報(bào)

5#
ID:107524 發(fā)表于 2016-3-29 13:07 | 只看該作者
暗光 發(fā)表于 2016-3-28 08:27
功能是不是,按鍵按下會(huì)切換正反轉(zhuǎn)?然后有PWM波控制轉(zhuǎn)速?沒大仔細(xì)看,中斷不起作用是因?yàn)槟阍趍ain中沒有 ...

恩恩,謝謝啦,沒想到一個(gè)程序這么多錯(cuò)誤。我改了再試試
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表