版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 实验报告单片机核心板实验学 号: 31100800 班 级: 自动化10班 姓 名: 张 指导老师: 胡 2012.1215 单片机核心板实验要求一、 流水灯实验1、 实验目的:1) 简单I/O引脚的输出2) 掌握软件延时编程方法3) 简单按键输入捕获判断2、 完成功能要求1) 开机是点亮12发光二极管,闪烁三下2) 按照顺时针循环依次点亮发光二极管3) 通过按键将发光二极管的显示改为顺逆时针方式二、 定时器或实时时钟实验1、 实验目的1) 数码管动态显示技术2) 定时器的应用3) 按键功能定义2、 完成功能要求1) 通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,
2、完成定时器功能。2) 实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。上述二个功能至少完成一种功能。三、 双机通信实验1、 实验目的UART 串行通信接口技术应用2、 完成功能要求用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。四、 交通灯实验1、 实验目的1) 按键、数码管、发光二极管综合应用编程技术2) 数据存储于EEPROM的技术(也可以不使用)3) 定时中断技术4) 按键中断技术2、 完成功能要求1) 对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。2) 设定参数掉电后不丢失(如果不使用EEPROM,此功能可以不实现)。3) 紧急按键功能
3、,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。实验一 流水灯实验一、实验目的1)简单I/O引脚的输出2)掌握软件延时编程方法3)简单按键输入捕获判断二、实验实现的功能1)开机是点亮12发光二极管,闪烁三下2)按照顺时针循环依次点亮发光二极管3)通过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计1)如单片机核心板所示的硬件电路。四、系统软件设计设计思路:1)定义数组使得调用数组可以使led灯能够顺时针和逆时针显示;2)将按键的输入端全部置零,做单独按键使用;3)利用“while”循环使得数码管可以闪烁三下;4)利用“for”循环使得小灯能够依次点亮
4、一个周期;5)将以上思想汇总,编程,实现功能。程序详见附录。五、实验过程中遇到的问题及解决方法1)刚开始不知道怎样只设置一个管脚(如P00),查阅相关资料后知道表示方法,并学会了用“sbit”语句定义,方便多了。2)对于C语言的很多东西都不知道,语句的用法也不清楚,重新看了C语言,用到什么看什么很快就懂了。3)主程序中没有用延时程序和死循环导致led不能点亮,请教同学以后才知道。4)对于按键只是不了解,看书又很模糊,看了网上“KINGST工作室”也就是“手把手教你学单片机”的视频后很清楚明了,之后好多东西也是从上边学到,就不再赘述了。 指导老师签字: 日期:实验二 定时器或实时时钟实验一、实验
5、目的1)数码管动态显示技术2)定时器的应用3)按键功能定义二、实验实现的功能1)通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。2)实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。上述二个功能至少完成一种功能。三、系统硬件设计1)如单片机核心开发板所示的硬件电路。四、系统软件设计设计思路:1)做的是秒表定时器的实验;2)利用中断技术实现利用单片机定时器完成计时功能;3)定时器1计时中断程序每隔0.001s中断一次并当作一个计数,则1000次中断为 1秒,然后十进制进位即可;4)在程序开始计数器不工作时设定一个值,当计数器工作时将
6、时间与设定时间比较,如果想等,计数器停止工作,小灯闪烁三下;5)将以上思想汇总,编程,实现功能。程序详见附录。五、实验过程中遇到的问题及解决方法1)最开始的时钟和秒表都没有用计时器和中断,但是也达到了实验要求,最后又改用始终计时器,浪费了很多时间。2)不知道怎么使数码管显示不同数字,从网上学到用动态扫描来显示。3)认真学习了中断技术并运用之后,切实意识到中断技术是单片机的核心技术,数码管显示也变得简单和稳定了。4)子程序中的参数传递不出来,在网上搜索以后知道了全局变量和局部变量,并知道了“void”的作用。5)运用“!”符号后不用再麻烦的写“key=0”,很实用 指导老师签字: 日期:实验三
7、双机通信实验一、实验目的1)UART 串行通信接口技术应用二、实验实现的功能1)用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。三、系统硬件设计1)如单片机核心板所示的硬件电路。四、系统软件设计设计思路:1)该实验不对端口进行复杂操作,所以实验较简单;2)设定波特率并计算出“TH1”和”TL1”的值;3)对单片机进行初始化;4)通过键盘扫面程序读出按下降的键并给予相关的编号;5)输出编号;6)读入数过来的值;7)在数码管上显示;8)将以上思想汇总,编程,实现功能。程序详见附录。五、实验过程中遇到的问题及解决方法1)对UART技术不了解,看书和视频以后有了初步了解。2)按照课本上的
8、程序模仿之后发现可以接收不能发送,认真查询程序发现了在利用数码管显示时将“P0=0XF7”直接将按键检测端口置高,按键无效了。3)解决问题二之后还是不能发送数据,最后检查发现直接用“IF(TI)”不能有效地开通发送标志位,所以用了先将初值赋值给一个数,检测之后比较,并用比较结果进入发送允许,最后实现。 指导老师签字: 日期:实验四 交通灯试验一、实验目的1)按键、数码管、发光二极管综合应用编程技术2)数据存储于EEPROM的技术(也可以不使用)3)定时中断技术4)按键中断技术二、实验实现的功能1)对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。2)设定参数掉电后不丢失(如果不使用EE
9、PROM,此功能可以不实现)。3)紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。三、系统硬件设计1)如单片机核心板所示的硬件电路。四、系统软件设计设计思路:1)该实验较麻烦,但是有实验一和实验二做铺垫思路也是很清晰地;2)交通灯为南北通东西停等待东西通南北停等待南北通东西停依次循环,所以应该设计一个周期包含以上四步;3)计数器工作时比较计数器的值和所设定的置,确定范围,确定该范围内显示的灯的种类;4)对于急停的情况,应该在每秒都检测一下键盘,如果键盘有输入,中断,执行全部红灯的程序;5)关于跳出急停程序,用“while“循环和”if“语句实现
10、;6)红绿灯和黄灯的显示时间在程序最开始计数器未开始工作室设定两个数的值;7)将以上思想汇总,编程,实现功能。程序详见附录。五、实验过程中遇到的问题及解决方法1)该实验是一个综合性较强的实验,不过由于有实验一,实验二的铺垫,在技术上遇到的问题已经很少了,但是还是遇到一些问题。2)最开始的时钟和秒表都没有用计时器和中断,但是也达到了实验要求,最后又改用始终计时器,浪费了很多时间。3)在急停之后如何出循环成为一个很大的困惑,最后运用了“while”循环解决了。4)发现用子程序以后会使程序简明不少。 指导老师签字: 日期:附录:实验一 流水灯实验最终实现:按任意键反向,只是必须等到一轮结束以后。程序
11、如下:#include<reg52.h>#define uchar unsigned charsbit ko1=P36;sbit ko2=P37;sbit ki1=P05;sbit ki2=P06;sbit ki3=P07;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,0x
12、fb,0xfd,0xfe;tab4=0x1f,0x2f,0x37,0x3b,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f;void Delay900ms()/11.0592MHzunsigned char i, j, k;i = 13;j = 156;k = 83;dodowhile (-k); while (-j); while (-i);void Delay10ms()/11.0592MHzunsigned char i, j;i = 108;j = 145;dowhile (-j); while (-i);void flick()uchar d;whil
13、e(d<=2)P2=0x00;P3=0xc3;Delay900ms();P2=0xff;P3=0xff;Delay900ms();d+; void main()uchar b,y,n;flick(); while(1)n=b;y=(n%2);if(y=1)uchar x;for(x=0;x<12;x+)P2=tab3x;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
14、)uchar x;for(x=0;x<12;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; while(!ki1|!ki2|!ki3); 实验二 定时器时钟实验最终实现:上电后设置定时时间,按2号键时间+1,按3号键时间+100;按1号键开始工作;时间到偶小灯闪烁3下,回到初始状态。程序如下:#include<reg52.h>#define uchar unsigned char#d
15、efine uint unsigned intsbit ko1=P36;sbit ko2=P37;sbit ki1=P05;sbit ki2=P06;sbit ki3=P07;sfr P1M1=0x91;sfr P1M0=0x92;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;dodowhi
16、le (-k); while (-j); while (-i);void Delay5ms()/11.0592MHzunsigned char i, j;i = 54;j = 199;dowhile (-j); while (-i);void flick()uchar d;while(d<=2)P2=0x00;P3=0xc3;Delay100ms();P2=0xff;P3=0xff;Delay100ms();d+; void show()char j;switch(j)case 0:P0=tab2j;j+;P1=tab1tab30;break;case 1:P0=tab2j;j+;P1=
17、tab1tab31;break;case 2:P0=tab2j;j+;P1=tab1tab32;break;case 3:P0=tab2j;j=0;P1=tab1tab33;break;default: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;show();void main()uchar m,k;uint n=1;P1M1=0x00;P1M0=0xff;TMOD=0x
18、10;TH1=0xfc;TL1=0x67;ET1=1;EA=1;while(1)if(!TR1)k=0;for(k=0;k<50;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=n/10%10;tab32=n/100%10;tab33=n/1000%10;f
19、or(m=0;m<4;m+)P0=tab2m; P1=tab1tab3m;Delay5ms(); if(m=4) m=0; if(b=n)TR1=0;b=0;n=1;flick();实验三 双机通信实验最终实现:两机连接后按任意键可在两外的机子上显示该键编号。程序如下:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsfr P1M1=0x91;sfr P1M0=0x92;sbit ko1=P36;sbit ko2=P37;sbit ki1=P05;sbit ki2=P06;sbit ki
20、3=P07;sbit scran=P03;tab1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar a,b,n;void Delay5ms()/11.0592MHzunsigned char i, j;i = 54;j = 199;dowhile (-j); while (-i);void main()SCON=0xd0;TMOD=0x20;PCON=0x00;TH1=0xf4;TL1=0xf4;TR1=1;scran=0;while(1)n=a;ko1=0;ko2=1;ki1=1;ki2=1;ki3=1;if(!ki1)Dela
21、y5ms();if(!ki1)a=1;while(!ki1);if(!ki2)Delay5ms();if(!ki2)a=2;while(!ki2);if(!ki3)Delay5ms();if(!ki3)a=3;while(!ki3);ko1=1;ko2=0;ki1=1;ki2=1;ki3=1;if(!ki1)Delay5ms();if(!ki1)a=4;while(!ki1);if(!ki2)Delay5ms();if(!ki2)a=5;while(!ki2);if(!ki3)Delay5ms();if(!ki3)a=6;while(!ki3);if(a!=n)SBUF=a;while(!TI
22、);TI=0; if(RI)b=SBUF;RI=0;P1=tab1b;实验四 交通灯实验最终实现:上电之后进行初始设置,2号键增加红绿灯时间,3号键增加黄灯时间,初始时间都为零;1号键开始工作;按3、4、5任意键急停,按3、4、5任意键继续(从第一步开始。程序如下:#include<reg52.h>#define uchar unsigned char#define uint unsigned intvoid led_show();uchar m,n;uint a=0;uint b=0;uchar k,c,d,f,g;sfr P1M1=0x91;sfr P1M0=0x92;sbit
23、 ko1=P36;sbit ko2=P37;sbit ki1=P05;sbit ki2=P06;sbit ki3=P07;sbit dh=P22;sbit dl=P20;sbit dy=P21;sbit xh=P32;sbit xl=P26;sbit xy=P27;sbit nh=P25;sbit nl=P23;sbit ny=P24;sbit bh=P35;sbit bl=P33;sbit by=P34;tab1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;tab2=0xf7,0xfb,0xfd,0xfe;tab34=0;void sh
24、ow()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 Delay5ms()/11.0592MHzunsigned char i, j;i = 54;j = 199;dowhile (-j); while (-i);void interrupt_timer1() inte
25、rrupt 3TH1=0xfc;TL1=0x67;a+;if(a=1000)b+;a=0;if(b<m&&b>=0)tab30=(m-b)%10;tab31=(m-b)/10%10;tab32=(m-b)/100%10;tab33=(m-b)/1000%10;if(b<d&&b>=m)tab30=(d-b)%10;tab31=(d-b)/10%10;tab32=(d-b)/100%10;tab33=(d-b)/1000%10;if(b<f&&b>=d)tab30=(f-b)%10;tab31=(f-b)/10%
26、10;tab32=(f-b)/100%10;tab33=(f-b)/1000%10;if(b<g&&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();if(!ki1|!ki2|!ki3)P2=0xdb;bl=1;by=1;xh=0;bh=0;while(!ki1|!ki2|!ki3);while(ki1)if(!ki1|!ki2|!ki3)while(!ki1|!ki2|!ki3);b=0;break;void led_show()while(1)dl=1;xl=1;nl=1;b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州财经职业学院《视频传播实务》2023-2024学年第一学期期末试卷
- 贵阳职业技术学院《城乡规划管理与法规》2023-2024学年第一学期期末试卷
- 2025陕西建筑安全员-A证考试题库附答案
- 2025辽宁建筑安全员-A证考试题库附答案
- 2025浙江建筑安全员-C证(专职安全员)考试题库
- 贵阳康养职业大学《民俗与当代社会》2023-2024学年第一学期期末试卷
- 2025陕西省安全员A证考试题库附答案
- 2025甘肃省安全员B证(项目经理)考试题库
- 广州医科大学《建筑给排水》2023-2024学年第一学期期末试卷
- 广州现代信息工程职业技术学院《跨文化交际与面试技巧》2023-2024学年第一学期期末试卷
- 房屋永久居住权合同范本
- 浙江省宁波市慈溪市2023-2024学年高二上学期期末考试 历史 含解析
- 《新闻传播伦理与法规》习题与答案
- 上海市市辖区(2024年-2025年小学五年级语文)人教版期末考试(下学期)试卷及答案
- 电信业务运营与服务规范
- 信息安全技术测试题与答案
- 安保工作考核表
- 收费站突发事件应急预案(10篇)
- 2024年-2025年公路养护工理论知识考试题及答案
- 地 理世界的聚落 课件-2024-2025学年七年级地理上学期(湘教版2024)
- “新生代”社区工作者的基层治理工具箱
评论
0/150
提交评论