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

QQ登錄

只需一步,快速開始

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

15f2k60s2單片機(jī)的控速程序問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:405091 發(fā)表于 2018-10-6 11:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
寫的程序在15上不能用 幫看一下

/**************************************/
#include <REGX51.H>
sbit M1A=P0^0;
sbit M1B=P0^1;
sbit M2A=P0^2;
sbit M2B=P0^3;

sbit ENA0=P1^4;
sbit ENA1=P1^5;

char R,S;

void main()
{  
   M1A=1;         
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;

   ENA0=1;
   ENA1=1;


  TMOD=0x01;
  TH0=64536/256;
  TL0=64536%256;
  ET0=1;
  EA=1;
  TR0=1;
  R=8;
  R--;
  while(1);
}

void sudu() interrupt 1
{
TH0=64536/256;
TL0=64536%256;
if(R==1)
{
  ENA0=~ENA0;
  ENA1=~ENA1;
  if(ENA0==1)
  {R=4;}
   else{R=8;}
}                                                        

}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:387733 發(fā)表于 2018-10-6 13:13 | 只看該作者
不是15的原因,程序本身就有問題。
初始化的時(shí)候 R=8;R--;R 的值應(yīng)該是 7;而在定時(shí)器中斷里面只有 R=4; R=8;兩次賦值與一次 R==1 的判斷,運(yùn)行中 R是不可能等于 1 的。
邏輯上判斷,應(yīng)該是語句 R--;放錯(cuò)了位置,應(yīng)該放在定時(shí)器中斷內(nèi)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:405091 發(fā)表于 2018-10-6 16:33 | 只看該作者
sxhwdz 發(fā)表于 2018-10-6 13:13
不是15的原因,程序本身就有問題。
初始化的時(shí)候 R=8;R--;R 的值應(yīng)該是 7;而在定時(shí)器中斷里面只有 R=4 ...

是的是的,我這個(gè)循環(huán)邏輯寫錯(cuò)了。
TMOD=0x01;
  TH0=64536/256;
  TL0=64536%256;
  ET0=1;
  EA=1;
  TR0=1;
請(qǐng)問這幾句也可以打開15f2k60s2的內(nèi)部定時(shí)器和中斷嗎?
15也能用51的頭文件吧
回復(fù)

使用道具 舉報(bào)

地板
ID:387733 發(fā)表于 2018-10-7 11:29 | 只看該作者
ET0=1 打開了定時(shí)器0的中斷,EA=1 是打開系統(tǒng)的總中斷開關(guān),TR0=1 定時(shí)器0開始計(jì)數(shù),這些條件滿足,定時(shí)器開始工作,并能產(chǎn)生中斷。

15系列的功能更多,使用了更多的特殊功能寄存器,如果要使用這些功能,就需要15的頭文件對(duì)這些寄存器進(jìn)行定義。如果只使用普通的功能,用51的頭文件也可以的。
回復(fù)

使用道具 舉報(bào)

5#
ID:406159 發(fā)表于 2018-10-7 16:06 | 只看該作者
TMOD=0x01;
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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