




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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。 1goto 语句-一般不使用 goto 语句也称为无条件转移语句,其一般格式如下: goto 语句标号;其中语 句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号 4 (:)。语句标号起标识语句的作用,与 goto 语句配合使用。 2语句 break 语句只能用在 switch 语句或循环语句中, 其作用是跳出 switch 语句或 跳出本层循环,转去执行后面的程序。由于 break 语句的转移方向是明确的, 所以不需要语句标号与之配合。break 语句的一般形式为: break; 使用 break 语句可以使循环语句有多个出口,在一些场合下使编程更加灵活、方便。 3 语句 continue 语句只能用在循环体中,其一般格式是: continue; 其语义是:结束本次循环,即不再执行循环体中 continue 语句之后的语句,转 入下一次循环条件的判断与执行。应注意的是, 本语句只结束本层本次的循环, 并不跳出循环。 第四章: 数组 1数组定义 如:int a10,b3+2,c7+FD; FD 是常量 说明:不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或 常量表达式。 2数组元素的表示方法 数组元素的一般形式为: 数组名下标 如:a5,ai+j,ai+ 说明:下标可以是变量或变量表达式 3初始化赋值 一般形式为: static 类型说明符 数组名常量表达式= 值,值值; 例:static int a10= 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 a5,*pa=a /或写成: int a5,*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 /包含单片机内部资源预定义 第一 步 #include “pc68.h” /包含自定义头文件 7 _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 = 0x00; TMR1H += TMR1H_CONST; LED1 = LED_OFF; LCD_Test(); while(1) /程序工作主循环 asm(“clrwdt”); /清看门狗 Clock(); /更新时钟 KeyScan(); /扫描键盘 Measure(); /数据测量 SetSFR(); /刷新特殊功能寄存器 2、PICC 中常用变量类型 bit 1 布尔型位变量,0 或1 两种取值 char 8 有符号或无符号字符变量,PICC 缺省认定char 型变量为 无符号数,但可以通过编译选项改为 有符号字节变量 unsigned char 8 无符号字符变量 3、PICC 对数据寄存器bank 的管理 如果没有特别指明,所定义的变量将被定位在bank0 如:bit flag1,flag2 除了bank0 内的变量声明时不需特殊处理外,定义在其它bank 内的变量前面必 8 须加上相应的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 0x03 ; volatile bit commFlag ; 说明:在单片机中,作为输入的IO 端口其内容将是随意变化的;在中断内被 修改的变量相对主程序流程来讲也是随意变化的;很多特殊功能寄存器的值 也将随着指令的运行而动态改变。所有这种类型的变量必须将它们明确定义 成“volatile”类型 (3)const 常数型变量声明 例:const unsigned char name=”This is a demo” ; / 定义一个常量字符串 (4)persistent 非初始化变量声明 例:persistent unsigned char hour,minute,second; /定 义时分秒变量 按照标准C 语言的做法,程序在开始运行前首先要把所有定义的但没有预置 初值的变量全部清零。PICC 提供了“persistent”修饰词以声明此类变量无需 在复位时自动清零。 7、 PICC 中的指针 (1)PICC 在编译C 原程序时将指向RAM 的指针操作最终用FSR 来实现 间接寻址。这样就势必产生一个问题:FSR 能够直接连续寻址的范围是256 字节(bank0/1 9 或bank2/3),要覆盖最大512 字节的内部数据存储空间,又该如何让定义指 针?PICC 还是将这一问题留给编程员自己解决:在定义指针时必须明确指定 该指针所适用的寻址区域,例 如: unsigned char *ptr0; /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 奉贤区羽毛球球场施工方案
- 水库牧道及库区清施工方案
- 长沙设备内衬防腐施工方案
- 2025年中国搬运机器人产业深度分析、投资前景及发展趋势预测报告
- 生态补偿机制的建设与完善策略及实施路径
- 中西通俗小说赏析知到课后答案智慧树章节测试答案2025年春温州理工学院
- 2025年电子金融相关设备项目建议书
- 数学高考备考讲义第三章不等式35
- 灯条施工方案模板
- 2025年高三二轮专题复习学案地理(艺体生专用)第26讲地区产业结构变化与产业转移
- 2025年湖南汽车工程职业学院单招职业技能测试题库及答案1套
- 2025年牡丹江大学单招职业适应性测试题库及答案(典优)
- 2025年河南工业职业技术学院单招职业技能测试题库审定版
- 包材检验流程
- 2024年湖南司法警官职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 2025年四川成都职业技术学院招聘笔试参考题库含答案解析
- 商业楼宇电气设施维修方案
- 乳腺疾病的筛查与预防
- 《丝巾无限可能》课件
- 家庭教育与孩子的阅读习惯培养
- 2024年10月自考00058市场营销学真题和答案
评论
0/150
提交评论