久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7816|回復: 1
打印 上一主題 下一主題
收起左側

急!!c51中的interrupt函數到底從哪返回主函數

[復制鏈接]
跳轉到指定樓層
樓主
ID:9394 發表于 2009-3-10 14:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 哪位高人看看下面程序,interrupt函數到底從哪返回主函數?另外,如果脈寬可調,程序應如何改動?

# include <reg51.h>
#define uchar unsigned char
#define uint unsigned int

uint a,b,c,d;
/*a為舵機1的脈沖寬度,b為舵機2的脈沖寬度,單位1/1000 ms */
/*c、d為中間變量*/

/*以下定義輸出管腳*/
sbit p12=P1^2;
sbit p13=p1^3;
sbit p37=P3^7;

/*以下兩個函數為定時器中斷函數*/

/*定時器1,控制舵機1,輸出引腳為P12,可自定義*/
void timer0(void) interrupt 1 using 1
{p12=!p12; /*輸出取反*/
c=20000-c; /*20000代表20 ms,為一個周期的時間*/
TH0=-(c/256); TL0=-(c%256); /*重新定義計數初值*/
if(c>=500&&c<=2500)c=a;
else c="20000-a"; /*判斷脈寬是否在正常范圍之內*/
}

/*定時器2,控制舵機2,輸出引腳為P13,可自定義*/
void timer1(void) interrupt 3 using 1
{p13=!p13;
d=20000-d;
TH1=-(d/256); TL1=-(d%256);
if(d>=500&&d<=2500)d=b;
else d="20000-b";
}

/*主程序*/
void main(void)
{TMOD=0x11; /*設初值*/
p12=1;
p13=1;
a=1500;
b=1500; /*數值1500即對應1.5ms,為舵機的中間90度的位置*/
c=a;d=b;
TH0=-(a/256); TL0=-(a%256);
TH1=-(b/256); TL1=-(b%256); /*設定定時器初始計數值*/
EA=1;
ET0=1; TR0=1;EX0=1;EX1=1;
ET1=1; TR1=1;
PX0=0;PX1=0;PT1=1;PT0=1;/*設定中斷優先級*/
for(;;)
{

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

使用道具 舉報

沙發
ID:7465 發表于 2009-3-11 08:16 | 只看該作者

中斷程序執行完畢會自動返回的。在最后給C或D判斷完初始值以后就返回,

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99热在线观看精品 | 日韩精品欧美精品 | 久久综合香蕉 | 91视频免费观看 | 免费看大片bbbb欧美 | 成人国产精品免费观看视频 | 在线免费观看成年人视频 | 2018天天干天天操 | 成人免费视频观看视频 | 久久在看 | 亚洲视频一区在线观看 | 国产精品久久7777777 | 国产精品久久久久一区二区三区 | a级免费观看视频 | 国产精品jizz在线观看老狼 | a级毛片毛片免费观看久潮喷 | 久久99精品久久久久久青青日本 | 国产精品成人在线播放 | 国产精品99久久久久久宅男 | 欧美xxxx黑人又粗又长 | 在线黄色网| 99久9 | 欧美视频一区二区三区 | www.狠狠操| 亚洲日韩视频 | 国产成人精品一区二区三区四区 | 国产精品2区 | 国产精品一区二区久久久久 | 亚洲精品国产一区 | 乱码av午夜噜噜噜噜动漫 | 五月免费视频 | 高清国产午夜精品久久久久久 | 国产视频久久久 | 97色综合 | 在线播放日韩 | 日韩精品成人一区二区三区视频 | 国内自拍视频在线观看 | 大香在线伊779 | 一区二区蜜桃 | 久久精品视频免费看 | 91精品久久久 |