PIC单片机C语言编程入门_第1页
PIC单片机C语言编程入门_第2页
PIC单片机C语言编程入门_第3页
PIC单片机C语言编程入门_第4页
PIC单片机C语言编程入门_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1 PICC 入门笔记入门笔记 PIC 单片机单片机 C 语言编程入门笔记语言编程入门笔记 一 一 C 语言基础复习语言基础复习 没没 C 语言基础看起来可能有点困难 语言基础看起来可能有点困难 程序的语句 语句名称一般形式说明 表达式语句表达式 表达式语句由表达式加上分号 组 成 函数调用语 句 函数名 实际参数表 实际参数 形式参数二个概念要理解 控制语句附件 1控制语句用于控制程序的流程 复合语句多个语句用括号 括起 空语句 只有分号 组成的语句称为空语句 赋值语句变量 变量 表达式 赋值表达式再加上分号构成的表达式语 句 数据输出语 句 printf 格式控制字符 串 附件 1 1 条件判断语句 if 语句 switch 语句 2 循环执行语句 do while 语句 while 语句 for 语句 3 转向语句 break 语句 goto 语句 continue 语句 return 语句 关系运算符 小于小于或等于大于大于或等于等于不等于 关系运算符都是双目运算符 其结合性均为左结合 在六个关系运算符中 的优先级相同 高于 和 和 的优先级相同 关系表达式的值是 真 和 假 用 1 和 0 表示 逻辑运算符 与运算或运算非运算 意义 如果在条件语句中 只执行单个的赋值语句时 常可使用条件表达式来 实现 不但使程序简洁 也提高了运行效率 3 语句 语句 语言还提供了另一种用于多分支选择的 switch 语句 其一般形式为 switch 表达式 case 常量表达式 1 语句 1 case 常量表达式 2 语句 2 case 常量表达式 n 语句 n default 语句 n 1 3 其语义是 计算表达式的值 并逐个与其后的常量表达式值相比较 当表达 式的值与某个常量表达式的值相等时 即执行其后的语句 然后不再进行判断 继续执行后面所有 case 后的语句 如表达式的值与所有 case 后的常量表达 式均不相同时 则执行 default 后的语句 4 循环结构程序 循环结构程序 语句 while 语句的一般形式为 while 表达式 语句 特点 判断后执行 说明 1 循环体如包括有一个以上的语句 则必须用 括起来 组成复合语句 2 应注意循环条件的选择以避免死循环 语句 do while 语句的一般形式为 do 语句 while 表达式 do while 语句的语义是 先执行循环体语句一次 再判别表达式的值 若为真 非 0 则继续循环 否 则终止循环 do while 语句和 while 语句的区别在于 do while 是先执行后判断 因此 do while 至少要执行一次循环体 而 while 是先判断后执行 如果条件不满足 则 一次循环体语句也不执行 语句 for 语句是 语言所提供的功能更强 使用更广泛的一种循环语句 其一般形式 为 for 表达式 1 表达式 2 表达 3 语句 表达式 1 通常用来给循环变量赋初值 一般是赋值表达式 也允许在 for 语句外给循环变量赋初值 此时可以省略该表达式 表达式 2 通常是循环条件 一般为关系表达式或逻辑表达式 表达式 3 通常可用来修改循环变量的值 一般是赋值语句 1 首先计算表达式 1 的值 2 再计算表达式 2 的值 若值为真 非 0 则执行循环体一次 否则跳出循环 3 然后再计算表达式 3 的值 转回第 2 步重复执行 在整个 for 循环过程中 表达式 1 只计算一次 表达式 2 和表达式 3 则可能计算多次 转移语句 在 语言中提供了 4 种转移语句 goto break continue 和 return 1 goto 语句 一般不使用 goto 语句也称为无条件转移语句 其一般格式如下 goto 语句标号 其中语 句标号是按标识符规定书写的符号 放在某一语句行的前面 标号后加冒号 4 语句标号起标识语句的作用 与 goto 语句配合使用 2 语句 break 语句只能用在 switch 语句或循环语句中 其作用是跳出 switch 语句或 跳出本层循环 转去执行后面的程序 由于 break 语句的转移方向是明确的 所以不需要语句标号与之配合 break 语句的一般形式为 break 使用 break 语句可以使循环语句有多个出口 在一些场合下使编程更加灵活 方便 3 语句 continue 语句只能用在循环体中 其一般格式是 continue 其语义是 结束本次循环 即不再执行循环体中 continue 语句之后的语句 转 入下一次循环条件的判断与执行 应注意的是 本语句只结束本层本次的循环 并不跳出循环 第四章第四章 数组数组 1 数组定义 如 int a 10 b 3 2 c 7 FD FD 是常量 说明 不能在方括号中用变量来表示元素的个数 但是可以是符号常数或 常量表达式 2 数组元素的表示方法 数组元素的一般形式为 数组名 下标 如 a 5 a i j a i 说明 下标可以是变量或变量表达式 3 初始化赋值 一般形式为 static 类型说明符 数组名 常量表达式 值 值 值 例 static int a 10 0 1 2 3 4 5 6 7 8 9 第五章第五章 函数函数 一 定义的一般形式 1 无参函数的一般形式 过程 如 void delay void 2 有参函数的一般形式 类型说明符 函数名 形式参数表 型式参数类型说明 类型说明 语句 说明 return 返回值命令 二 函数调用的一般形式为 可以用以下几种方式调用函数 1 z max x y 是一个赋值表达式 把 max 的返回值赋予变量 z 另一种为现代格式 其一般形式为 类型说明符 被调函数名 类型 形参 类型 形参 函数的值只能通过 return 语句返回主调函数 return 语句的一般形式为 return 表达式 或者为 return 表达式 在 语言中 对变量的存储类型说明有以下四种 auto 自动变量 5 register 寄存器变量 extern 外部变量 static 静态变量 第六章 指针第六章 指针 1 指针变量的类型说明 其一般形式为 类型说明符 变量名 staic int p2 p2 是指向静态整型变量的指针变量 说明 定义时要使用 号 2 指针变量的赋值方法 1 指针变量初始化的方法 int a int p 定义并赋值 int a 5 pa a 或写成 int a 5 pa int p 定义 p 赋值 说明 定义后 再赋值这时不能加 号 它是一个指针变量 3 指针变量的运算 取地址运算符 这里的 P 是定义指针变量并赋值 这里的 P 是表示取指针 P 地址中的内容 4 加减算术运算 对于指向数组的指针变量 可以加上或减去一个整数 n 设 pa 是指向数组 a 的指针变量 则 pa n pa n pa pa pa pa 运算都是合 法的 第七章第七章 枚举枚举 位运算位运算 1 位运算符 for i 0 i m i 7 for j 0 j 100 j 三 三 1 PIC 单片机的单片机的C 语言原程序基本框架语言原程序基本框架 特别注意 main 函数必须是一个没有返回的死循环 include 包含单片机内部资源预定义 第一 步 include pc68 h 包含自定义头文件 CONFIG HS 定义芯片工作时的配置位 void SetSFR void 声明本模块中 所调用的函数类型 void Clock void void KeyScan void void Measure void void LCD Test void void LCD Disp unsigned char unsigned char second minute hour 定义变量 bit flag1 flag2 void main void 函数和子程序 SetSFR PORTC 0 x00 TMR1H TMR1H CONST LED1 LED OFF LCD Test while 1 程序工作主循环 asm clrwdt 清看门狗 Clock 更新时钟 KeyScan 扫描键盘 Measure 数据测量 SetSFR 刷新特殊功能寄存器 8 2 PICC 中常用变量类型中常用变量类型 bit 1 布尔型位变量 0 或1 两种取值 char 8有符号或无符号字符变量 PICC 缺省认定char 型变量为 无符号数 但可以通过编译选项改为 有符号字节变量 unsigned char 8 无符号字符变量 3 PICC 对数据寄存器对数据寄存器bank 的管理的管理 如果没有特别指明 所定义的变量将被定位在bank0 如 bit flag1 flag2 除了bank0 内的变量声明时不需特殊处理外 定义在其它bank 内的变量前面必 须加上相应的bank 序号 如 bank2 bit flag1 flag2 为避免频繁的bank 切换以提高代码效率 尽量把实现同一任务的变量定位在同 一个bank 内 4 PICC 中的局部变量中的局部变量 PICC 把所有函数内部定义的auto 型局部变量放在bank0 为节约宝贵的存储 空间 它 采用了一种被叫做 静态覆盖 的技术来实现局部变量的地址分配 但这时不 能出现函数递归调用 自已调用自己 既然所有的局部变量将占用bank0 的存 储空间 因此用户自己定位在bank0 内的变量字节数将受到一定的限制 在实 际使用时需注意 5 PICC 中的位变量中的位变量 bit 型位变量只能是全局的或静态的 PICC 将把定位在同一bank 内的8 个 位变量合并 成一个字节存放于一个固定地址 6 PICC 的其它变量修饰关键词的其它变量修饰关键词 1 extern 外部变量声明例 extern bank1 unsigned char var1 var2 声明bank1 外部变量 2 volatile 易变型变量声明 例 volatile unsigned char STATUS 0 x03 volatile bit commFlag 说明 在单片机中 作为输入的IO 端口其内容将是随意变化的 在中断内被 修改的变量相对主程序流程来讲也是随意变化的 很多特殊功能寄存器的值 也将随着指令的运行而动态改变 所有这种类型的变量必须将它们明确定义 成 volatile 类型 3 const 常数型变量声明 例 const unsigned char name This is a demo 9 定义一个常量字符串 4 persistent 非初始化变量声明 例 persistent unsigned char hour minute second 定 义时分秒变量 按照标准C 语言的做法 程序在开始运行前首先要把所有定义的但没有预置 初值的变量全部清零 PICC 提供了 persistent 修饰词以声明此类变量无需 在复位时自动清零 7 PICC 中的指针中的指针 1 PICC 在编译C 原程序时将指向RAM 的指针操作最终用FSR 来实现 间接寻址 这样就势必产生一个问题 FSR 能够直接连续寻址的范围是256 字节 bank0 1 或bank2 3 要覆盖最大512 字节的内部数据存储空间 又该如何让定义指 针 PICC 还是将这一问题留给编程员自己解决 在定义指针时必须明确指定 该指针所适用的寻址区域 例 如 unsigned

温馨提示

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

评论

0/150

提交评论