keil-C-基本语法.ppt_第1页
keil-C-基本语法.ppt_第2页
keil-C-基本语法.ppt_第3页
keil-C-基本语法.ppt_第4页
keil-C-基本语法.ppt_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 单片机的C语言应用程序设计 1 概述2 C51语言语法要素3 C51存储器类型与模式4 C51程序设计实例5 keilC51应用 2 1 1C语言的优点 1 C语言简洁 使用方法灵活 2 可移植性好 3 表达能力强 4 表达方式灵活 5 结构化程序设计 6 可以直接操作计算机硬件 7 生成的目标代码质量高 1 概述 3 1 2C语言的缺点 1 不能自动检查数组的边界 2 各种运算符优先级别太多 3 某些运算符具有多种用途 4 忽略计算机底层知识的学习 1 概述 4 1 3C语言构成要素 1 主函数main必不可少 2 功能函数在main中调用 3 标识符以字母开头 最多32个字符 对大小写敏感 4 有32个关键字 有各种库函数 1 概述 5 2 1运算符分类算术运算符关系运算符逻辑运算符位运算符赋值运算符复合运算符 2 C51语言语法要素 6 算术运算符 有些乘除可以用左移和右移代替 7 关系运算符 8 逻辑运算符 9 A 1 2 3 5 0 2 1 6 5 0 2 7 5 0 2 0 0 2 0 1 2 非0为真 A 1 0 3 0 1 10 位运算符 注意 移位运算并不改变原变量本身 只能将移位的结果赋给一变量 11 赋值运算符 复合运算符例1a ba a b例2x a bx x a b 例3a ba a b例4a 4a a 4 12 2 2C51数据类型1 变量与常量 先定义后使用intR definePI3 14159262 基本数据类型 2 C51语言语法要素 13 基本数据类型 14 强制类型转换 1 运算符转换 double a int x y float 5 3 15 强制类型转换 2 不同类型的数据在运算表达式中的转换 1 如果float型数据 转换成double后进行运算 如果是char型数据 转换成int后进行运算 例c a b c 97 98 195 16 2 各类数值型数据间的混合运算时的转换 inti floatf d e 表达式 10 a i f d e如何运算 17 1 进行10 a 的运算 转换 a 为97 2 进行i f的运算 将i和f都转成double型 3 整数107与i f的积相加 先将107转化成双精度数 结果为double型 4 将变量d e转化成double型 d e的结果为double型 5 将10 a i f的结果与d e的商相减 结果为double型 以上数据类型转换都是由C编译系统自动隐含完成的 故称自动类型转换 inti floatf d e 10 a i f d e运算次序为 18 强制类型转换 格式 类型关键字或类型名 表达式如 设x 1 2 y 2 3 p 2 5 int x y int p结果为3 2 1 例如main floatx inti x 3 6 i int x printf x f i d x i 运行的结果是 x 3 600000 i 3 19 构造数据类型 数组 结构体 共用体 枚举1 数组例1charabc 10 abc 0 0 abc 9 n 例2codeunsignedcharLEDMAP 0 x3f 0 x06 0 x79 0 x71 20 指针型数据 表示一个变量所在的存储器地址 Ri1 定义 int pter1 指向整型变量float ptr2 指向浮点型变量char ptr3 指向字符型变量 主要差别在于指针内容 1时 究竟加几 个字节数 21 指针型数据 2 引用 inta 10 int p 22 指针型数据 3 类型 1 普通指针int pter1 指向整型变量float ptr2 指向浮点型变量char ptr3 指向字符型变量 使用3个字节保存指针本身 2 存储器特殊指针intdata pter1 指向data区的整型变量unsignedlongidata ptr2 指向idata区的无符号长整型变量 使用1 2个字节保存指针本身 23 指针型数据 4 数组和指针 inta 10 1 2 3 4 5 6 7 8 9 10 ip ip 数组名也代表数组首地址ip i和a i都表示a i 的地址 24 2 3程序表达式与结构1 算术表达式 2 C51语言语法要素 Doublez z sqrt x a x a y b y b 2 赋值表达式 Doublez z sqrt x a x a y b y b 25 2 3程序表达式和结构3 逻辑表达式key val P1 key val key valif key val 0 xfo 26 2 4C51语句结构1 选择执行结构 27 2 4C51语句结构1 选择执行结构 28 2 4C51语句结构2 循环执行结构 先判断条件 不满足不执行 后判断条件 不满足执行一次 29 2 4C51语句结构2 循环执行结构 步骤1 执行表达式1步骤2 满足表达式2 执行循环体 否则跳出 或者执行表达式2 执行循环体 步骤3 满足表达式3 跳到步骤2 否则跳出 或者执行表达式3 跳到步骤2 30 2 4C51语句结构3 终止循环语句 For i 0 i100 break elsex i 0 For i 0 i100 continue elsex i 0 31 2 4C51语句结构4 预处理指令 1 define语句 2 include include stc8958 h 先在当前文件中找 再到默认的目录去找 include 直接到默认的目录去找 32 C51的库函数 33 3C51存储器类型和模式3 1存储器类型 34 code bdata idata data pdata 256字节 xdata 35 3C51存储器类型和模式3 2存储器模式由编译控制命令决定 其他变量仍然可以进行存储器类型定义 36 例 chardatavar1 Bitbdataflag floatidatax y z unsignedintpdatadimension unsignedcharxdatavector 10 4 4 charbdataflags charcodetext ENTERPARAMETER 37 3C51存储器类型和模式3 3SFR的声明SFRTMOD 0 x80 SFR16DPTR 0 x81 3 4寄存器位声明sbitOV PSW 2 sbitOV 0 xd0 2 sbitOV 0 xd2 38 3C51存储器类型和模式3 5可位寻址对象的声明unsignedcharbdataabc charbdataarry 5 sbitf1 abc 0 sbitf4 arry 0 0 f1 1 f4 0 位的存储器类型只能为data或者idata 39 3 6中断函数 Void函数名 void unsignedcharinterruptmusingnm 0 4 中断源编号 同51顺序n 0 7 工作寄存器组编号 用于保护操作例如 voidtimer0 void unsignedcharinterrupt1using0 3 7库函数与头文件 reg52 hmath h 40 4 C51程序设计实例 1 并行口使用例1 sbitkey1 P1 1 sbitkey2 P1 2 sbitLED P1 3 LED key1 例2 unsignedcharinput data P1 0 x0ff input data P1 P0 input data 41 2 定时器使用例1 sbitsignal P1 1 TMOD 0 x00 EA 1 ET0 1 TH0 0 x1f TH1 0 x08 TR0 1 VoidTimer0 void interrupt1using1 signal signal TH0 0 x1f TH1 0 x08 42 5 KeilC51的使用 1 建立新工程 43 在一个专门的文件夹内输入工程名 选择CPU 44 加入51复位文件 创建C51文件 45 C文件的基本内容 C51系统包含的 h文件 46 创建的选项 选择软件仿真或者硬件仿真 47 将 C文件加入工程 工程创建成功 48 进入仿真窗口 观察CPU x d c 存储器空间 49 例如 example4p4 M1 1 M1 M2 R2R3R4 M1DATA20HM2DATA30HORG0000HLJMPSTARTORG0030HSTART MOVR0 M1MOVA R0MOVB M2MULABMOVR4 AMOVR3 BINCR0MOVA R0MOVB M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论