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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)雙中斷嵌套程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1013275 發(fā)表于 2022-4-18 16:17 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
雙中斷有優(yōu)先級(jí)的控制LED效果
#include<reg51.h>
#define uchar  unsigned char
void Delay(unsigned int i)
{
uchar j;
for(;i>0;i--)
for(j=0;j<125;j++)
{;}
}
void main()
{
uchar display[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar a;
for(;;)
{
EA=1;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
PX0=0;
PX1=1;
for(a=0;a<9;a++)
{
Delay(500);
P2=display[a];
}
}
}
void int0_isr(void) interrupt 0 using 0
{
for(;;)
{
P2=0x0f;
Delay(400);
P2=0xf0;
Delay(400);
}
}
void int1_isr(void) interrupt 2 using 1
{
uchar m;
for(m=0;m<5;m++)
{
P2=0;
Delay(500);
P2=0xff;
Delay(500);
}
}

數(shù)字電壓表的設(shè)計(jì)
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define unit unsigned int
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unit ADresult[11];
sbit DATOUT=P1^0;
sbit DATIN=P1^1;
sbit CS=P1^2;
sbit IOCLK=P1^3;
sbit EOC=P1^4;
sbit weil=P3^0;
sbit wei2=P3^1;
sbit wei3=P3^2;
sbit wei4=P3^3;
void delay_ms(unit i)
{
int j;
for(;i>0;i--)
for(j=0; j<123;j++);
}
unit getdata(uchar channel)
{
uchar i,temp;
unit read_ad_data=0;
channel=channel<<4;
IOCLK=0;
CS=0;
temp=channel;
for(i=0;i<12;i++)
{
if(DATOUT) read_ad_data=read_ad_data|0x01;
DATIN=(bit)(temp&0x80);
IOCLK=1;
_nop_();_nop_();_nop_();
IOCLK=0;
_nop_();_nop_();_nop_();
temp=temp<<1;
read_ad_data<<=1;
}
CS=1;
read_ad_data>>=1;
return(read_ad_data);
}
void dispaly(void)
{
uchar qian,bai,shi,ge;
unit value;
value=ADresult[2]*1.221;
qian=value%10000/1000;
bai=value%1000/100;
shi=value%100/10;
ge=value%10;

weil=1;
P2=table[qian]-128;
delay_ms(1);
weil=0;

wei2=1;
P2=table[bai];
delay_ms(1);
wei2=0;

wei3=1;
P2=table[shi];
delay_ms(1);
wei3=0;

wei4=1;
P2=table[ge];
delay_ms(1);
wei4=0;
}
main(void)
{
ADresult[2]=getdata(2);
while(1)
{
_nop_();_nop_();_nop_();
ADresult[2]=getdata(2);
while(!EOC);
dispaly();
}
}
附件里面是仿真圖,不含代碼(自行生成hex文件)僅供參考,請(qǐng)自行測(cè)試,如有錯(cuò)誤請(qǐng)告知:
Proteus8.8仿真下載: 中斷嵌套的應(yīng)用.zip (31.63 KB, 下載次數(shù): 11)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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