




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程性质和教学目标课程性质和教学目标l本课程是电子信息学院各专业的一门必修课。l通过本课程的学习,期望达到如下目标: 掌握C语言基本编程及应用 掌握5 1系列单片机的基本原理及简单开发 理解C语言与单片机在传感与控制系统中的作用 初步形成嵌入式系统设计与开发的基本能力课程用书课程用书l单片机C语言教程lC程序设计谭浩强建议课程参考书建议课程参考书课程介绍课程介绍l1.课程特点 综合性强、实践性强课程介绍课程介绍l2.课程内容C语语言言单单片片机机课程介绍课程介绍l2.课程内容C语言编译软件语言编译软件TC编编译译环环境境WINTC编编译译环环境境VC编编译译环环境境Keil C51编编译译环环
2、境境单片机单片机C语言编语言编程环境程环境 课程介绍课程介绍l2.课程内容外围器件单片机单片机AT89S52外外围围电电路路传感器显示器件信号调理电路接口器件嵌嵌入入式式系系统统Proteus单片机仿真软件单片机仿真软件C语言的发展语言的发展l语言是在语言是在 20世纪世纪70 年代初问世的。一九七八年由美国年代初问世的。一九七八年由美国电话电报公司电话电报公司(AT&T)贝尔实验室正式发表了语言,贝尔实验室正式发表了语言,研研制制C语言的初衷是为了用它编写语言的初衷是为了用它编写Unix 系统软件。系统软件。l同时由同时由B.W.Kernighan和和D.M.Ritchit(合称(合
3、称D&R)合著)合著了著名的了著名的The C Programming Language一书,在一书,在该书中并没有定义一个完整的标准该书中并没有定义一个完整的标准C 语言,后来由美国国语言,后来由美国国家标准协会(家标准协会(American National Standards Institute)在此基础上制定了一个在此基础上制定了一个C 语言标准,于一九八三年发表,语言标准,于一九八三年发表,通常称之为通常称之为ANSI C。C语言的发展语言的发展l K&R在在1988年修改了他们的经典著作年修改了他们的经典著作The C Programming Language,按照
4、,按照ANSI C标准重写了标准重写了该书。该书。1987年,年,ANSI又公布了新标准又公布了新标准87 ANSI C。1990年,国际标准化组织年,国际标准化组织ISO接受接受87 ANSI C为为ISO C的标准(的标准(ISO 98991990)。)。 目前流行的目前流行的C编译系统都是以它为基础的。编译系统都是以它为基础的。C语言的特点语言的特点(1 1)语言简洁、紧凑,使用方便、灵活。)语言简洁、紧凑,使用方便、灵活。 (2)C语言运算符丰富,共有语言运算符丰富,共有14种运算符。种运算符。(3)C语言的数据结构也比较丰富,具有现代计算机语言语言的数据结构也比较丰富,具有现代计算机
5、语言的各种数据结构。的各种数据结构。(4)具有结构化的流程控制语句,如选择语句、循环语)具有结构化的流程控制语句,如选择语句、循环语句等。句等。(5)流程控制和数据操作灵活多样,程序设计有较大的)流程控制和数据操作灵活多样,程序设计有较大的自由度。自由度。(6)C语言允许直接访问物理地址,能进行位运算,能实语言允许直接访问物理地址,能进行位运算,能实现汇编语言的大部分功能,可以直接对硬件进行操作。现汇编语言的大部分功能,可以直接对硬件进行操作。(7)用)用C语言编写的程序可移植性好。语言编写的程序可移植性好。(8)用)用C语言写的程序可移植性好(与汇编语言比)。语言写的程序可移植性好(与汇编语
6、言比)。 为什么要学习为什么要学习C语言语言l1. 很多其他的语言是基于很多其他的语言是基于C语言的,学习语言的,学习C,你可以更加容易,你可以更加容易的学习很多其他的语言;的学习很多其他的语言;l2. 让你有能力去改写其他人写的复杂程序为你所用;让你有能力去改写其他人写的复杂程序为你所用;l3. 极大地提高你的计算机应用水平;极大地提高你的计算机应用水平;l4. 作为工程师,我们会发现越来越多的硬件可以用作为工程师,我们会发现越来越多的硬件可以用C 语言进行语言进行配置。配置。 简单的简单的C语言程序语言程序l/* program writes the words Hello, world
7、to the screenl* File : Hello.cl* By : NJCITl* Date : 07-03-09l*/l#include lmain()llprintf(Hello, worldn);lreturn(0);l 注释头文件主函数函数体注:注:每个每个C语言程序有且语言程序有且仅有一个仅有一个main函数函数 简单的简单的C语言程序语言程序lmain() /*主函数主函数*/l int a,b,c; /*定义变量定义变量*/l scanf(“%d,d”,&a,&b); /*输入变量输入变量a和和b的值的值*/l c=max(a,b); /*调用调用max函
8、数,将得到的值赋给函数,将得到的值赋给c */l printf(“max=%d”,c); /*输出输出c的值的值 */ int max(x,y) /*定义定义max函数函数 */ int x,y; /*对形参对形参x、y做类型定义做类型定义*/ int z; /* max函数中用到的变量函数中用到的变量z,也要加以定义,也要加以定义*/ if(xy) z=x; else z=y; return(z); 、/*将将z的值返回,通过的值返回,通过max带回调用处带回调用处*/编辑链接编译执行 C程序的上机步骤C程序开发步骤 开 始 编 辑 编 译 连 接 执 行 有错?结果正确? 结 束有源程序
9、file.c目 标 程序file.obj库函数和其它目标程序可执行目标程序无正确不正确file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe源程序目标程序可执行程序内容程序设计语言机器语言机器语言可执行不可以不可以可以文件名后缀.c.obj.exe几个问题几个问题l1.一个一个C源程序包含几个源程序包含几个main()函数?函数?l2.一个函数由几部分组成?一个函数由几部分组成?l3.一个一个C程序从哪个函数开始执行,在哪里结束?程序从哪个函数开始执行,在哪里结束?l4.在一个在一个C程序中在程序中在”/*.
10、*/”之间的内容是否进行编译并之间的内容是否进行编译并运行?运行?”/*/”起什么作用?起什么作用?l5.在一个在一个C程序开始有时会有程序开始有时会有“include *.h”这个语句,这个语句,它是什么意思?它是什么意思?总结总结l1. C程序是由函数构成的程序是由函数构成的。l一个一个C源程序至少包含一个函数(源程序至少包含一个函数(main函数),也可以包含一函数),也可以包含一个个main和若干其它函数。因此,和若干其它函数。因此,函数函数是是C程序的基本单位。程序的基本单位。l2.一个函数由两部分组成一个函数由两部分组成l(1)函数的)函数的说明部分说明部分l包含函数名、函数类型、
11、函数属性、函数参数名、形式参数名包含函数名、函数类型、函数属性、函数参数名、形式参数名l (2)函数体函数体l即函数说明部分下面的大括弧即函数说明部分下面的大括弧内的部分。内的部分。l 函数体内一般包括:变量定义、执行部分。函数体内一般包括:变量定义、执行部分。总结总结l3.一个一个C程序程序总是从总是从main函数开始执行函数开始执行,而不论,而不论main函函数在整个程序中位置,数在整个程序中位置,最后在最后在main中结束中结束。l4.每个语句和数据定义的每个语句和数据定义的最后必须有一个分号最后必须有一个分号。l5.C语言语言本身没有输入输出语句本身没有输入输出语句,输入、输出操作是利
12、用,输入、输出操作是利用库函数库函数scanf()和和printf()完成。完成。l6.可以用可以用/*.*/作注释作注释。总结:总结:格式特点格式特点l习惯用习惯用小写小写字母,大小写敏感字母,大小写敏感l不使用行号,不使用行号,无程序行无程序行概念概念l可使用空行和空格可使用空行和空格l常用常用锯齿形锯齿形书写格式书写格式l优秀程序员的素质之一优秀程序员的素质之一:l使用使用TAB缩进缩进l对齐对齐l有足够的注释有足够的注释l有合适的空行有合适的空行C语言中的关键字语言中的关键字l32个关键字:(lauto break case char constlcontinue default do
13、 double elselenum extern float for gotolif int long register returnlshort signed sizeof static structlswitch typedef unsigned union voidlvolatile whileC语言的要素语言的要素l1.C的数据类型l一个程序应包括两个方面的内容:l (1)数据的描述;l (2)算法:操作步骤,即动作的描述;l数据是操作的对象,操作的结果会改变数据的状况。l数据结构算法程序C语言数据类型语言数据类型C数据类型基本类型构造类型指针类型空类型void定义类型typedef数
14、值类型字符类型char枚举类型enum整 型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.
15、7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例: 一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量如 #define PRICE 30常量l定义:程序运行时其值不能改变的量(即常数)l分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量例 符号常量举例(ch2_1.c)#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf
16、(total=%d,total);运行结果:运行结果:total=300&整型常量(整常数)l三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0 x开头,后跟09,af,AF表示. 如0 x123,0Xff例 12 与 12L例 30000 为int型 65536 为long int 型l整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量问题:0123 = ( )100 x123 = ( )100Xff = ( )1083291
17、255问题:0123 = ( )100 x123 = ( )100Xff = ( )10&实型常量(实数或浮点数)实型常量(实数或浮点数)l表示形式:表示形式: 十进制数形式:(十进制数形式:(必须有小数点必须有小数点) 如如0.123, .123, 0.123, .123, 123.0, 0.0, 123.123.0, 0.0, 123. 指数形式:(指数形式:(e e或或E E之前必须有数字;指数必须为整数之前必须有数字;指数必须为整数)如如12.312.3e3 ,123E2, 1.23e4 , e3 ,123E2, 1.23e4 , e-5e-5 , , 1.2E-3.51.2E
18、-3.5 l实型常量的类型实型常量的类型 默认默认doubledouble型型 在在实型常量后加字母实型常量后加字母f f或或F F,认为它是认为它是float float 型型aaa25&字符常量字符常量l定义定义: :用用单引号单引号括起来的括起来的单个普通字符单个普通字符或或转义字符转义字符. l字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码码值值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 101 -A 012 -n 376 - x
19、61 -a 60 -0 483 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n 101l转义字符转义字符: :反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示l字符常量与字符串常量不同&字符串常量字符串常量l定义:用定义:用双引号双引号( (“”) )括括起来的字符序列起来的字符序列l存储:存储:每个字符串尾每个字符串尾自动自动加一个加一个 00 作为字符作为字符串结束标志串结束标志h e l l o 0例 字符串“hello”在内存中a a 0例 a“a”例 空串 “”0例: char ch; ch=“A”; 例
20、: char ch; ch=A; 编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1, b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数l变量l概念:其值可以改变的量l变量名与变量值l变量定义的一般格式: 数据类型 变量1,变量2,变量n;l变量初始化:定义时赋初值 例: int a,b,c; float data;决定分配字节数和数的表示范围合法标识符l变量的使用:先定义,后使用例1 int student; stadent=19; /Undefined symbol statent in function main l变量定义位置:一般放在函数开头l在书写变
21、量说明时,应注意以下几点:在书写变量说明时,应注意以下几点: 1.允许在一个类型说明符后,说明多个相同类型的变量。允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。用一个空格间隔。 2.最后一个变量名之后必须以最后一个变量名之后必须以“;”号结尾。号结尾。 3.变量说明必须放在变量使用之前。一般放在函数体的开变量说明必须放在变量使用之前。一般放在函数体的开头部分。头部分。 main() int a,b=2; a=1; float data; data=(a+b)*1.2; prin
22、tf(“data=%fn”,data);main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可执行语句例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;l 常量与变量常量与变量l标识符标识符l定义:用来标识变量名、符号常量名、函数名、类型名等的定义:用来标识变量名、符号常量名、函数名、类型名等的字符序列字符序列l组成:组成:只能由只能由字母字母、数字数字、下划线下划线组成,且第一个字母必须是
23、字母或下划组成,且第一个字母必须是字母或下划线线大小写敏感大小写敏感不能使用关键字不能使用关键字l长度:最长长度:最长32个字符个字符l命名原则:命名原则:见名知意见名知意不宜混淆不宜混淆 如如l与与I, o与与0例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days#33char$123ab&整型变量l占字节数随机器不同而不同,一般占一个机器字lshortintlongl可用sizeof(类型标识符)测量&实型变量lfloat:占4字节,提供7位有效数字ldouble:占8字节,提供1516位有效数字&字符型变量l字符变量存放字符ASCII码lchar与int数据间可进行算术运算例 float a;a=123456.789; /* a=123456.7*/double b;b=123456.789; /* b=123456.789*/例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */没有字符串变量,用字符数组存放31l2.3不同类型数据间的转换不同类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新疆第二医学院《中国传统文化与中医》2023-2024学年第一学期期末试卷
- 2025届河北省金太阳-邢襄联盟高三上学期开学考(25-05C)-化学试题(含答案)
- 2025年中国斜挂袋市场调查研究报告
- 2025年中国数字式现场录像机市场调查研究报告
- 2025-2030年中国丁苯喹嗪行业前景调查及未来风险评估报告
- 2025至2031年中国美味金枪鱼罐头行业投资前景及策略咨询研究报告
- 肇庆市实验中学高中历史三:第课孔子与老子教案
- 2025至2031年中国纳米罗马杆行业投资前景及策略咨询研究报告
- 新疆生产建设兵团一师高中2025届高三毕业班联考数学试题试卷含解析
- 2025年中国钮绞钢市场调查研究报告
- ISO13485质量管理手册
- 辩论赛PPT模板模板
- 发电厂贮灰场突发环境事件应急预案
- 2023年高考全国乙卷作文“一花独放不是春百花齐放春满园”写作
- 建材公司质量管理手册(模板范文)
- 钳工中级知识培训课件
- GB/T 42706.2-2023电子元器件半导体器件长期贮存第2部分:退化机理
- 高考语文新题型+“文学短评”相关写作(真题+技法+练习)
- 幼儿园小班数学活动《认识里外》教学PPT课件【幼儿教案】
- 国开【形考】《管理英语(3)》形成性考核1-8答案
- 2023学年完整公开课版用户思维
评论
0/150
提交评论