




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PICC 入门笔记PIC 单片机 C语言编程入门笔记、 C 语言基础复习 没 C 语言基础看起来可能有点困难程序的语句语句名称一般形式说明表达式语句表达式 ;表达式语句由表达式加上分号“; ”组成函数调用语句函数名(实际参数表 );实际参数、形式参数二个概念要理解控制语句附件 1控制语句用于控制程序的流程复合语句多个语句用括号 括起空语句只有分号“;”组成的语句称为空语句赋值语句变量=(变量=表达式 );赋值表达式再加上分号构成的表达式语句数据输出语句printf( “格式控制字符 串”)附件 1(1) 条件判断语句if 语句, switch 语句(2) 循环执行语句do while 语句,
2、while 语句, for 语句(3) 转向语句break 语句, goto 语句, continue 语句, return 语句关系运算符小于小于或等于大于大于或等于等于不等于 = !=关系运算符都是双目运算符,其结合性均为左结合。在六个关系运算符中, ,= 的优先级相同,高于 =和!=,=和!= 的优先级相同。关系表达式的值是“真”和“假” ,用“ 1”和“ 0”表示。逻辑运算符与运算或运算非运算&|!&和或运算符 | 均为双目运算符。具有左结合性。 非运算符” ! ”为单目运算符, 具有右结合性,逻辑运算的值也为“真”和“假”两种,用“ 1”和“0 ”来表示。单目运算符 算术运算符 关系
3、运算符 逻辑运算符 赋值运算符第三章 : 控制语句1语句语言的 if 语句有三种基本形式。1、如果表达式的值为真,则执行其后的语句,否则不执行该语句。if( 表达式 ) 语句;2、如果表达式的值为真,则执行语句 1,否则执行语句 2 。If( 表达式 )语句 1;else语句 2;3、依次判断表达式的值,当出现某个值为真时, 则执行其对应的语句。然后跳 到整个 if 语句之外继续执行程序。 如果所有的表达式均为假,则执行语句 n 然后继续执行后续程序。If( 表达式 1)语句 1;else if( 表达式 2)语句 2;else if( 表达式 3)语句 3;else if( 表达式 m)语句
4、 m;else语句 n;2、条件运算符和条件表达式由条件运算符组成条件表达式的一般形式为: 表达式 1? 表达式 2:表达式 3 其求值规则为:如果表达式 1 的值为真,则以表达式 2 的值作为条件表达式的 值,否则以表达式 3 的值作为整个条件表达式的值。例: max=(ab)?a:b;意义:如果在条件语句中,只执行单个的赋值语句时, 常可使用条件表达式来 实现。不但使程序简洁,也提高了运行效率。3、语句语言还提供了另一种用于多分支选择的 switch 语句,其一般形式为: switch( 表达式)case 常量表达式 1: 语句 1;case 常量表达式 2: 语句 2;case 常量表达
5、式 n: 语句 n; default : 语句 n+1;其语义是: 计算表达式的值。 并逐个与其后的常量表达式值相比较, 当表达式 的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断, 继续执行后面所有 case 后的语句。 如表达式的值与所有 case 后的常量表达式 均不相同时,则执行 default 后的语句。4、循环结构程序语句while 语句的一般形式为: while( 表达式 ) 语句;特点:判断后执行说明:1. 循环体如包括有一个以上的语句,则必须用 括起来, 组成复合语句。2. 应注意循环条件的选择以避免死循环。语句do-while 语句的一般形式为:do语句
6、;while( 表达式 ) ;do-while 语句的语义是:先执行循环体语句一次, 再判别表达式的值,若为真 (非 0)则继续循环,否 则终止循环。do-while 语句和 while 语句的区别在于 do-while 是先执行后判断,因此 do-while 至少要执行一次循环体。而 while 是先判断后执行,如果条件不满足, 则一次循环体语句也不执行。语句for 语句是语言所提供的功能更强,使用更广泛的一种循环语句。其一般形式为:for( 表达式 1;表达式 2;表达 3) 语句;表达式 1 通常用来给循环变量赋初值,一般是赋值表达式。也允许在 for语句外给循环变量赋初值,此时可以省略
7、该表达式。表达式 2 通常是循环条件,一般为关系表达式或逻辑表达式。 表达式 3 通常可用来修改循环变量的值,一般是赋值语句。1. 首先计算表达式 1 的值。2. 再计算表达式 2 的值,若值为真 (非 0)则执行循环体一次, 否则跳出循环。3. 然后再计算表达式 3 的值,转回第 2步重复执行。 在整个 for 循环过程中, 表 达式 1 只计算一次,表达式 2 和表达式, 3 则可能计算多次。转移语句 在语言中提供了 4 种转移语句: goto,break, continue 和 return 。1goto 语句 一般不使用goto 语句也称为无条件转移语句,其一般格式如下: goto 语
8、句标号;其中语 句标号是按标识符规定书写的符号, 放在某一语句行的前面, 标号后加冒号 ( :) 。 语句标号起标识语句的作用,与 goto 语句配合使用。2语句continue 语句之后的语句,转 本语句只结束本层本次的循环,break 语句只能用在 switch 语句或循环语句中, 其作用是跳出 switch 语句或 跳出本层循环, 转去执行后面的程序。 由于 break 语句的转移方向是明确的, 所 以不需要语句标号与之配合。 break 语句的一般形式为: break; 使用 break 语句可以使循环语句有多个出口,在一些场合下使编程更加灵活、方便。 3语句 continue 语句只
9、能用在循环体中,其一般格式是: 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,
10、8,9 ;第五章 : 函数一定义的一般形式1无参函数的一般形式 过程 如: void delay(void)2. 有参函数的一般形式 类型说明符 函数名(形式参数表 ) 型式参数类型说明类型说明 语句 说明: return 返回值命令 二函数调用的一般形式为: 可以用以下几种方式调用函数:1、 z=max(x,y) 是一个赋值表达式,把 max的返回值赋予变量 z。 另一种为现代格式,其一般形式为:类型说明符 被调函数名 (类型 形参,类型 形参 ) ;函数的值只能通过 return 语句返回主调函数 。return 语句的一般形式为: return 表达式; 或者为: return ( 表达
11、式 ) ; 在语言中,对变量的存储类型说明有以下四种:auto自动变量register寄存器变量extern外部变量static静态变量第六章:指针 1指针变量的类型说明其一般形式为: 类型说明符 * 变量名;staic int *p2 /*p2 是指向静态整型变量的指针变量 */ 说明: 定义时要使用 * 号2指针变量的赋值方法(1) 指针变量初始化的方法 int a;int *p=&a; /* 定义并赋值 */int a5,*pa=a / 或写成: int a5,*pa=&a0 数组名也是数组的首 地址(2) 赋值语句的方法 int a;int *p; / 定义p=&a; / 赋值说明:
12、定义后,再赋值这时不能加 * 号,它是一个指针变量 3指针变量的运算 取地址运算符 &,取内容运算符 *int a=5, *p =&a;/ 这里的*P 是定义指针变量并赋值 &a 是表示指数据开的地址printf (%d, *p); / 这里的*P 是表示取指针 P地址中的内容 4加减算术运算对于指向数组的指针变量,可以加上或减去一个整数 n。设 pa 是指向数组 a 的指针变量,则 pa+n ,pa-n ,pa+ ,+pa ,pa- , -pa 运算都是合法 的。第七章: 枚举,位运算1位运算符& 按位与| 按位或 按位异或 取反 右移汇编转向 PICC 1话言代码头文件: #include
13、 , 它是很多头文件的集合寄存器赋值比较:C语言汇编语言PORTA=200MOVLW 200MOVWF PORTA说明: C操作一个寄存器时候,不用考虑页面的问题,一切由 C自动完成 而汇编不行。位操作的比较:C语言汇编语言RA0=0BCF PORTA, 0RA2=1BSF PORTA, 2说明: C中不用考虑页面问题内存分配问题:C 语言汇编语言INT X=5000在汇中定义一个内存是一件很小心INTY=1000的问题,要考虑太多的问题, C 语言INT Z=X/Y不需要考虑太多。PICC简单延时程序: void delay(uint m) uint i,j;for(i=0;im;i+)fo
14、r(j=0;j100;j+);1、PIC 单片机的 C 语言原程序基本框架 特别注意: main 函数必须是一个没有返回的死循环。#include / 包含单片机内部资源预定义 第一步 #include “”/ 包含自定义头文件_CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS);/ 定义芯片工作时的配置位void SetSFR(void); / 声明本模块中所调 用的函数类型void Clock(void);void KeyScan(void);void Measure(void);void LCD_Test(void);void LCD_Disp
15、(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 布尔型位变量,
16、0 或1 两种取值char 8有符号或无符号字符变量, PICC 缺省认定 char 型变量为无符号数,但可以通过编译选项改为有符号字节变量unsigned char 8 无符号字符变量3、PICC 对数据寄存器 bank 的管理 如果没有特别指明,所定义的变量将被定位在 bank0 如: bit flag1,flag2除了 bank0 内的变量声明时不需特殊处理外,定义在其它 bank 内的变量前面必如:bank2 bit须加上相应的 bank 序号flag1,flag2 ;为避免频繁的 bank 切换以提高代码效率,尽量把实现同一任务的变量定位在同 一个 bank 内4、PICC 中的局部
17、变量PICC 把所有函数内部定义的 auto 型局部变量放在 bank0。为节约宝贵的存储 空间,它采用了一种被叫做 “静态覆盖” 的技术来实现局部变量的地址分配。 但这时不能 出现函数递归调用 (自已调用自己) 既然所有的局部变量将占用 bank0 的存储空 间,因此用户自己定位在 bank0 内的变量字节数将受到一定的限制, 在实际使用 时需注意。5、PICC 中的位变量bit 型位变量只能是全局的或静态的。 PICC 将把定位在同一 bank 内的 8 个位 变量合并成一个字节存放于一个固定地址6、PICC 的其它变量修饰关键词( 1)extern 外部变量声明例: extern ban
18、k1 unsigned char var1, var2; 声明 bank1 外部变量( 2)volatile 易变型变量声明 例: volatile unsigned charSTATUS 0x03 ;volatile bit commFlag ; 说明:在单片机中,作为输入的 IO 端口其内容将是随意变化的;在中断内被 修改的变量相对主程序流程来讲也是随意变化的; 很多特殊功能寄存器的值也 将随着指令的运行而动态改变。所有这种类型的变量必须将它们明确定义成volatile ”类型This is a demo; / 定义一个常3)const 常数型变量声明 例: const unsigned char name=量字符串( 4)persistent 非初始化变量声明例: persistent unsigned
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省湘西州2024-2025学年高一(上)期末生物试卷(含解析)
- 揭阳浴室防滑施工方案
- 冬季屋顶泡沫施工方案
- 瓷砖楼梯施工方案模板
- 宝武招聘考试题及答案
- 6年级下册第1单元英语单词
- 2025年三病培训考试题及答案
- 5年级下册第1单元英语课文
- cc安全控制标准
- 地震应急响应清单
- 承插型套扣式钢管脚手架技术交底
- “三级”安全安全教育记录卡
- 爱莲说-王崧舟
- SolidWorks入门教程(很全面)PPT课件
- 2020飞山景区旅游开发运营方案实操手册
- 环境工程概预算(ppt)
- 新旧会计科目对照表
- 医用耗材超常预警和评价制度
- 4S店三表一卡标准模板
- 【校本教材】《身边的化学》高中化学校本课程
- 性格色彩培训-团队培训必备
评论
0/150
提交评论