讲座二(C51自身资源运用以及KeilC语言相关方面知识).pptx
文本预览下载声明
Keil C语言知识以及80C51自身资源运用
高 翔;硬件条件
硬件平台
最小系统
IO扩展板
Zlg7290扩展板
仿真器
TKS-58BU
软件条件
程序编译软件平台
Keil v4
程序语言
Keil C语言;安装keil V4
破解keil
打开keilv4,点击file-license management查看“CID”
;打开破解软件,输入CID,点击生成“generate”
将生成的“LIC”加入keilv4的license management
;新建工程(project-new usion project)
工程名称
选择器件(AT80C51)
新建源程序文件(c文件)
保存为后缀名为.c的文件,如main.c
将建立的源程序文件加入到项目管理器
双击“source group”或右键选择“add file to group”
选择建立的.c文件
编写程序
编译程序(build)
硬件下载调试或者软件仿真(debug);软件调试
单步运行
全速运行
变量窗口;为什么要用c语言
汇编语言
优:执行效率高
缺:编程效率低(尤其对于复杂、程序量大的程序)、可??植性差、可读性差、底层硬件涉及过多
C语言
优:
简洁、结构化;
开发速度快、执行效率高、可移植性强;
不过于涉及底层硬件
缺:
占用空间比汇编大5%~20%
做运算时,没有汇编效率高
;南京师范大学电气及自动化工程学院;时钟
RAM、ROM
并行IO口
定时/计数器
中断控制器
总线
串口;8个按键与8个LED一一对应控制
流水灯;什么时候使用
系统自带头文件
格式:#include math.h(每行声明一个头文件)
必备: “reg51.h” 或“reg52.h”
使用数学运算函数(如求绝对值abs(a)):“math.h”
使用字符串函数(如strcpy):“string.h”
使用空指令_nop_():“intrins.h”
使用总线定义XBYTE:“ABSACC.h”
程序员自编头文件
格式:#include “zlg7290.h”
常与源程序文件配套使用,用来声明该源程序文件中的函数等,其他源程序文件需要使用该函数时,引用该头文件即可。;预定义#define A B
数据类型简称:如#define uchar unsigned char
总线地址定义:如#define LCD XBYTE[0xF6FF]
声明变量、常数
全局变量: int a,b=10,c;
全局常数: const int a =10;
声明函数原型(在函数定义前调用该函数)
本源程序内部函数原型
Void delay_ms(int a);
其他源程序的函数
Extern void delay_ms(int a)或者包含该头文件;特点
唯一的、必须的
无形参
死循环
无返回值
定义结构
void main(void)
{
声明
程序
while(1)
{
程序
}
};一个完整的C程序是由若干条C语句按一定的方式组合而成
方式——程序结构
C语言的语句
运算符;南京师范大学电气及自动化工程学院;定义
指定存储器位置里的数据是可变的
结构:数据类型 变量名称[=默认值];
int x;
int x=10;
int x,y,z=10;
类型
内部变量
全局变量:位于全局声明区,
静态变量:(static int x;)作用域为本源文件
普通变量:int x;作用域为整个工程
变量存储在ROM中:code int a[200];
局部变量:位于局部声明区,
静态变量:占空间
自动变量:不占空间
外部变量:来自于其他c文件(extern int x;);标志符
只有是字母、数字和下划线组成的字符串,且第一个字符必须是字母和下划线。
大小写敏感(区分)
含义清晰
作用
作变量、函数名称
替换 数据类型
关键字
已定义,程序员只能使用,不能定义的。
常用的主要有:
int、char、if、while、include、define、bit
static、extern、const、code、interrupt、sbit;一个C语言可由一个主函数main()和若干个其他函数组成。
主函数可调用其他函数;
其他函数之间亦可互相调用;
其他函数不能调用主函数。
函数的定义
无参数函数:被调用时无参数传递,若也没返回值时,类型说明符也为void
类型说明符 函数名(void)
{
声明
语句
}
有参数函数
类型说明符 函数名 (行式参数列表)
如 int max(int a,int b){};函数的调用
无参数
Delay(100);
有参数
A = max(100,120);
形参、实参
函数的返回值
函数的传递
值传递
形参为普通类型 void delay(int n)
地址传递
形参为
显示全部