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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7721|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色免费观看网站 | 亚洲精品一 | 粉嫩av久久一区二区三区 | 亚洲国产成人精品久久久国产成人一区 | 91看片网址| 黄网免费 | 日本精品视频 | 久久久久国产 | 免费看a| 欧美性久久 | 成人国产精品久久 | 成人h动漫亚洲一区二区 | 欧美视频在线一区 | 中文字幕国产日韩 | 国产一区二区在线免费观看 | 啪视频在线| 久久精品国产一区 | 欧美一区二区三区在线 | 综合久久综合久久 | 国产91一区 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 中文字幕 亚洲一区 | 一级做a | 精品亚洲一区二区三区四区五区 | av在线电影网站 | 久久区二区 | 久久精品成人 | 久久伊人一区 | 日韩网站在线观看 | 欧美精品1区2区3区 免费黄篇 | 欧美在线一区二区三区 | 91精品国产综合久久精品 | 亚洲精品一区二区三区在线 | 亚洲色欲色欲www | 久久国产一区二区三区 | 在线观看国产www | 久草.com| 一区二区三区四区在线视频 | 亚洲视频手机在线 | 亚洲一区在线日韩在线深爱 | 黄视频网址 |