1、单片机核心实验板实验报告(此文档为word格式,下载后您可任意编辑修改!)学 院:电气学院专 业:电气本12-03班学 号:姓 名岳鹏飞王春龙实验一 流水灯实验一、实验目的1) 简单IO引脚的输出2) 掌握软件延时编程方法3) 简单按键输入捕获判断二、实验实现的功能1) 开机是点亮12发光二极管,闪烁三下2) 按照顺时针循环依次点亮发光二极管3) 通过按键将发光二极管的显示改为顺逆时针方式程序:#includereg52.() uchar b,y,n; flick(); while(1) n=b; y=(n%2); if(y=1) uchar x; for(x=0;x12;x+) P2=tab
2、3x; P3=tab4x; Delay900ms(); ko1=0; ko2=0; ki1=1; ki2=1; ki3=1; if(!ki1|!ki2|!ki3) Delay10ms(); if(!ki1|!ki2|!ki3) b+=1; while(!ki1|!ki2|!ki3); if(y=0) uchar x; for(x=0;x12;x+) P2=tab1x; P3=tab2x; Delay900ms(); ko1=0; ko2=0; ki1=1; ki2=1; ki3=1; if(!ki1|!ki2|!ki3) Delay10ms(); if(!ki1|!ki2|!ki3) b+=1
3、; while(!ki1|!ki2|!ki3); 实验二 定时器或实时时钟实验一、实验目的1) 数码管动态显示技术2) 定时器的应用3) 按键功能定义二、实验实现的功能1) 通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。2) 实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。上述二个功能至少完成一种功能。程序: #includereg52.() uchar m,k; uint n=1; P1M1=0x00; P1M0=0xff; TMOD=0x10; TH1=0xfc; TL1=0x67; ET1=1; EA=1; while(
4、1) if(!TR1) k=0; for(k=0;k50;k+) ko1=0; ko2=0; ki1=1; ki2=1; ki3=1; if(!ki1) Delay5ms(); if(!ki1) TR1=1; break; while(!ki1); if(!ki2) Delay5ms(); if(!ki2) n+=1; while(!ki2); if(!ki3) Delay5ms(); if(!ki3) n+=100; while(!ki3); tab30=n%10; tab31=n10%10; tab32=n100%10; tab33=n1000%10; for(m=0;m4;m+) P0=
5、tab2m; P1=tab1tab3m; Delay5ms(); if(m=4) m=0; if(b=n) TR1=0; b=0; n=1; flick(); 实验三 双机通信实验一、实验目的1)UART 串行通信接口技术应用二、实验实现的功能1)用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。程序:#include0;a-) for(b=110;b0;b-);void main() SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xf4; TL1=0xf4; TR1=1; W1=0; while(1) n=num; send(); void send
6、() 发送 H1=0; H2=1; L1=1; L2=1; L3=1; if(!L1) delay(5); if(!L1) num=1; while(!L1); if(!L2) delay(5); if(!L2) num=2; while(!L2); if(!L3) delay(5); if(!L3) num=3; while(!L3); H1=1; H2=0; L1=1; L2=1; L3=1; if(!L1) delay(5); if(!L1) num=4; while(!L1); if(!L2) delay(5); if(!L2) num=5; while(!L2); if(!L3) d
7、elay(5); if(!L3) num=6; while(!L3); if(num!=n) SBUF=num; while(!TI); TI=0; if(RI) c=SBUF; RI=0; P1=tab1ec; 实验四 交通灯试验一、实验目的1) 按键、数码管、发光二极管综合应用编程技术2) 数据存储于EEPROM的技术(也可以不使用)3) 定时中断技术4) 按键中断技术二、实验实现的功能1) 对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。2) 设定参数掉电后不丢失(如果不使用EEPROM,此功能可以不实现)。3) 紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊
8、车辆通过。再按该键,恢复正常显示。程序: #includereg52.;uint a=0;uint b=0;uchar k,c,d,f,g;sfr P1M1=0x91;sfr P1M0=0x92;sbit ko1=P36;sbit ko2=P37;sbit ki1=P05;sbit ki2=P06;sbit ki3=P07;sbit dh=P22;sbit dl=P21;sbit dy=P20;sbit xh=P32;sbit xl=P27;sbit xy=P26;sbit nh=P25;sbit nl=P24;sbit ny=P23;sbit bh=P35;sbit bl=P34;sbit
9、by=P33;tab1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;tab2=0xf7,0xfb,0xfd,0xfe;tab34=0;void show() char j; switch(j) case 0:P0=tab2j;j+;P1=tab1tab30;break;case 1:P0=tab2j;j+;P1=tab1tab31;break;case 2:P0=tab2j;j+;P1=tab1tab32;break;case 3:P0=tab2j;j=0;P1=tab1tab33;break;default:break; void De
10、lay5ms() 11.0592MHz unsigned char i, j; i = 54; j = 199; do while (-j); while (-i);void interrupt_timer1() interrupt 3 TH1=0xfc; TL1=0x67; a+; if(a=1000) b+; a=0; if(b=0) tab30=(m-b)%10; tab31=(m-b)10%10; tab32=(m-b)100%10; tab33=(m-b)1000%10; if(b=m) tab30=(d-b)%10; tab31=(d-b)10%10; tab32=(d-b)100%10; tab33=(d-b)1000%10; if(b=d) tab30=(f-b)%10; tab31=(f-b)10%10; tab32=(f-b)100%10; tab33=(f-b)1000%10; if(b=f) tab30=(g-b)%10; tab31=(g-b)10%10; tab32=(g-b)100%10; tab33=(g-b)1000%10; show();void det() ko1=1; ko2=0; ki1=1; ki2=1; ki3=1; if(!ki1|!ki2|!ki3) Delay5ms();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1