资源描述:
《单片机的C语言和程序设计课程基本要求.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程的基本要求通过本课程的学习,应该掌握C51的程序设计语言;掌握8051的中断、定时器/定位器、串行通信等内部资源的C编程方法;正确理解单片机的C语言模块化设计方法;了解8051外部扩展资源的C程序设计方法。单片机的C语言和程序设计6.2C语言与MCS-51单片机6.3C51运算符、表达式及其规则6.4C51数据与运算6.5C51函数6.6库函数简介6.78051内部资源的C51编程6.1概述6.1单片机的C语言和程序设计对于8051及其兼容单片机,目前有四种语言支持:汇编语言、BASIC语言、PL/M语言和C语言。C语言是一种编译型程序设
2、计语言,它兼顾了各种高级语言的特点,并具备汇编语言的功能。与汇编语言相比,C语言有很多的优点:·不要求了解单片机的指令系统,仅要求对8051的存储器结构有初步了解;·寄存器分配,不同存储器的寻址及数据类型等细节可由编译器管理;·程序有规范的结构;·函数库提供很多的标准程序。单片机的C语言和标准C语言的比较C51与标准的C语言定义的库函数不同.C51中的数据类型和标准C的数据类型也有一定的区别.C51变量与标准C中变量的存储模式不一样.C51与标准C的输入/输出处理不一样.C51与标准C语言在函数使用方面有一定的区别.学习重点:学习C51程序设
3、计,重点掌握标准C语言和C51的区别.主要内容:C51的数据类型和存储类型、基本运算、构造数据类型、函数以及程序设计中的其他一些问题等内容.6.2C语言与MCS-51单片机6.2.1C语言编译器与程序开发过程6.2.2C51程序结构全局变量说明/*可被本程序的各函数引用*/函数1说明……函数n说明主函数main(){局部变量说明/*只能在本函数内引用*/执行语句(包括函数调用语句)(形式参数表)}函数1(形式参数说明){局部变量说明/*只能在本函数内引用*/执行语句(包括调用其他函数语句)(形式参数表)}函数n(形式参数说明){局部变量说明执
4、行语句}例6.1程序如下:#include#include#defineCON8279XBYTE[OX6EFF]#defineucharunsignedcharvoidINIT79();/*8279初始化*/voidmain(){ucharxdata*p;ucharcodeTAB[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}/*0,1,2,3,4,5,6,7,8,9*/INIT79();P=&DAT8279;While(1){while(IE1
5、==0);/*等待键输入*/IE1=0;DAT8279=TAB[*P];}}VoidINIT79(void){CON8279=0xDC;CON8279=0x10;……}注释部份/*…*/这部分内容不会被编译,也不被执行编译预处理程序编译、执行前系统自动进行的特殊处理特点:以#开头结束处无分号#defineCON8279XBYTE[0x6EFF]#define—宏定义命令CON8279—符号常量0x6EFF—宏体(可以是一个表达式,如3+4)作用:用简单符号代表宏体部份内容意义:直观/多次使用/便于修改注意:#define可出现在程序的任一位置
6、(作用范围:由此行到程序末尾)宏定义不是C语句,不必在行末加分号,否则会连分号一起置换。#include<>标准方式只按标准方式(系统存放C库函数头文件所在目录)查找所要包含的文件对CX51,默认只在C51include目录下查找#include“”先在源文件所在目录找指定头文件,若无再按标准方式找(更保险)小结CX51语言程序的基本特点CX51语言是一种函数式语言,其程序基本组成是函数每个CX51程序必须有一个、也只能有一个主函数main不管主函数在程序中的位置如何,程序执行总是从主函数开始所有变量必须先定义(规定数据类型)后使用每个语
7、句必须用分号“;”结束(注意是“每个语句”而不“每行语句”)编译预处理命令不是语句(行末不能用分号结束)Cx51语言本身没有输入/输出语句,其输入/输出功能须通过调用标准函数通过串行口实现使用系统提供的标准库函数或其他文件提供的现成函数时,必须使用“文件包含”。6.3C51运算符、表达式及其规则6.3.1算术运算符及表达式1.基本的算术运算符C51语言的算术运算符一共有5种:+加法运算符—减法运算符*乘法运算符/除法运算符%模(取余数)运算符例:14%4=0x022.自增(++),自减(--)运算符(1)当++j(或--j)时,是先将变量j的
8、值加1(或减小1),再取变量值;(2)当j++(或j--)时,是先取变量值,再把变量的值加1(或减1)例如:inti,j,k;i=4;j=++i;/*j值为5,i值