单片机C语言程序设计
单片机C语言程序设计
实验指导书
(必修)
电子与信息工程学院
储茂祥 巩荣芬 主编
前 言
单片机体积小,重量轻,具有很强的灵活性,而且价格不高,越来越得到广泛的应用。而C语言是一种编译型设计语言。它兼顾了多种高级语言的特点,并具备汇编语言的功能。用C语言来编写目标系统软件,会大大缩短开发周期,且明显的增加软件的可读性,便于改进和扩充,以研制出规模更大、性能更完备的系统。用C语言进行8051单片机程序设计是单片机开发与应用的必然趋势。单片机的程序设计应该以C语言为主,以汇编语言为辅。而且采用C语言也不必对单片机和硬件接口的结构有很深入的了解,编译器可以自动完成变量的存储单元的分配,编程者就可以专注于应用软件部分的设计,大大加快软件的开发速度。采用C语言可以很容易地进行单片机的程序移植工作,有利于产品中单片机的重新选型。为此,特开设了单片机的C语言应用程序设计这门选修课。
课程的内容主要包括了单片机C语言编程的基本语法和思想,单片机内部资源的C编程,单片机常见外部扩展资源的C编程等。基于本课程的特点,结合高等院校要求,为了不断提高大学生的实验研究能力、分析编程能力、总结归纳能力和解决实际问题的能力,特意编写了本实验指导书,以指导如何利用现有的实验设备进行单片机内外资源的C编程以及简单系统的开发等。它不仅包括了一系列的验证性实验,而且还包括了综合性和设计性实验。实验的开设有利于培养学生分析问题和解决问题的能力,以及使抽象的概念和理论形象化、具体化,对增强学习的兴趣有极大的好处,做好本课程的实验,是学好本课程的重要教学辅助环节。
总之,不论是验证性实验还是综合性实验都会加深学生对基本知识的理解和渗透,提高他们的动手操作能力,以更好的适应时代发展的需要。本实验要求同学在做实验之前要很好的完成预习任务和调试程序的编写;在完成每个实验后,要认真书写实验报告, 对实验程序的正确性进行分析,并写出调试心得和体会。
目 录
前 言...................................................................1
目 录...................................................................2
实验一 I/O口扩展实验....................................................3
实验二 定时器及外部中断实验.............................................8
实验三 8255扩展八段数码管实验..........................................12
实验四 8253多路定时/计数器实验.........................................15
实验五 8279键盘显示扩展实验(综合性)..................................18
实验六 点对点异步串口通信实验 (设计性).................................21
参考文献................................................................24
单片机C语言程序设计实验指导书
实验一 I/O口扩展实验
一、实验目的
1、学习在单片机系统中扩展简单I/O口的方法。
2、学习C51语言数据输入,输出程序的编程方法。
二、实验设备
EL-MUT-III型单片机实验箱、8051CPU模块、PC机
三、实验内容
本实验的原理图如下图所示。
该实验利用单片机C语言编程,实现单片机数据口由74LS244读取八个开关的状态,并将此状态由单片机数据口输出,经过74LS273锁存并驱动发光二极管显示。其中74LS244的输入端口接开关K1—K8,74LS273的输出端口接发光二极管。74LS244的片选CS244接CS1,表明74LS244对于单片机而言的外部地址为0CFA8H,74LS273的片选CS273接CS2,表明74LS273对于单片机而言的外部地址为0CFB0H。
四、实验原理
1、I/O接口
MCS-51系列单片机共有4个I/O口,分别是P0、P1、P2、P3,此四个接口都可以单独的做输入或输出使用。实际应用中,P0口用于输出外部数据存储器的低8位,并分时复用作为与外部连接的数据总线口;P2口用于输出高8位地址;P3口常操作于定义的第二功能;P1口一般为留给用户使用的基本I/O口。
单片机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)
{
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型教
单片机C语言程序设计实验指导书 学实验环境软件为调试工具,实现本课程所有实验的仿真、调试任务。首先打开实验台的电源,打开PC机进入桌面。然后点击桌面快捷图标MCS51,以默认的通信方式点击确定。在点击确定按钮的同时,立即打开实验台左上方的POWER SWITCH开关,此时,调试软件能够正确地进入调试环境,如图1所示。
图1 新建C51文件
如图1所示点击:文件\新建\C51文件,建立新C51文件,即可进入编辑环境,编辑C51语言代码,如图2所示。
图2 编辑源代码
编辑完成代码后,可点击:文件\保存,并选择保存路径和设定文件名,就可实现文件的保存。注意的是,文件保存的路径不可太深,且不要有中文目录,文件名也不要太长,可参照下例:
D:\work\ex1.c
源代码编辑完成后,进行编译、链接调试,如图3所示。只要依次点击:编译、链接按钮即可,也可以直接点击编译链接按钮。编译、链接按钮都有快捷键方式,可以使用快捷键,实现同样的功能。
单片机C语言程序设计实验指导书
图3 编译、链接
在编译、链接的过程中,会弹出对话框,可观察源代码中是否有错,如果有错,可修改源代码,重新 …… 此处隐藏:7709字,全部文档内容请下载后查看。喜欢就下载吧 ……
- 基于PLC控制的航空电镀生产线自动输送
- 中考预测课内外文言文对比阅读2
- 2018-2023年中国商业智能(BI)产业市场
- 中国金融体制改革研究2011new
- 外窗淋水试验方案
- 精益生产(Lean Production)
- 学校安全事故处置和信息报送制度
- Chapter 5 Human Resources Management
- 【小学数学】人教版小学六年级上册数学
- 初中数学解题方法与技巧
- 山东省创伤中心建设与管理指导原则(试
- 函数与数列的极限的强化练习题答案
- 10分钟淋巴按摩消脂
- 网络应急演练预案
- 服装设计入门基础知识
- 初二数学分式计算题练习
- (人教新课标)高二数学必修5第二章 数列
- 最新自主创业项目
- 北京大学 无机化学课件 4第4章 配合物
- 贸易公司业务管理制度




