C语言工程实践(第二讲).ppt_第1页
C语言工程实践(第二讲).ppt_第2页
C语言工程实践(第二讲).ppt_第3页
C语言工程实践(第二讲).ppt_第4页
C语言工程实践(第二讲).ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

C语言工程实践 第二讲 上节内容回顾 C语言作为单片机开发语言的优势兼顾了多种高级语言的特点 并具备汇编语言的功能 C语言开发系统可以大大缩短开发周期 明显增强程序的可读性 便于改进和扩充 针对8051的C语言日趋成熟 成为了专业化的实用高级语言 C语言基础知识 C 51与ASM 51相比 有如下优点 1 对单片机的指令系统不要求了解 仅要求对8051的存贮器结构有初步了解 2 寄存器分配 不同存贮器的寻址及数据类型等细节可由编译器管理 3 程序有规范的结构 可分成不同的函数 这种方式可使程序结构化 4 具有将可变的选择与特殊操作组合在一起的能力 改善了程序的可读性 5 提供的库包含许多标准子程序 具有较强的数据处理能力 6 由于具有方便的模块化编程技术 使已编好程序可容易地移植 本节目的 掌握单片机开发流程使用KeilC51建立一个C语言工程C语言单片机程序基本框架掌握C语言控制I O端口跑马灯程序的实现以及派生 一 单片机开发流程 硬件电路分析 程序编写 调试修改 优化 运行 分析电路的组成 工作原理 针对电路 编写控制程序 程序检查分析 提高成功率 程序装入单片机 看运行效果 整理 记录工作 本节应用原理示意图 硬件原理图分析 LED限流电阻计算 I LED 电源电压 LED电压降 限流电阻AVR电路中电压是5V LED电压降假定是1 9V 如果电流限制在5mA 那么限流电阻大小为 R 5V 1 9V 5 mA 0 62 K 建立一个C语言工程 通过以上步骤建立一个C语言成功下一步添加C语言源文件并在原文件中构建C语言基本构架 添加源文件 通过File New新建文件File Save保存为C源文件 c AddFilestoGroup将刚才保存的源文件加入工程中 C语言基本构建 include 头文件包含51的基本特殊功能寄存器voidmain void while 1 所需运行的程序体 续 C 51的数据类型扩充定义 sfr 特殊功能寄存器声明sfr16 sfr的16位数据声明sbit 特殊功能位声明bit 位变量声明例 sfrSCON 0X98 sfr16T2 0 xCC sbitOV PSW 2 C 51数据的存储类型 名存储空间位置长度数据范围data直接寻址片内RAM8位0 255bdata可位寻址片内RAM1位0 1idata间接寻址片内RAM8位0 255pdata片外页RAM8位0 255xdata片外RAM16位0 65535code程序ROM16位0 65535 C 51数据的存储类型 续 例 数据类型存储类型变量chardatavar1 bitdataflags unsignedcharxdatavextor 10 C 51数据的存储类型 C 51的包含的头文件 通常有 reg51 hmath hctype hstdio hstdlib habsacc h常用有 reg51 h 定义特殊功能寄存器和位寄存器 math h 定义常用数学运算 点亮一个发光二极管 include 头文件包含51的基本特殊功能寄存器voidmain void while 1 P1 0 0 所需运行的程序体 特殊功能寄存器的访问 sfrP1 0 x90 sbitP1 0 0 x90 sbitP1 1 0 x91 sbitP1 2 0 x92 sbitP1 3 0 x93 sbitP1 4 0 x94 sbitP1 5 0 x95 sbitP1 6 0 x96 sbitP1 7 0 x97 P1DATA90HP1 0BIT90HP1 1BIT91HP1 2BIT92HP1 3BIT93HP1 4BIT94HP1 5BIT95HP1 6BIT96HP1 7BIT97H 发光二极管闪烁 include 头文件包含51的基本特殊功能寄存器voidmain void while 1 P1 0 0 P1 0 1 所需运行的程序体 指令延时 voiddelay longi while i while循环while 逻辑表达式 循环体 逻辑表达式为真时循环执行循环体 使用while语句要注意如下几点 1 while先判断条件后执行循环体 属于当型循环 即有可能循环体一次也不被执行 2 while适宜结束条件特别明显的情况 3 避免死循环 即循环体内须改变循环结束条件或用if goto语句判断后转出 4 在循环体内可用break语句终止本层循环 continue语句结束本次循环 5 while循环与for循环一样可以嵌套 即循环体内又可以包含循环结构 发光二极管闪烁 include 头文件包含51的基本特殊功能寄存器voidmain void while 1 P1 0 0 delay 2000 P1 0 1 delay 2000 所需运行的程序体 发光二极管闪烁 include 头文件包含51的基本特殊功能寄存器 defineLED0P1 0 voidmain void while 1 LED0 0 delay 2000 LED0 1 delay 2000 所需运行的程序体 流水灯 include 头文件包含51的基本特殊功能寄存器 defineLEDP1voidmain void while 1 inti for i 0 i 8 i LED 0 x01 i delay 2000 LED 0 xff delay 2000 所需运行的程序体 for循环 for 初始化总是一个赋值语句 它用来给循环控制变量赋初值 条件表达式是一个关系表达式 它决定什么时候退出循环 增量定义循环控制变量每循环一次后按什么方式变化 for while 1 for i 0 i0 i C语言位操作 位逻辑运算符1 二进制反码或按位取反 单目运算符 可用于某些依赖于具体计算机字长的应用中 从而使代码是可移植的如 x x 0 x7 0 x7在内存中放入16bit加8个0 取反之后用 还原2 位与 用来对一个数据的某个位置0两个数都为真时才为真 其他未假3 位或 用来对一个数据的某些二进制置1两个数都为真或者有一个数位真 那么结果为真4 位异或 用来检查两个位是否相等两个都为真 两个都为假 时为假 其他情况都为真 C语言位操作 5 移位运算符1 右移 右移操作将其左侧操作数的值的每位向右移动 移动的位数由其右侧操作数指定 丢弃移出左侧操作数右端的位 C语言位操作 增加位运算的应用应用 a 清零特定位 mask中特定位置0 其它位为1 s s mask b 取某数中指定位 ma

温馨提示

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

评论

0/150

提交评论