单片机程序设计基础
应用介绍
在简单了解单片机原理和C语言的基础上,初学者可以采用C语言试着编写一些单片机的入门程序,完成简单的项目设计。本章主要学习单片机I/O口输入与输出程序设计。 I/O口的输出程序设计先从驱动单只LED驱动入手,然后讨论多个I/O口的驱动问题;I/O口的输入也先从最简单的一个按键输入开始研究,然后讨论多个按键输入程序设计方法。在这些单元实例完成的基础上,实现两位数码管现实4×4按键矩阵的程序设计。本章中每个项目的程序利用Keil软件编写,电路原理图采用Proteus软件设计,通过软件仿真来验证程序设计的完整性。
本章将要完成的项目有:
项目1 P0.0驱动LED闪烁;
项目2 流水灯(跑马灯)设计;
项目3 数码管0~9显示;
项目4 单片机的按键
4-1按键抬起有效输入
4-2按下有效输入
4-3 4×4按键矩阵
4-4 按键调整(思考题3-6)
单片机C语言程序的可读性、模块化和资源共享方面与汇编相比有明显的优势,因此单片机程序开发和项目设计越来越多的采用C语言程序。51单片机编程所用的C语言,在Keil µVision3 集成开发环境中称为Keil C51,简称为C51,指的是用于51单片机的C程序。Keil C51语言在兼容ANSI C的基础上,又增加很多与51单片机硬件资源相关的关键字、库函数和编译特性,使得开发51系列单片机程序变得更为方便和快捷。因为标准的C数据、运算以及函数同样可以用到C51中,因此本节介绍的单片机C语言包含标准C语言部分。
C51特点
与标准的ANSI C相比,C51程序在头文件、数据类型、数据的存储类型、中断处理以及库函数等方面都有一定差异,主要原因是单片机程序更服从于硬件系统。
一、系统硬件头文件
51系列单片机的差异在于内部资源(如定时器、中断、I/O等数量)以及功能的不同,而对使用者来说,只需要将相应的功能寄存器的头文件加载到程序内,就可实现所具有的功能。因此,Keil C51系列的头文件集中体现了各系列芯片的不同资源及功能。
例如MCS-51架构的单片机系统头文件为reg51.h,增强型51由于内部增加了定时器T2,因此要用到的头文件为reg52.h。程序设计时,程序须包含reg51.h或reg52.h头文件。
二、数据类型
51系列单片机含位操作空间和位操作指令,单片机片内寄存器也可以由用户定义,因此Keil C51在标准C数据类型的基础上扩展了bit、sbit、sfr 4种类型声明,以便能够灵活地进行操作。
另外,由于51单片机有片内、外程序存储器,还有片内、外数据存储器,因此Keil C51中增加了数据存储类型操作指令。C语言最初是为通用计算机设计的,在通用计算机中只有一个程序和数据统一寻址的内存空间,标准C并没有提供这部分存储器的地址范围的定义
由于标准C中部分库函数不适于嵌入式处理器系统,因此这些函数库没有被Keil C51采用,如字符屏幕和图形函数。有一些标准C库函数可以在Keil C51继续使用,但这些库函数都必须针对51单片机的硬件特点来作出相应的开发,与标准C库函数的构成与用法有很大的不同。例如库函数printf和scanf,在标准C中,这两个函数通常用于屏幕打印和接收字符,而在Keil C51中,它们主要用于串行口数据的收发。
51单片机的硬件资源有限,编译系统不允许太多的程序嵌套。标准C所具备的递归特性不被Keil C51支持。在C51中,要使用递归特性,必须用reentrant进行声明才能使用。
在Keil C51中还定义了与单片机中断处理有关的关键字,这一点与标准C语言有较大差异。从数据运算操作、程序控制语句以及函数的使用上来说,Keil C51与标准C几乎没有什么明显的差别。注意Keil C51与标准C的不同之处,并熟悉51单片机的硬件结构,能够较快地掌握Keil C51的编程应用。
Keil C51的基本数据类型如表3-1-1所示。根据51单片机的硬件特点,C51在标准C的基础上,扩展了4种数据类型(见表中最后4行),这4种数据类型不能使用指针对它们存取。下面对扩展的4种数据类型进行说明。
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: www_apollocode_net@163.com 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » 单片机程序设计基础
文件列表(部分)
名称 | 大小 | 修改日期 |
---|---|---|
第1节-单片机的C语言.ppt | 204.94 KB | 2019-09-03 |
第2节-单片机驱动一个LED闪烁(项目1、2).ppt | 399.80 KB | 2019-09-03 |
第3节-数码管驱动(项目3).ppt | 453.32 KB | 2019-09-03 |
第4节-单片机系统的按键(项目4).ppt | 247.93 KB | 2019-09-03 |
发表评论 取消回复