河南理工大学单片机实验报告.doc

上传人:飞****2 文档编号:52737224 上传时间:2022-10-23 格式:DOC 页数:19 大小:49KB
返回 下载 相关 举报
河南理工大学单片机实验报告.doc_第1页
第1页 / 共19页
河南理工大学单片机实验报告.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《河南理工大学单片机实验报告.doc》由会员分享,可在线阅读,更多相关《河南理工大学单片机实验报告.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、微机原理与单片机接口技术 实验报告册 河南理工大学电气与自动化学院 专业班级: 学 号: 学生姓名: 指导老师: 实验一 流水灯实验一、 实验目的 1.、简单I/O引脚的输出 2.、掌握软件延时编程方法 3.、简单按键输入捕获判断二、 实验实现的功能 1、开机是点亮12发光二极管,闪烁三下 2、按照顺时针循环依次点亮发光二极管 3、通过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计 1、AT89C51单片机 2、12个LED数码管 3、 K1正反转转换开关四、系统软件设计#include#define uchar unsigned char#define uint unsigned i

2、ntsbit kh1=P36;sbit kl1=P05;tab1=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff;tab2=0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3b,0x37,0x2f,0x1f;tab3=0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;tab4=0x1f,0x2f,0x37,0x3b,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f; void delay1

3、() /延时40msuint x,y;for(x=200;x0;x-)for(y=220;y0;y-);void delay2() /延时150msuint x,y;for(x=500;x0;x-)for(y=200;y0;y-);void start() /点亮12个发光二极管,闪烁3次uchar temp;while(temp=2)P2=0x00;P3=0xc3;delay2();P2=0xff;P3=0xff;delay2();temp+; void main() /主函数uchar b,z,n;start(); while(1)n=b;z=(n%2);if(z=1)uchar x;fo

4、r(x=0;x12;x+)P2=tab3x;P3=tab4x;delay1();kh1=0;kl1=1;if(!kl1)delay1();if(!kl1)b+=1;while(!kl1);if(z=0)uchar x;for(x=0;x12;x+) P2=tab1x;P3=tab2x;delay1();kh1=0;kl1=1;if(!kl1) delay1(); if(!kl1) b+=1; while(!kl1); 五、实验过程中遇到的问题及解决方法 在运行试验时发现单片机焊接过程中把LED焊反了,导致实验过程中灯不会亮,之后重新按顺序焊接后,问题解决,灯顺利点亮,完成实验。 指导老师签字:

5、 日期:实验二 定时器实验一、实验目的 1、数码管动态显示技术 2、定时器的应用 3、功能键的定义二、实验实现的功能 通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。三、系统硬件设计 1、设计板 2、12个数码管 3、复位键 4、K1 K2 键四、 系统软件设计 #include#define uchar unsigned char#define uint unsigned intsbit k1=P36;sbit k2=P37;sbit ki1=P05;sbit ki2=P06;sbit ki3=P07;sfr P1M1=0x91;sfr P1M0=0

6、x92;tab1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;tab2=0xf7,0xfb,0xfd,0xfe;tab34=0;uint a=0;uint b=0;void Delay100ms()/11.0592MHzunsigned char i, j, k;i = 5;j = 52;k = 195;dodowhile (-k); while (-j); while (-i);void Delay5ms()/11.0592MHzunsigned char i, j;i = 54;j = 199;dowhile (-j); while

7、(-i);void faguang()uchar x;while(x=2)P2=0x00;P3=0xc3;Delay100ms();P2=0xff;P3=0xff;Delay100ms();x+; void display()char t;switch(t)case 0:P0=tab2t; t+; P1=tab1tab30; break;case 1:P0=tab2t; t+; P1=tab1tab31; break;case 2:P0=tab2t;t+; P1=tab1tab32; break;case 3:P0=tab2t; t=0; P1=tab1tab33; break;default

8、:break;void interrupt_timer1() interrupt 3TH1=0xfc;TL1=0x67;a+;if(a=1000)b+;a=0;tab30=b%10;tab31=b/10%10;tab32=b/100%10;tab33=b/1000%10;display();void main()uchar m,k;uint n=1;P1M1=0x00;P1M0=0xff;TMOD=0x10;TH1=0xfc;TL1=0x67;ET1=1;EA=1;while(1)if(!TR1)k=0;for(k=0;k50;k+)k1=0;k2=0;ki1=1;ki2=1;ki3=1;if

9、(!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=n/10%10;tab32=n/100%10;tab33=n/1000%10;for(m=0;m4;m+)P0=tab2m; P1=tab1tab3m;Delay5ms(); if(m=4) m=0; if(b=n)TR1=0;b=0;n=1;faguang();五、 实验过程中遇到的

10、问题及解决方法 在设计实验时,在给计数器编写程序的时候,对于计数器的采用,以及控制字的编写,都不太会编写。通过翻阅书籍,咨询老师同学和上网搜查,认真学习和掌握这一部分的知识和技巧,写出正确的程序来对计数器进行控制,达到实验目的,实现该功能。 指导老师签字: 日期: 实验三 双机通信实验一、实验目的 UART 串行通信接口技术应用二、实验实现的功能 用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。三、系统硬件设计1、两个单片机2、两组LED数码管3、两根串口线4、2*3矩阵式按键四、系统软件设计 #include#define uchar unsigned char#define

11、uint unsigned intsbit H1=P36;sbit H2=P37;sbit L1=P05;sbit L2=P06;sbit L3=P07;sbit W1=P00;tab1e=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar num,a,b,c,n;void send();void delay(uchar x)for(a=x;a0;a-)for(b=110;b0;b-);void main()SCON=0x50;TMOD=0x20;PCON=0x00;TH1=0xf4;TL1=0xf4;TR1=1;W1=0;while

12、(1)n=num;send();void send() /发送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)delay(5);i

13、f(!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、按键中断技术二、实验实现的功能

14、 1、对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。 2、紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。三、系统硬件设计 1、单片机模板 2、12个二极管 3、复位键四、系统软件设计#include#define uchar unsigned char #define uint unsigned intsbit w1=P00;/定义端口/sbit w2=P01;sbit w3=P02;sbit w4=P03;sbit l1=P05;sbit l2=P06;sbit l3=P07;sbit h1=P36;sbit h2=P37; s

15、bit dongr=P26;sbit dongg=P27;sbit dongy=P32;sbit xir=P20;sbit xig=P21;sbit xiy=P23;sbit nanr=P33;sbit nang=P34;sbit nany=P35;sbit beir=P23;sbit beig=P24;sbit beiy=P25;uchar miao,mode,step,nbs,dxs,cnt;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; void delay(uint z) uchar y; uint

16、 x; for(x=z;x0;x-) for(y=110;y0;y-); void keyscan(void) l1=0;l2=1;l3=1;if(h1=0) mode=mode+1; if(mode=2) mode=0; void init(void) TMOD=0x11;/定时器初始化/ ET0=1; ET1=1; EA=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; TR0=1; TR1=1; void segscan(void)/检测哪个按键被按

17、下/ w1=0;w2=1;w3=1;w4=1; P1=0; delay(200); P1=0; w1=1;w2=0;w3=1;w4=1; P1=0; delay(200); P1=0; w1=1;w2=1;w3=0;w4=1; P1=tablemiao/10; delay(200); P1=0; w1=1;w2=1;w3=1;w4=0; P1=tablemiao%10; delay(200); P1=0; void main(void) init(); while(1) if(mode=0) TR1=1; switch(step) case 0: nanr=0; beir=0; dongg=0

18、; xig=0; dongr=1; xir=1; step=step+1; break; case 1: if(miao=20) miao=0; dxs=1; step=step+1; break; case 2: if(miao=3) dxs=0;miao=0;dongg=1;xig=1;dongy=0;xiy=0;step=step+1; break; case 3: if(miao=2) miao=0; dxs=0; dongy=1; xiy=1; dongr=0; xir=0; nang=0; beig=0; nanr=1; beir=1; step=step+1;break; cas

19、e 4: if(miao=25) miao=0; nbs=1; step=step+1;break; case 5: if(miao=3) miao=0; nbs=0; nang=1; beig=1; nany=0; beiy=0; step=step+1; break;case 6: if(miao=2) nany=1;beiy=1; step=0; break; else TR1=0;nanr=0;beir=0;dongr=0;xir=0;nang=1;nany=1;beig=1;beiy=1;dongg=1;dongy=1;xig=1;xiy=1; void t0() interrupt

20、 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; segscan(); void t1() interrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%256; cnt+; if(cnt=20) keyscan(); cnt=0; miao=miao+1; if(dxs=1) dongg=dongg; xig=xig; if(nbs=1) nang=nang; beig=beig; if(miao=26) miao=0; 五、 实验过程中遇到的问题及解决方法 本次试验实现红绿灯转换时,是对于定时变换总是编程失败,无法实现试验所要求的功能,尤其对于亮灯时间以及亮灯顺序的把握不太好。我和同组人员一起上网搜索有用的资料和程序,认真思考探索计算后,多次调试程序直到功能达到实验目的。 指导老师签字: 日期:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁