单片机C语言程序设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、画出流程图,并写出实验仿真调试后正确的程序。
3、对实验思考题加以分析,按照要求做出回答,并作实验总结。
七、实验思考题
1、编写程序,用定时器中断来做延时实现任意拨动开关 K1—K8,都能够由发光二
极管显示出来。
2、实验总结(实验调试过程中的问题和调试体会)。
预习任务: 1、查阅 74LS244 和 74LS273 芯片资料。
―6-
单片机 C 语言程序设计实验指导书
实验箱上的六个数码管显示 C_ ,表明复位且通信良好,此时就可重新进行硬件调试了, 如果显示 P_ ,表示复位或者通信存在问题,需要重新操作。
五、实验步骤
图 5 运行
1、74LS244 的 IN0~IN7 接开关的 K1~K8,片选信号 CS244 接 CS1。
图 1 新建 C51 文件 如图 1 所示点击:文件\新建\C51 文件,建立新 C51 文件,即可进入编辑环境,编 辑 C51 语言代码,如图 2 所示。
图 2 编辑源代码 编辑完成代码后,可点击:文件\保存,并选择保存路径和设定文件名,就可实现 文件的保存。注意的是,文件保存的路径不可太深,且不要有中文目录,文件名也不要 太长,可参照下例: D:\work\ex1.c 源代码编辑完成后,进行编译、链接调试,如图 3 所示。只要依次点击:编译、链 接按钮即可,也可以直接点击编译链接按钮。编译、链接按钮都有快捷键方式,可以使 用快捷键,实现同样的功能。
图 4 调试 程序下载完成后,进行硬件调试,实现程序对应的功能。如图 5 所示,对应一系列 的按钮,完成各种调试功能,一般情况下如果程序完全正确无误后,可直接点击运行按 钮,此时,程序以全速的方式运行,我们就可以观察实验箱的实验现象。 实验中,我们还要注意的是,如果硬件调试有问题,经过修改程序需要重新硬件调 试的时候,可以使用如下方法实现快速的重新调试:如图 4 点击单片机复位按钮,弹出 确定提示框,根据提示按一下实验箱左下方的 RESET 按钮,并立刻点击确定按钮,如果
―4-
单片机 C 语言程序设计实验指导书
学实验环境软件为调试工具,实现本课程所有实验的仿真、调试任务。首先打开实验台 的电源,打开 PC 机进入桌面。然后点击桌面快捷图标 MCS51,以默认的通信方式点击确 定。在点击确定按钮的同时,立即打开实验台左上方的 POWER SWITCH 开关,此时,调 试软件能够正确地进入调试环境,如图 1 所示。
―5-
单片机 C 语言程序设计实验指导书
图 3 编译、链接 在编译、链接的过程中,会弹出对话框,可观察源代码中是否有错,如果有错,可 修改源代码,重新编译、链接,直至正确为止。 上面的过程实际上是软件调试的过程,接下来要进行硬件调试。首先在断电的情况 下将实验箱对应电路连线,组成需要的硬件电路,然后按上面步骤做好软件调试,正确 无误后,开始进行硬件调试。如图 4 所示,点击调试按钮,实现程序的编译、链接代码 HEX 文件下载到实验箱单片机的程序区。
2. 在上述实验内容的基础上增加允许急救车优先通过的要求。 具体要求为: 当有急救车到达时,东西和南北方向上的红灯亮,以便让急救车通过, 假定急救车通过路口的时间为 10 秒,急救车通过后,交通灯恢复中断前的状态。本实
―8-
单片机 C 语言程Baidu Nhomakorabea设计实验指导书
验以单脉冲为中断申请,表示有急救车通过。
课程的内容主要包括了单片机 C 语言编程的基本语法和思想,单片机内部资源的 C 编程,单片机常见外部扩展资源的 C 编程等。基于本课程的特点,结合高等院校要求, 为了不断提高大学生的实验研究能力、分析编程能力、总结归纳能力和解决实际问题的 能力,特意编写了本实验指导书,以指导如何利用现有的实验设备进行单片机内外资源 的 C 编程以及简单系统的开发等。它不仅包括了一系列的验证性实验,而且还包括了综 合性和设计性实验。实验的开设有利于培养学生分析问题和解决问题的能力,以及使抽 象的概念和理论形象化、具体化,对增强学习的兴趣有极大的好处,做好本课程的实验, 是学好本课程的重要教学辅助环节。
总之,不论是验证性实验还是综合性实验都会加深学生对基本知识的理解和渗透, 提高他们的动手操作能力,以更好的适应时代发展的需要。本实验要求同学在做实验之 前要很好的完成预习任务和调试程序的编写;在完成每个实验后,要认真书写实验报告, 对实验程序的正确性进行分析,并写出调试心得和体会。
―1-
单片机 C 语言程序设计实验指导书
―3-
单片机 C 语言程序设计实验指导书
在单片机 C 语言中,对于端口(位)的使用可以使用 sbit 来定义,如: sbit P10=P1^0//定义变量 P10 指向 P1 端口的第 0 位 在程序中就可以使用 P10 变量来访问 P1 口的第 0 位。对于 P0 口、P2 口,一般在 访问外部数据空间时使用,在单片机 C 语言中的使用方法可以看下例: #include <reg51.h> #include <absacc.h> #define INPORT XBYTE[0XCFA8]//定义变量 INPORT 指向外部空间 0XCFA8 #define OUTPORT XBYTE[0XCFB0]// 定义变量 OUTPORT 指向外部空间 0XCFB0 void main(void) {
3、学习模拟交通灯控制的 C51 实现方法。
4、学习外部中断技术及定时器中断的 C51 基本使用方法。
5、学习中断处理程序 C51 编程方法。
二、实验设备
EL-MUT-III 型单片机实验箱、8051CPU 模块、PC 机
三、实验内容
本实验的原理图如下:
1.扩展实验箱上的 74LS273 作为输出口,控制八个发光二极管亮灭,模拟交通灯 管理。
目录
前 言 ...................................................................1 目 录 ...................................................................2 实验一 I/O口扩展实验 ....................................................3 实验二 定时器及外部中断实验 .............................................8 实验三 8255 扩展八段数码管实验 ..........................................12 实验四 8253 多路定时/计数器实验 .........................................15 实验五 8279 键盘显示扩展实验(综合性) ..................................18 实验六 点对点异步串口通信实验 (设计性) .................................21 参考文献 ................................................................24
四、实验原理
1、I/O 接口 MCS-51 系列单片机共有 4 个 I/O 口,分别是 P0、P1、P2、P3,此四个接口都可以 单独的做输入或输出使用。实际应用中,P0 口用于输出外部数据存储器的低 8 位,并分 时复用作为与外部连接的数据总线口;P2 口用于输出高 8 位地址;P3 口常操作于定义 的第二功能;P1 口一般为留给用户使用的基本 I/O 口。
OUTPORT=INPORT; …… } 该例实现了将外部空间 0xCFA8 的数据转存入外部空间 0xCFB0 的功能,注意的是, 在单片机 C 语言中,对于外部空间的使用,需要用 XBYTE 关键字来定义,而且程序要包 含 absacc.h 这一函数库。 本实验利用单片机的外部扩展空间,实现由单片机数据总线口读取固定地址的外部 空间状态,同时将状态数据由单片机数据总线口输出到另一外部空间显示。本实验中扩 展的芯片可理解为单片机对应地址的外部空间,对应芯片的外部地址由片选信号确定, 对于本实验原理图,74LS244 的片选 CS244 接 CS1,表明 74LS244 对于单片机而言的外 部地址为 0CFA8H,74LS273 的片选 CS273 接 CS2,表明 74LS273 对于单片机而言的外部 地址为 0CFB0H。因此,可利用 P0 口、P2 口实现外部存储空间的访问,方法如上面的例 子。如果单片机外扩芯片过多,则 MCS-51 总线口的负载过重,74LS244 是一个扩展输入 口,同时也是一个单向驱动器,它可以减轻总线口的负担。 本实验程序为减少总线口读写的频繁程度,需要增加一段延时程序,延时时间约为 0.01 秒,不会影响显示的稳定。单片机 C 语言中延时的方法可以采用:for 循环、定时 器定时。 2、仿真调试 单片机 C 语言的实验将以 EL-MUT-III 型单片机实验箱为硬件调试平台,以 EL 型教
―2-
单片机 C 语言程序设计实验指导书
实验一 I/O 口扩展实验
一、实验目的
1、学习在单片机系统中扩展简单 I/O 口的方法。 2、学习 C51 语言数据输入,输出程序的编程方法。
二、实验设备
EL-MUT-III 型单片机实验箱、8051CPU 模块、PC 机
三、实验内容
本实验的原理图如下图所示。
2、按照实验内容,画出流程图,编写程序,采用软件延时(for 循环)实现任意拨
动开关 K1—K8,都能够由发光二极管显示出来。
―7-
单片机 C 语言程序设计实验指导书
实验二 定时器及外部中断实验
一、实验目的
——有急救车的交通灯控制实验
1、熟练在单片机系统中扩展简单 I/O 接口的方法。
2、熟练 C51 语言数据输出程序的设计方法。
2、74LS273 的 O0~O7 接发光二极管的 L1~L8,片选信号 CS273 接 CS2。
3、按实验内容编写程序(注:以 for 循环的方式实现定时)。
4、仿真调试(参照实验原理),拨动开关 K1~K8,观察发光二极管状态的变化。
六、实验报告要求
1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。
该实验利用单片机 C 语言编程,实现单片机数据口由 74LS244 读取八个开关的状态, 并将此状态由单片机数据口输出,经过 74LS273 锁存并驱动发光二极管显示。其中 74LS244 的输入端口接开关 K1—K8,74LS273 的输出端口接发光二极管。74LS244 的片 选 CS244 接 CS1,表明 74LS244 对于单片机而言的外部地址为 0CFA8H,74LS273 的片选 CS273 接 CS2,表明 74LS273 对于单片机而言的外部地址为 0CFB0H。
单片机 C 语言程序设计 实验指导书
(必修)
电子与信息工程学院
储茂祥 巩荣芬 主编
单片机 C 语言程序设计实验指导书
前言
单片机体积小,重量轻,具有很强的灵活性,而且价格不高,越来越得到广泛的应 用。而 C 语言是一种编译型设计语言。它兼顾了多种高级语言的特点,并具备汇编语言 的功能。用 C 语言来编写目标系统软件,会大大缩短开发周期,且明显的增加软件的可 读性,便于改进和扩充,以研制出规模更大、性能更完备的系统。用 C 语言进行 8051 单片机程序设计是单片机开发与应用的必然趋势。单片机的程序设计应该以 C 语言为 主,以汇编语言为辅。而且采用 C 语言也不必对单片机和硬件接口的结构有很深入的了 解,编译器可以自动完成变量的存储单元的分配,编程者就可以专注于应用软件部分的 设计,大大加快软件的开发速度。采用 C 语言可以很容易地进行单片机的程序移植工作, 有利于产品中单片机的重新选型。为此,特开设了单片机的 C 语言应用程序设计这门选 修课。
四、实验原理
1、实验方案 本实验的设计可以有两种设计方案: 方案一:用十二个发光二极管分别表示南面路口的绿灯、黄灯、红灯,东面路口的 绿灯、黄灯、红灯,北面路口的绿灯、黄灯、红灯,西面路口的绿灯、黄灯、红灯。 方案二:虽然实际交通灯的数量是十二个,但是因为南北路口的两个红灯、绿灯以 及黄灯的亮灭 规律相同,其它路口的灯也满足同样的规律,所以用六个发光二极管也 能模拟交通灯。由原理图可定义如下: LED1、LED2、LED3 → 南北方向的绿灯、黄灯、红灯 LED4、LED5、LED6 → 东西方向的绿灯、黄灯、红灯 要完成本实验,首先必须了解交通路灯的亮灭规律,本实验的亮灭规律如下: 1、 初始态是两个方向路口的红灯全亮。 2、 东西路口的绿灯亮,南北路口的红灯亮,东西方向通车。 3、 延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。 4、闪烁若干次后,东西路口红灯亮,同时南北路口绿灯亮,南北方向开始通车。 5、延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换 到东西路口方向,如此反复下去。 本实验以单脉冲为中断申请,表示有急救车通过。特别注意的是中断现场的保护。 要求用软件或者定时器来完成延时。 2、实验说明 本实验 74LS273 芯片对于单片机而言,为外扩的外部资源,其对应的地址由片选信 号 CS273 控制,本实验 74LS273 的片选 CS273 接片选信号 CSO ,则 74LS273 项对于单片 机的外部空间抵制为 0xCFB0,C51 语言定义如下: #define OUTPORT XBYTE[0xCFB0] 因此交通灯(发光二极管)的显示数据可以赋给 OUTPORT 变量,实现结果的输出。 本实验中还要注意的是,交通灯的每一种状态的显示,都需要延时一段时间再切换到另 一种状态,从而实现每一种状态的稳定显示。其 C51 语言的实现方法如下: OUTPORT=x;//显示交通灯某一状态数据 x