200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 单片机的c语言ppt 第9章-单片机的C语言编程.ppt

单片机的c语言ppt 第9章-单片机的C语言编程.ppt

时间:2024-05-23 03:39:31

相关推荐

单片机的c语言ppt 第9章-单片机的C语言编程.ppt

第9章-单片机的C语言编程.ppt

第9章单片机的C语言编程 9 1C51编程语言简介9 2C51的数据类型9 3数据的存储器类型和存储器模式9 4SFR 位变量 存储器和I O接口的定义9 5C51的函数和运算符9 6汇编语言与C51的混合编程9 7C语言单片机程序编写举例 9 1C51编程语言简介 9 1 1C51编程语言C语言与任何特定的硬件或系统无关 C语言的代码效率高 可与汇编语言媲美 既可以实现高级语言的模块化编程 又可以实现很多底层的操作 在对效率或硬件操作要求比较高的地方 一般采用C语言和汇编语言联合编程的方法 C51语言具有的以下优点 1 C51自动管理存储器的分配 无需考虑不同存储器的寻址和数据类型等细节 2 程序由函数构成 便于进行模块化程序设计 3 子程序库丰富 大大减轻了编程的工作量 4 可以与汇编语言交叉编程 使编程更加灵活方便 便于提高程序的性能 9 1 2C51的程序结构 C51程序的基本结构如下所示 包含五个部分 include 预处理文件 include全局变量说明 可被程序中所有函数引用的变量 function1 形参列表 函数1声明 functionN 形参列表 函数N声明 main 主函数 程序入口 局部变量说明 只能在本函数体内引用的变量 C执行语句 包括可能的函数调用语句等 function1 形参列表 函数1 形参说明 局部变量说明 C执行语句 包括可能的函数调用语句等 functionN 形参列表 函数N 形参说明 局部变量说明C执行语句 包括可能的函数调用语句等 C51语言的基本规则如下 1 变量必须先说明后引用 所有符号对大小写敏感 2 每条语句必须以分号 结尾 一行可以写多条语句 一条语句也可以写多行 3 注释用 表示 或用 表示 注意 只能注释一行 4 花括号必须成对出现 书写位置不限 下面是一段在C51学习中经常被引用的程序 include AT89X51头文件 includevoidmain 这是第一种注释方式 这是第二种注释方式SCON 0 x50 串行口方式1 允许接收TMOD 0 x20 定时器1定时方式2TCON 0 x40 设定时器1开始计数TH1 0 xE8 11 0592MHz1200bpsTL1 0 xE8 TI 1 设置TI发送第一个字符至串口TR1 1 启动定时器while 1 printf helloworld n 显示HelloWorld 9 2C51的数据类型 C51的数据分为常量和变量 常量是在程序的运行过程中不能被改变的量 变量是在程序运行过程中可以被改变的量 变量由变量名和变量的内容构成 变量名指出了变量存放的位置 其内容就是变量的值 无论变量还是常量 其实都是一个容器 它们的名字是容器的地址 它们的内容是容器的值 它们在存储器中具体的存储位置则是由编译器自动进行安排的 9 2 1C51常量的类型 1 数值型常量对于数值型常量可以用const和define来定义 如intconsta 10 2 符号型常量对于符号型常量 必须用宏定义指令定义 如 definePI3 1415926 9 2 2C51变量的类型 定义一个变量的格式如下 存储种类 数据类型 存储器类型 变量名表存储种类可分为两类四种 自动 auto 外部 extern 静态 static 和寄存器 register 缺省类型为自动 auto 自动和寄存器属于动态存储变量 外部和静态属于静态存储变量 团结协作 形成凝聚力是教研组建设的前提 下面是小编整理提供的教研组工作计划范文 欢迎阅读参考 希望大家采纳 更多相关信息请关注美文网的栏目 篇一一 基本情况 综合组本学期共有教师11人 分别担任英语 心理 科学和信息技术的教学工作 综合组工作有其特色和活力 但由于课程综合性较强 所担任科目也不一样 教研组工作的开展仍需各位教师加强团队合作精神 共同探讨 二 指导思想根据学校总体工作计划的安排和教导室的教研工作安排 认真学习先进的教育思想和新的课程标准 积极实践课改理念 全面深化素质教育 以更新观念为前提 以提高师资整体素质为核心 紧紧围绕 课堂教学 这一主线 结合本校特点 加强教学研究 不断解决教学中的新问题 更新教学观念 改变教师的教学行为和学生的学习方式 使我组教学质量稳中有升 三 工作重点及要求 1 认真做好新课程实验工作 最大限度地提高课堂教学效果 2 加强组内教研 做好听课评课工作 使组内教师课堂教学水平得以提高 认真备课 学习各学科的课程标准 加强集体备课 提高备课质量 为上课做好准备 认真执行学校的上课 听课制度 并通过听课使本组教师 说明 1 字符型 整型和长整型数据均分为有符号型和无符号型两种 有符号型数据以补码形式在内存中存放 2 编译程序时 编译器自动进行数据类型转换 当运算符两边的数据类型不同时 编译器将低级的数据类型转换为较高级的数据类型 运算结果为高级数据类型 3 bit sbit sfr和sfr16数据类型用于8051硬件和C51编译器 并不是标准C语言的一部分 不能通过指针进行访问 bit sbit sfr和sfr16数据类型用于访问8051的特殊功能寄存器 例如sfrP0 0 x80 表示声明变量P0 并为其分配特殊功能寄存器地址0 x80 9 3数据的存储器类型和存储器模式 9 3 1数据的存储器类型 1 DATA区DATA区的寻址是最快的 所以应该把经常使用的变量放在DATA区 但是空间有限 DATA区声明中的存储类型标识符data 通常指低128B的内部数据区存储的变量 可直接寻址 举例如下 unsignedchardatasystem status 0 unsignedintdataunit id 2 chardatainp string 16 floatdataoutp value mytypedatanew var 2 BDATA区BDATA区实际就是DATA区中的位寻址区 在这个区声明变量就可进行位寻址 BDATA区声明中的存储类型标识符为bdata 指内部可位寻址的16B存储区 20H 2FH 可位寻址变量的数据类型 unsignedcharbdatastatus bute unsignedintbdatastatus word unsignedlongbdatastatus dword sbitstat flag status byte 4 if status word 15 stat flag 1 3 IDATA区IDATA区也可存放使用比较频繁的变量 使用寄存器作为指针进行寻址 即在寄存器中设置8位地址进行间接寻址 IDATA区声明中的存储类型标识符为idata 指内部的256B的存储区 但是只能间接寻址 速度比直接寻址慢 举例如下 unsignedcharidatasystem status 0 unsignedintidataunit id 2 charidatainp string 16 floatidataoutp value 4 PDATA区和XDATA区PDATA区和XDATA区属于外部存储区 最多可有64KB 当然这些地址不是必须用作存储区的 但PDATA区只有256B 而XDATA区可达到65535B 声明举例如下 unsignedcharxdatasystem status 0 unsignedintpdataunit id 2 charxdatainp string 16 floatpdataoutp value 5 CODE区程序在存储区CODE中的数据是不可改变的 跳转向量和状态表对CODE区的访问和对XDATA区的访问时间是一样的 程序存储区声明举例如下 unsignedintcodeunit id 2 1234 unsignedcharcodea 0 x00 0 x01 0 x02 0 x03 0 x04 0 x05 0 x06 0 x07 0 x08 0 x09 0 x10 0 x11 0 x12 0 x13 0 x14 0 x15 9 4SFR 位变量 存储器和I O接口的定义 9 4 1特殊功能寄存器 SFR 的定义1 sfrsfr用来定义字节寻址的特殊功能寄存器 如 sfrP0 0 x80 表示P0口地址为80HsfrTMOD 0 x89 定义定时器模式寄存器地址sfrAcc 0 xc0 定义累加器地址sfrSCON 0 x98 定义串行通信控制寄存器地址 2 sfr16sfr16用来定义16位的特殊功能寄存器 如DPTR通过名字或地址来引用特殊功能寄存器 地址必须高于80H 许多新的8051派生系列单片机用两个连续地址的SFR来指定16位值 例如8052用地址0 xCC和0 xCD表示定时 计数器2的低和高字节 如 sfr16T2 0 xCC 表示T2口低地址T2L 0 xCC 高地址T2H 0Xcd 3 sbit 1 sbit位变量名 SFR寄存器名 位位置sfrPSW 0 xD0 声明PSW为特殊功能寄存器 地址为0 xD0sbitEA IE 7 指定IE的第7位为EA 即中断允许sbitP0 1 P0 1 P0 1定义为P0的第1位一般可把特殊功能寄存器的声明放在一个头文件中 例如 includesbitP2 7 P2 7 P2 7定义为P2的第7位sbitacc 0 ACC 0 acc 0定义为ACC的第0位 2 sbit位变量名 位地址sbitP1 1 0 x91 sbitCY 0 xD7 sbitEA 0 xAF 3 sbit字节地址 位位置该变量用一个整常数作为sbit的基地址 基地址值必须能被8整除 后面的表达式指定位的位置 必须在0 7之间 例如 sbitOV 0 xe0 2 指定地址为0 xe0的第2位为OV 即溢出标志 9 5C51的函数和运算符 9 5 1函数1 函数的分类C语言的函数分为库函数和自定义函数两种 C编译系统提供了一系列的标准函数 这些函数包含在若干个头文件中 用户可以根据需要用 include命令将有关的头文件包含在自己的程序中 这样用户就可以用调用函数的方法使用这些库函数 自定义函数是用户根据需要以函数的形式自己编写的程序 从是否有参数来看 函数分为有参函数和无参函数 有参函数在调用时用实际参数代替形式参数 函数要将结果返回调用函数 2 函数的定义所有的函数都是以 开始 以 结束 1 有参数函数的定义 返回值类型函数名 形式参数列表 形式参数类型说明 函数体语句return 返回形参名 2 无参数函数的定义 返回值类型函数名 函数体语句 如果函数没有返回值 可以将返回值类型设为void 3 函数的调用调用函数的形式为 函数名 实际参数列表 其中实际参数必须和形式参数的数目相等 类型一致 调用函数有3种方式 1 函数调用语句 把被调用函数名作为调用函数的一个语句 2 被调用函数作为表达式的一个运算对象 3 被调用函数作为另一个函数的实际参数 9 5 2运算符 1 赋值运算符赋值运算符为 赋值 它表示将 右边的表达式的值赋给左边的变量 2 算术运算符算术运算符包括 加或正号 减或负号 乘号 除号 求余 算术运算符的优先级顺序为先乘除后加减 先括号内后括号外 3 关系运算符关系运算符包括 小于 大于 小于等于 大于等于 相等 不相等 关系运算符的优先级顺序为前4个同级为高 后两个同级为低 4 逻辑运算符逻辑运算符包括 逻辑与 逻辑或 逻辑非 逻辑表达式与关系表达式都是以 1 代表真 以 0 代表假 逻辑运算符的优先级高到低顺序为 逻辑非 算术运算符 关系运算符 逻辑与和逻辑或 赋值运算符 5 位操作运算符位操作运算符包括 按位与 按位或 按位异或 按位取反 右移位左补0 6 自增 自减运算符自增 自减运算符包括 i i 先加1 减1 i i 后加1 减1 7 符合赋值运算符合赋值运算包括 例如 x y相当于x x y x 6相当于x x 6 8 指针运算符指针运算符包括 取地址运算 取内容运算 9 7C语言单片机程序编写举例 例9 1P1 0端口亮灯 include AT89X51头文件voidmain void 主函数名 unsignedinta 定义变量a为int类型do dowhile组成循环for a 0 a 50000 a 这是一个循环P1 0 0 设P1 0口为低电平 点亮LEDfor a 0 a 50000 a 这是一个循环P1 0 1 设P1 0口为高电平 熄灭LED while 1 例9 28路跑马灯 可以在上面例子的基础上 依次点亮八个灯 设计出一个亮灭的花样来 电路如图9 2 include 预处理文件voidmain void 定义花样数据constunsignedchardesign 32 0 xFF 0 xFE 0 xFD 0 xFB 0 xF7 0 xEF 0 xDF 0 xBF 0 x7F 0 x7F 0 xBF 0 xDF 0 xEF 0 xF7 0 xFB 0 xFD 0 xFE 0 xFF 0 xFF 0 xFE 0 xFC 0 xF8 0 xF0 0 xE0 0 xC0 0 x80 0 x0 0 xE7 0 xDB 0 xBD 0 x7E 0 xFF unsignedinta 定义循环用的变量unsignedcharb do for b 0 b 32 b for a 0 a 30000 a 延时一段时间P1 design b 读花样数据到P1口 while 1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。