电子信息工程专业实验.docx
- 文档编号:6847200
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:17
- 大小:102.60KB
电子信息工程专业实验.docx
《电子信息工程专业实验.docx》由会员分享,可在线阅读,更多相关《电子信息工程专业实验.docx(17页珍藏版)》请在冰豆网上搜索。
电子信息工程专业实验
#include
voidDelay()
{
unsignedchari,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
voidmain()
{
unsignedchari;
unsignedchartemp;
P1=0xff;
P2=0xff;
while
(1)
{
temp=0x07;
for(i=0;i<8;i++)
{P1=~temp;
Delay();
temp=temp<<1;
P1=0xff;
}
P2=0xC7;
Delay();
P2=0xE3;
Delay();
P2=0X8F;
Delay();
P2=0XF1;
Delay();
P2=0X1F;
Delay();
P2=0XF8;
Delay();
P2=0xff;
}
}
#include
voidDelay()
{
unsignedchari,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
voidmain()
{
unsignedchari;
unsignedchartemp,temp1;
P1=0xff;
while
(1)
{
temp=0x01;
for(i=0;i<8;i++)
{P1=~temp;
Delay();
temp=temp<<2;
P1=0xff;
}
temp1=0x02;
for(i=0;i<8;i++)
{P1=~temp1;
Delay();
temp1=temp1<<2;
P1=0xff;
}
}
}
#include
voidDelay()
{
unsignedchari,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
voidmain()
{
unsignedchari;
unsignedchartemp;
P1=0xff;
while
(1)
{
temp=0x01;
for(i=0;i<8;i++)
{P1=~temp;
Delay();
temp=temp<<1;
P1=0xff;
}
}
}
#include
unsignedcharcodeledca[]={0x3f,
0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
voiddelayms(unsignedint);
voidmain()
{
unsignedchari,J;
i=0;
J=0;
while
(1)
{
P2=J;
for(i=0;i<10;i++)
{
P3=ledca[i];
delayms(200);
if(i==9)
{
J=J+1;
if(J==10)
{
J=0;
}
}
}
}
}
voiddelayms(unsignedintt)
{
unsignedinti,j;
for(j=0;j { for(i=0;i<124;i++) {} } } #include //定义引脚 #defineDATPINP0 #definePOSPINP2 #defineRELOAD_HIGH0xFC #defineRELOAD_LOW0x18 sbitKEY0=P3^6; sbitKEY1=P3^7; //最小计时单位 unsignedintt,ms,sec,min,hr; //共阳显示码 unsignedcharcodeledca[]={0xc0, 0xf9,0xa4,0xb0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳位置码 unsignedcharcodeposca[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //毫秒延时 voiddelayms(unsignedint); //LED显示 voiddisplay(unsignedchar,unsignedchar); voidmain() { //定时器、中断初始化 IE=0x00; TMOD=0x01; TH0=RELOAD_HIGH; TL0=RELOAD_LOW;//启动定时器 TR0=1; while (1) { TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(~KEY0) { ms=0; IE=0x82; } if(~KEY1) { IE=0x00; } display(ledca[ms%10],7); display(ledca[ms/10],6); display(ledca[sec%10],5); display(ledca[sec/10],4); display(ledca[min%10],3); display(ledca[min/10],2); display(ledca[hr%10],1); display(ledca[hr/10],0); } } //毫秒延时 voiddelayms(unsignedintt) { unsignedinti,j; for(j=0;j { for(i=0;i<123;i++) {} } } //LED显示,第1个参数为显示数据,第2个为显示位置 voiddisplay(unsignedchardat,unsignedcharpos) { POSPIN=posca[pos]; DATPIN=dat; delayms(5); POSPIN=0x00; } //定时中断处理函数 voidtimer0()interrupt1 { t++; if(t==2) { ms++; t=0; if(ms==10) { sec++; ms=0; if(sec==60) { min++; sec=0; if(min==60) { hr++; min=0; if(hr==24) { hr=0; } } } } } } #include #defineDATPINP0//IO口定义 #definePOSPINP2//IO口定义 sbitKEYS=P3^0;//按键定义 unsignedcharms,cy;//最小计时单位、频率进位 //共阳显示码 unsignedcharcodeledca[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳位置码 //unsignedcharcodeposca[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsignedcharcodeposca[]={0X80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; voiddelayms(unsignedintt);//毫秒延时 voiddisplay(unsignedchardat,unsignedcharpos); voidmain() { unsignedchari,wei,chr[8];//循环变量、位数、显示字符串 unsignedlongfreq;//频率数 IE=0x8A;//T0、T1开中断 TMOD=0x51;//T0定时器、T1计数器 TH0=(65536-49999)/256;//T0初值 TL0=(65536-49999)%256;//T0初值 while (1) { if(~KEYS)//按键按下 { ms=0;//计时单位清零 cy=0;//进位清零 TH1=0;//T1初值为0 TL1=0;//T1初值为0 TR0=1;//启动定时器 TR1=1;//启动计数器 //定时器查询中断 if(TF0==1) { TH0=(65536-49999)/256; TL0=(65536-49999)%256; ms++; TF0=0; } if(TF1==1) { cy++; TF1=0; } while(ms<20);//等待1秒到 TR1=0;//停止计数器 TR0=0;//停止定时器 //计算脉冲数量 freq=cy*65536+TH1*256+TL1; //将脉冲数转化为字符 for(i=0;i<8;i++) { chr[i]=freq%10; freq/=10; if(freq==0) { wei=i+1;break; } } while(~KEYS);//等待按键抬起 } for(i=0;i { display(chr[i],i); } } } //毫秒延时 voiddelayms(unsignedintt) { unsignedinti,j; for(j=0;j { for(i=0;i<123;i++) {} } } //LED显示 voiddisplay(unsignedchardat,unsignedcharpos) { POSPIN=posca[pos]; DATPIN=ledca[dat]; delayms(5); POSPIN=0x00; } //定时器0中断 voidtimer0()interrupt1 { TH0=(65536-49991)/256; TL0=(65536-49991)%256; ms++; } //计数器1中断 voidtimer1()interrupt3 { cy++; } #include #defineDATPINP0//定义IO口 #definePOSPINP2//定义IO口 sbitKEY0=P3^2;//定义按键 sbitKEY1=P3^3;//定义按键 unsignedcharnum0=0,num1=80;//按键0和1按下次数 //共阳显示码 unsignedcharcodeledca[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳位置码 unsignedcharcodeposca[]={0x01,0x02,0x04,0x08,0x10, 0x20,0x40,0x80}; voiddelayms(unsignedint);//毫秒延时 voiddisplay(unsignedchar,unsignedchar);//LED显示 voidmain() { IE=0x85;//外部中断初始化 //IT0=0;//电平触发 IT1=1;//边沿触发 IT0=1; while (1) { display(num1/10,num0); display(num1%10,num0+1); } } //毫秒延时 voiddelayms(unsignedintt) { unsignedinti,j; for(j=0;j { for(i=0;i<123;i++) {} } } //LED显示,第1个参数为显示数据,第2个为显示位置 voiddisplay(unsignedchardat,unsignedcharpos) { POSPIN=posca[pos]; DATPIN=ledca[dat]; delayms(5); POSPIN=0x00; } //外部中断1处理函数 voidint1()interrupt2 { num1++; if(num1==100) { num1=0; } } voidint0()interrupt0 { num0++; if(num0==7) { num0=0; } //num1=0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子信息工程 专业 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)