C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟

学 号:

班 级: 自动化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),查阅相关资料后知道表示方法,并学会了用“sbit”语句定义,方便多了。

2)对于C语言的很多东西都不知道,语句的用法也不清楚,重新看了C语言,用到什么看什么很快就懂了。

3)主程序中没有用延时程序和死循环导致led不能点亮,请教同学以后才知道。

4)对于按键只是不了解,看书又很模糊,看了网上“KINGST工作室”也就是“手把手教你学单片机”的视频后很清楚明了,之后好多东西也是从上边学到,就不再赘述了。

指导老师签字:

日期:

实验二 定时器或实时时钟实验

一、实验目的

1)数码管动态显示技术

2)定时器的应用

3)按键功能定义

二、实验实现的功能

1)通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。

2)实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。

上述二个功能至少完成一种功能。

三、系统硬件设计

1)如单片机核心开发板所示的硬件电路。

四、系统软件设计

设计思路:

1)做的是秒表定时器的实验;

2)利用中断技术实现利用单片机定时器完成计时功能;

3)定时器1计时中断程序每隔0.001s中断一次并当作一个计数,则1000次中断为 1秒,然后十进制进位即可;

4)在程序开始计数器不工作时设定一个值,当计数器工作时将时间与设定时间比较,如果想等,计数器停止工作,小灯闪烁三下;

5)将以上思想汇总,编程,实现功能。程序详见附录。

五、实验过程中遇到的问题及解决方法

1)最开始的时钟和秒表都没有用计时器和中断,但是也达到了实验要求,最后又改用始终计时器,浪费了很多时间。

2)不知道怎么使数码管显示不同数字,从网上学到用动态扫描来显示。

3)认真学习了中断技术并运用之后,切实意识到中断技术是单片机的核心技术,数码管显示也变得简单和稳定了。

4)子程序中的参数传递不出来,在网上搜索以后知道了全局变量和局部变量,并知道了“void”的作用。

5)运用“!”符号后不用再麻烦的写“key==0”,很实用

指导老师签字:

c语言编程流水灯与交通灯实验,C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟.doc...相关推荐

  1. c51单片机学习笔记-LED流水灯实验

    目的:实现 LED 流水灯,只需循环让 D1-D8 指示灯逐个点亮. 方法:点亮 D1 且把 D2-D8 熄灭,延时一段时间后再点亮 D2 且把 D1. D3-D8 熄灭,延时一段时间后再点亮 D3 ...

  2. 用C语言编程实现矩形波信号,信号与系统综合设计性实验

    信号与系统综合设计性实验 傅立叶变换性质 实验设备 硬件 电脑软件 MATLAB 实验目的 掌握MATLAB的基本使用方法 掌握MATLAB环境下信号表示及产生方法 掌握MATLAB环境下傅立叶变换方 ...

  3. C51单片机实验——LED流水灯

    实验一 LED流水灯实验报告 实验名称:LED流水灯实验 实验环境:普中实验系统:Keil μVision 4软件: 实验目的: (1)掌握uVision实验环境的使用 (2)掌握单片机I/O控制方法 ...

  4. c语言编程使蜂鸣器音乐,求: 用51单片机c语言操作使蜂鸣器奏出“祝你生日快乐”音乐的全部程序!...

    满意答案 yxy777li 推荐于 2017.10.05 采纳率:59%    等级:12 已帮助:8867人 #include sbit speaker=P1^2; unsigned char ti ...

  5. 访问外部扩展C语言编程,单片机C语言编程(系统扩展IC)8.ppt

    单片机C语言编程(系统扩展IC)8 第8章 单片机系统扩展 第8章 单片机系统扩展 目 录 8.1 扩展并行三总线 8.2 扩展简单并行输入/输出口 8.3 扩展并行数据存储器 8.4 串行扩展总线接 ...

  6. STM8的C语言编程(14)--+PWM

    STM8的C语言编程(14)-- PWM 在单片机应用系统中,也常常会用到PWM信号输出,例如电机转速的控制.现在很多高档的单片机也都集成了PWM功能模块,方便用户的应用. 对于PWM信号,主要涉及到 ...

  7. c语言编程物理实验,大学物理实验报告大全C语言编程在大学物理实验中处理数据的研究...

    大学物理实验报告大全C语言编程在大学物理实验中处理数据的研究 摘要 用C语言编程的方法处理比较复杂的实验数据,简捷准确且避免了传统方法的弊端,与用Excel处理数据的方法相比,其结果更符合误差理论. ...

  8. 用c语言编程牛顿环实验报告,C语言和Origin7.5软件在实验中的应用——以牛顿环测纯水折射率为例.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspC/C++资料 C语言和Origin7.5软件在实验中的应用-- ...

  9. c语言io口置1,AVR C语言编程的小技巧-IO口置位

    avr AVR C语言编程的小技巧-IO口置位 给单片机IO口置位是编程用的比较多的操作,这是我在学习C语言编程中的一点小小心得,希望大家觉得有用! AVR 单片机的IO口是标准的双向端口,首先要设置 ...

最新文章

  1. MyEclipse搭建java Web项目开发环境
  2. DL之InceptionV4/ResNet:InceptionV4/Inception-ResNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  3. Defensive programming -- Code complete reading notes(8)
  4. 有效的数独Python解法
  5. 一条命令解决系统N多故障
  6. 10个给程序员的建议
  7. thymeleaf点击onclick事件
  8. 如何判断你和优秀AI算法工程师之间的差异?
  9. java开发工具小结
  10. PUTTY官网下载地址
  11. 二、用于数据分析的Tableau技巧
  12. 航模的无刷电机到底是什么电机
  13. php5.4 eregi,帮助将PHP eregi转换为preg_match
  14. 机器学习苹果识别——python+opencv实现物体特征提取
  15. mac vscode改变字体
  16. android模拟器如何输入中文,不能输入中文
  17. #学习笔记4#软件测试基础——测试阶段划分、黑盒测试的一些知识
  18. 金立android 7.1.1,金立新手机参数曝光!10000mAh电池 运行安卓7.1,能否打个翻身仗...
  19. 熟悉Elipse开发工具
  20. 推荐8个好用的Linux音乐播放器~

热门文章

  1. logback AbstractLogstashTcpSocketAppender 源码解析
  2. spring声明式事务管理方式( 基于tx和aop名字空间的xml配置+@Transactional注解)
  3. Cannot resolve symbol 'R',Failed to resolve: constraint-layout
  4. Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview
  5. docker中centos遇到sudo: command not found
  6. java 迭代器的原理_Java集合框架迭代器Iterator实现原理解析
  7. docker绑定端口主机访问curl: (56) Recv failure: Connection reset by peer
  8. 过滤器filter,监听器listener
  9. Java多线程,锁(synchronize),饿汉式单例线程,等待处理机制
  10. Csharp迭代循环