C51单片机实验报告流水灯交通灯定时器双机交互 时钟.doc
文本预览下载声明
学 号:
班 级: 自动化10班
姓 名: 张
指导老师: 胡
2012.12
单片机核心板实验要求
流水灯实验
实验目的:
简单I/O引脚的输出
掌握软件延时编程方法
简单按键输入捕获判断
完成功能要求
开机是点亮12发光二极管,闪烁三下
按照顺时针循环依次点亮发光二极管
通过按键将发光二极管的显示改为顺逆时针方式
定时器或实时时钟实验
实验目的
数码管动态显示技术
定时器的应用
按键功能定义
完成功能要求
通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。
实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。
上述二个功能至少完成一种功能。
双机通信实验
实验目的
UART 串行通信接口技术应用
完成功能要求
用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。
交通灯实验
实验目的
按键、数码管、发光二极管综合应用编程技术
数据存储于EEPROM的技术(也可以不使用)
定时中断技术
按键中断技术
完成功能要求
对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。
设定参数掉电后不丢失(如果不使用EEPROM,此功能可以不实现)。
紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。
实验一 流水灯实验
一、实验目的
1) 简单I/O引脚的输出
2) 掌握软件延时编程方法
3) 简单按键输入捕获判断
二、实验实现的功能
1) 开机是点亮12发光二极管,闪烁三下
2) 按照顺时针循环依次点亮发光二极管
3) 通过按键将发光二极管的显示改为顺逆时针方式
三、系统硬件设计
1)如单片机核心板所示的硬件电路。
四、系统软件设计
设计思路:
1)定义数组使得调用数组可以使led灯能够顺时针和逆时针显示;
2)将按键的输入端全部置零,做单独按键使用;
3)利用“while”循环使得数码管可以闪烁三下;
4)利用“for”循环使得小灯能够依次点亮一个周期;
5)将以上思想汇总,编程,实现功能。程序详见附录。
五、实验过程中遇到的问题及解决方法
1)刚开始不知道怎样只设置一个管脚(如P0^0)s中断一次并当作一个计数,则1000次中断为 1秒,然后十进制进位即可;
4)在程序开始计数器不工作时设定一个值,当计数器工作时将时间与设定时间比较,如果想等,计数器停止工作,小灯闪烁三下;
5)将以上思想汇总,编程,实现功能。程序详见附录。
五、实验过程中遇到的问题及解决方法
1)最开始的时钟和秒表都没有用计时器和中断,但是也达到了实验要求,最后又改用始终计时器,浪费了很多时间。
2)不知道怎么使数码管显示不同数字,从网上学到用动态扫描来显示。
3)认真学习了中断技术并运用之后,切实意识到中断技术是单片机的核心技术,数码管显示也变得简单和稳定了。
4)子程序中的参数传递不出来,在网上搜索以后知道了全局变量和局部变量,并知道了“void”的作用。
5)运用“!”符号后不用再麻烦的写“key==0”,很实用
指导老师签字:
日期:
实验三 双机通信实验
一、实验目的
1)UART 串行通信接口技术应用
二、实验实现的功能
1)用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。
三、系统硬件设计
1)如单片机核心板所示的硬件电路。
四、系统软件设计
设计思路:
1)该实验不对端口进行复杂操作,所以实验较简单;
2)设定波特率并计算出“TH1”和”TL1”的值;
3)对单片机进行初始化;
4)通过键盘扫面程序读出按下降的键并给予相关的编号;
5)输出编号;
6)读入数过来的值;
7)在数码管上显示;
8)将以上思想汇总,编程,实现功能。程序详见附录。
五、实验过程中遇到的问题及解决方法
1)对UART技术不了解,看书和视频以后有了初步了解。
2)按照课本上的程序模仿之后发现可以接收不能发送,认真查询程序发现了在利用数码管显示时将“P0=0XF7”直接将按键检测端口置高,按键无效了。
3)解决问题二之后还是不能发送数据,最后检查发现直接用“IF(TI)”不能有效地开通发送标志位,所以用了先将初值赋值给一个数,检测之后比较,并用比较结果进入发送允许,最后实现。
指导老师签字:
显示全部