单片机C语言简明教程
更新时间:2023-05-17 14:31:01 阅读量: 实用文档 文档下载
精品资料 c语言
本文由xianguogao贡献
ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
C语言程序设计 语言程序设计
1.0
1.1
1.2
1.3
为什么要学习C语言?
§ 计算机学的许多知识都具有相通性,因 而,不断追赶时髦技术而忽略基本功的 做法是徒劳无意的.我们最多需要"精 通 "三种语言,最佳拍档是汇编,C, C++(或JAVA),很显然,如果你"精 通"了这三种语言,其它语言你应该是 可以很快"熟悉"的,否则你就没有 "精通 "它们. § C语言是嵌入式开发的主要语言
1.0
1.1
1.2
1.3
初级入门教材
1. 《C程序设计语言》(The C Programming Language,第2版 新版)
Brain W. Kernighan 和 Dennis.M.Ritchie 著
2. 《C Primer Plus(第五版)中文版》
Stephen Prata著,云巅工作室 译
3. 《C和指针》(Pointers on C)
(美)Kenneth A. Reek著 徐波译 4. 《C语言程序设计》 谭浩强 著 清华大学出版社
1.0
1.1
1.2
1.3
C语言进阶书籍
《C陷阱与缺陷》(C Traps and Pitfalls)Andrew Koenig 著 《C专家编程》 (美) Peter Van Der Linden著 徐波译 《C语言编程常见问题解答》(C Programming : Just the Faqs ) Paul S.R. Chisholm 等著 《C/C++嵌入式系统编程》(Programming Embedded Systems in C and C++) 作者:Michael Barr 《高质量程序设计指南:C++/C语言 》林锐, 韩永 泉编著
把这几本书吃透,足 以使你成为C语言高手 了 西电本科硕士,浙大博士, 著名网文:大学十年
购书方法
§互动出版社(china-pub) §网址:www.china-pub.com §好处:
搜索同类型书,版本全面,经常会有意外收获 有购书网友的心得,评论,可未读先知 有一定价格优惠 信誉较好,可靠
上机调试方法
1. IAR C编译器
EW430 3.41A软件
2. Dev C++软件
Dev-C++ 是一个 C++ 开发工具.它包括多页面窗 口,工程编辑器,在工程编辑器中集合了编辑 器,编译器,连接程序和执行程序.它也提供 高亮度语法显示的,以减少编辑错误.
一些重要的学习论坛
1. 2. 3. 4. 5. http://www.mcu-china.com/ 南航魏小龙主页 http://www.microcontrol.cn/bbs/Boards.asp
精品资料 c语言
http://bbs.lierda.com/index.php?s=56b0bcf10feb4ce2586c0cffd4795d06 利尔达(www.lierda.com)技术论坛
http://www.just430.cn/html/bbs.html http://www.c51.cn/mp430/index.html
有很多学习教
1.0
1.1
1.2
1.3
第一章 C语言概述
C语言发展历史 C语言特点 C程序格式和结构特点 算法,程序设计语言和程序设计 C程序上机步骤(实验时讲)
1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
§1.1 C语言发展历史
程序设计语言的发展
机 汇 器 语 言 言 语 言 面向对象 CPU指令系统,由0,1序列构成的指令码组成 面向机器的语言 用助记符号描述的指令系统 如:10000000 加 如 10010000ADD A, B 减 编 级 语 高 面向过程
1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
C语言发展过程 产生背景 产生过程
时间:1972 ̄1973 地点:美国贝尔实验室 目的:UNIX操作系统 设计人: Ken.Thompson和Dennis.M.Ritchie
C标准
标准C: K&R合著《The C Programming Language》 ANSI C: 1983年 87 ANSI C: 1987年 1990年国际标准的ANSI C
1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
§1.2 C语言特点
中级语言 > >
语言简洁,紧凑,灵活 > 运算符和数据类型丰富 > 程序设计结构化,模块化 生成目标代码质量高 可移植性好
1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
§1.3 C程序格式和结构特点
例1.1 第一个程序 /* example1.1 The first C Program*/ 注释 #include "stdio.h" 编译预处理 main() 函数 { 语句 printf("Good morning!"); 语句 printf("**********************"); } 输出: Good morning! ********************** 1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
/* example1.1 calculate the sum of a and b*/ 例1.2 #include 预处理命令 /* This is the main program */ main() 注释 函数 { int a,b,sum; a=10; b=24; sum=add(a,b); 语句 printf("sum= %d\n",sum); } /* This function calculates the sum of x and y */ int add(int x,int y) { int z; z=x+y; 运行结果: 运行结果: return(z); sum=34 }
精品资料 c语言
1.3
第一章 C语言概述
程序书写格式特点
习惯用小写字母,大小写敏感 main( 不使用行号,无程序行概念 main( ) ) { { ………………. 可使用空行和空格 int i , j , sum; ……………… 常用锯齿形书写格式 sum=0; ………….. for(i=1; i<10;i++) ………….. { ……… for(j=1;j<10;j++) ………. 优秀程序员的素质之一: { …………… 使用TAB缩进 sum+=i*j ; ……………. { }对齐 } ………………. 有足够的注释 } ……………….. 有合适的空行 } printf("%d\n",sum); }
1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
结构特点
函数与主函数
程序由一个或多个不同名的函数组成 必须有且只能有一个主函数main() 程序执行从main开始,在main中结束,其它函 数通过嵌套调用得以执行.
程序语句
非法
C程序由语句组成 例: /*This is the main /* of example1.1*/ */ 用";"作为语句终止符
注释
/* */为注释,不能嵌套 编译预处理命令 不产生编译代码
1.0
1.1
1.2
1.3
1.3 算法,程序设计语言和程序设计 算法,
1.0
1.1
1.2
1.3
算法
什么是算法? 什么是算法? 算法就是为解决一个特定的 问题所采取的确定的有限的 步骤. 步骤.
1.0
1.1
1.2
1.3
1.0
1.1
1.2
1.3
大会开始
顺序算法
例1: : 开会程序
主持人讲话 党员代表讲话 群众代表讲话 领导讲话
会议结束
1.0
1.1
1.2
1.3
精品资料 c语言
顺序算法
例2: 计算二数的平均值 设两数分别存放于a, 设两数分别存放于 ,b 两变量中,变量aver用 两变量中,变量 用 于存放两数的平均值. 于存放两数的平均值. 输入a,b 输入 aver=a+b aver=aver/2 输出aver 输出
aver
÷
2
结束
1.0
1.1
1.2
1.3
1.0
1.1
1.2
1.3
选择算法
例3:选取两数中较大的数 :
1.0
1.1
1.2
1.3
开始
输入a,b 输入 Y a>=b? ? a与b交换 与 交换 N
如何交 换?
输出a,b 输出
结束
1.0
1.1
1.2
1.3
a
2
b
a c b
c b a
5 3
3 5
1
c
3
3
1.0
1.1
1.2
1.3
开始
输入a,b 输入 Y a>=b? ? a c a与b交换 与 交换 b a c b N
输出a,b 输出
结束
1.0
精品资料 c语言
选择算法
例4:一道练习题的处理 :
1.0
1.1
1.2
1.3
计算机出题 3+5=? 学生输入答案 Y N
=8? ?
答对的处理 答错的处理
结束或作下一题
1.0
1.1
1.2
1.3
计算机出题 3+5=? 学生输入答案 Y N
=8? ?
答对的处理 答错的处理
结束或作下一题
1.0
1.1
1.2
1.3
1.0
1.1
1.2
1.3
计算机出题 3+5=? 学生输入答案 Y N
=8? ?
答对的处理 答错的处理
结束或作下一题
1.0
1.1
1.2
1.3
计算机出题 3+5=? 学生输入答案 答错的处理 N
=8? ?
Y 答对的处理 结束或作下一题
1.0
1.1
1.2
1.3
start
循环算法
例4 求s=1+2+3+…+100 sum: 存放累加和 i: 存放加数
Y
sum=0 i=1
sum=sum+i
i=i+1
i<=100 N
精品资料 c语言
1.1
1.2
1.3
算法的表示
自然语言描述 流程图表示 初学者必备!) 表示( 流程图表示(初学者必备!) 程序设计语言描述
1.0
1.1
1.2
1.3
常用流程图符号
椭圆框(始止框),表示 程序的开始和结束 流向线,指示程序的流向. 矩形框(处理框),数据 的处理和输入输出 菱形框(判断框), 根据 框内条件判断分支出口 子程序,过程或函数调用
1.0
1.1
1.2
1.3
计算机程序
用计算机语言写的程序是算法在计算机 上的具体实施. 上的具体实施. 所谓计算机程序, 所谓计算机程序,是指按照某种顺序排 列的便于计算机能够执行某种基本任务 的指令的集合. 的指令的集合.
例2的C语言程序 的 语言程序 #include "stdio.h" /* 编译预处理 */ main( ) /* main()为主函数,C程序的执行起点 */ 为主函数, 程序的执行起点 为主函数 { int a,b; /* 变量说明语句,设c,n为整型 变量说明语句, 为整型(int型) 为整型 型 变量 */
float aver;
/* 变量说明语句,设aver为浮点 变量说明语句, 为浮点
型(float型)变量 */ 型 变量 /* 在声明本函数中要用到的变量后,下面为算法的 在声明本函数中要用到的变量后, 具体执行语句 */ scanf("%d,%d",&a,&b) /*从键盘输入整数 从键盘输入整数 给变量a, 给变量 ,b */ aver=a+b; /*a+b→aver*/ →
aver=aver/2; /*求平均 求平均*/ 求平均 printf("average=%f\n",aver); /* 输出结
字样, 表示回车 表示回车*/ 果,显示average=字样,\n表示回车 显示 字样 }
1.0
1.1
1.2
1.3
例2的C语言程序 的 语言程序 #include "stdio.h" main( ) { int a,b; float aver; scanf("%d,%d",&a,&b); aver=a+b; aver=aver/2; printf("average=%f\n",aver); }
1.0
1.1
1.2
1.3
变量 */ /* 在声明本函数中要用到的变量后,下面为算法的 在声明本函数中要
精品资料 c语言
赋予初值 循环前将变量 , */ do{ /*do{…}while为循环控制语句 为循环控制语句*/ 为循环控制语句 sum=sum+i; /*累加 累加*/ 累加 i=i+1; /*计数 计数*/ 计数 }while(i<=100); /*循环条件判断 循环条件判断*/ 循环条件判断 printf("sum=%d\n",sum); /* 输出结果,显 输出结果, 字样, 表示回车 表示回车*/ 示sum=字样,\n表示回车 字样
#include "stdio.h" main( ) /* main()为主函数,C程序的执行起点 */ 为主函数, 程序的执行起点 为主函数 { int sum,i; /* 变量说明语句,设c,n为整型 变量说明语句, 为整型(int型) 为整型 型
}
1.0
1.1
1.2
1.3
start
sum=0 i=0
sum=sum+i
i=i+1
Y i<=100 N
输出sum 输出
end
1.0
1.1
1.2
1.3
#include "stdio.h" main( ) { int sum,i; sum=0; i=1; do{ sum=sum+i; i=i+1; }while(i<=100); printf("sum=%d\n",sum); }
1.0 1.1 1.2 C语言程序设计
开 始
1.3
第一章 C语言概述
§1.4 C程序的上机步骤
源程序 file.c
编 辑
编辑 编译 链接 执行
编 译
程序代码的录入, 生成源程序*.c 语法分析查错,翻译 生成目标程序*.obj 与其它目标程序或库 链接装配,生成可执行 程序*.exe
有 有错? 无 可执行 目标程 序 连 接
目标程 序 file.obj
file.exe
执 行
库函数和 其它目标 程序
不正确 结果正确? 正确 结 束
源程序 目标程序 可执行程序 内容 程序设计语言 机器语言 机器语言 可执行 不可以 不可以 可以 .c .obj .exe 文件名后缀
1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
32个关键字:(由系统定义,不能重作其它定义) 由系统定义,不能重作其它定义) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct
精品资料 c语言
<
1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
<
9种控制语句: if( ) ̄else ̄ for( ) ̄ while( ) ̄ do ̄while( ) continue break switch goto return
1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
34种运算符:
算术运算符:+ - * / % ++ -关系运算符:< <= == > >= != 逻辑运算符:! && || 位运算符 :<< >>  ̄ | ^ & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数 :sizeof 强制类型转换:(类型) 分量运算符:. -> 下标运算符:[] 其它 :( ) -
<
1.0 1.1 1.2 C语言程序设计
1.3
第一章 C语言概述
整型int 字符类型char 标准类型 基本类型 无值型void C 数 据 类 型 数组 构造类型 结构体struct 共用体union 指针类型 用户自定义类型typedef,枚举类型enum 浮点型float 双精度浮点型double
<
1
正在阅读:
单片机C语言简明教程05-17
概率论与数理统计及其应用课后答案(浙江大学 - 盛骤版)12-14
工程事故案例27例 - 图文05-06
春雨作文300字03-12
汉字难解字及生僻字表与索引05-17
必修1--函数--基本初步函数练习试题09-02
幼儿园集团化办园工作方案03-30
人教精通版小学六年级英语上册教案12-03
国际象棋一步杀128题04-09
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 简明教程
- 单片机
- 语言
- 2008年高考理综试题物理部分(全国卷1)
- 学校网络安全管理制度
- 初中九年级化学第1-3单元综合测试题
- 审计风险及其防范
- 考虑参数优化的层间隔震结构振动台试验研究2009
- 煤矿安监员管理规定
- 广东省珠海金湾区第一产业生产总值和指数、地方一般预算支出3年数据解读报告2020版
- 个人思想成长历程
- 食品安全管理体系专项技术要求
- 浅谈矿井水害的综合防治
- 学校文化与教师的专业发展
- 10.3D虚拟现实技术简介(1)=创新教育基础与实践=大连理工大学
- 合理化建议奖励办法
- 小学五年级课外活动计划
- 《七律 长征》第二课时
- 学习《中学生守则》教案 Microsoft Word 文档
- 2012河南省中考物理
- 情态动词用法讲解
- 直螺纹钢筋接头施工方案
- 初中数学辅导2013中考总结复习冲刺专题:方程与不等式问题