290 likes | 524 Views
第一章 单片机的 C 语言概述. 教材. 《 单片机 C 语言轻松入门 》 周坚编著,北京航空航天大学出版社. 参考书目:. 《 单片机 C 语言设计实例精讲 》 ,戴佳等编著,电子工业出版社, 2008 年 12 月第二版。 《 单片机 C 语言编程与实例 》 ,赵亮等编著,人民邮电出版社, 2003 年 9 月第二版。 《 新概念 51 单片机 C 语言教程 》 ,郭天祥编著,电子工业出版, 2009 年 3 月第一版。. 共 64 个学时. 本课程强调实际应用为主,以培养学生的实际实践能力为主。. 1. 理论课程 ( 48 个学时). 2. 实验课程
E N D
教材 • 《单片机C语言轻松入门》 周坚编著,北京航空航天大学出版社
参考书目: • 《单片机C语言设计实例精讲》,戴佳等编著,电子工业出版社,2008年12月第二版。 • 《单片机C语言编程与实例》,赵亮等编著,人民邮电出版社,2003年9月第二版。 • 《新概念51单片机C语言教程》,郭天祥编著,电子工业出版,2009年3月第一版。
共64个学时 本课程强调实际应用为主,以培养学生的实际实践能力为主。 1. 理论课程 (48个学时) 2. 实验课程 (16个学时) 课程安排
期末成绩 考勤及测试 期中考试 实验成绩 考评办法 总评成绩的组成: 50% 10% 10% 30% • 课堂提问 • 出勤情况 • 课堂测验 • 实验报告 • 出勤情况
单片机现状分析 • 大量的应用需求 广泛的应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域 。 • 单片机主要厂商 INTEL公司的8051系列单片机;Motorola 公司(FREESCALE,飞思卡尔 )的M68系列单片机;MicroChip公司的PIC系列单片机;Philips公司的P89系列; ATMEL公司AT89C51系列,AVR系列;Zilog公司的Z80系列单片机。 • 单片机广泛的应用
电讯方面 工业方面 汽车方面 民用方面 数据处理方面 仪表方面 单片机应用
本课程主要内容 • 本课程以80C51系列中的AT89C51单片机为例学习单片机的C语言编程技术。 • 结合AT89C51的结构特点,利用Keil软件作为开发环境,Proteus作为电路仿真软件,学习C语言编程技术实现所需电路功能。
单片机的特点及应用 1. 单片机的特点 体积小,重量轻 电源单一,功耗低 功能强,价格低 运行速度快,抗干扰能力强,可靠性高 可以嵌入到电子产品中——嵌入式应用系统
AT89C51简介 • 4k字节可编程闪烁存储器(FPEROM ) • 寿命1000写/擦 循环 • 数据保留时间:10年 • 128字节内部RAM(随机存取存储器) • 32可编程I/O线 • 两个16位定时器/计数器 • 5个中断源 • 可编程串行通道 • 低功耗的闲置和掉电模式 • 片内振荡器和时钟电路
T0 T1 时钟电路 ROM RAM 定时计数器 CPU 并行接口 串行接口 中断系统 TXD RXD INT0 INT1 P0 P1 P2 P3 MCS-51单片机硬件结构 • 并行I/O口:4个8位的I/O口P0、P1、P2、P3。 • 中央处理器CPU:8位,运算和控制功能 • 内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。 • 串行口:一个全双工串行口。 • 中断控制系统:5个中断源(外部中断2个,定时/计数中断2 个,串行中断1个) • 时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ(XTAL1和XTAL2) • 内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。 • 定时/计数器:两个16位的定时/计数器,实现定时或计数功能。 结构框图
Keil C软件开发环境 • 单片机开发中除必要的硬件外,同样离不开软件 • 常用的单片机C语言编程环境是Keil软件 • Keil 软件的使用主要包括四部:(演示过程) (1)源文件的建立 (2)工程的建立 (3)工程的设置 (4)编译、链接(生成.hex文件) • 本课程主要讲解单片机的C语言编程,其扩展名为.c,此外该软件也可使用汇编语言,扩展名为.asm
电路仿真软件proteus • Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。 • 不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。 • 目前最好的仿真单片机及外围器件的工具。 • 在本课程学习主要应用proteus软件模拟仿真单片机硬件实验电路,辅助可以使用教材提供的键盘、LED实验仿真板。
采用C语言编程的优势 (1)结构化控制语句 (2)适用范围大和可移植性好 (3)简洁紧凑,灵活方便 (4)运算符丰富 (5)数据结构丰富 (6)程序设计自由度大 (7)允许直接访问物理地址,可直接对硬件进行 操作 (8)生成代码质量高
一个简单小实例 • C程序代码 #include "reg51.h" sbit p1_0 = P1^0; void main() { p1_0 = 0; }
一个简单小实例 • 仿真电路演示
对简单程序分析 #include "reg51.h" sbit p1_0 = P1^0; void main() { p1_0 = 0; } • reg51.h • sfr(特殊寄存器) • sbit(对应可位寻址空间的一个位) • main函数(一个程序有且只有一个,后必有大括号)
关键词使用用法 • sfr: • sfr变量名= 地址值; • 例如:sfr P1=0x90; • sbit(3种): (1)sbit 位变量名=地址值; (2)sbit 位变量名=sfr名称^变量位地址值; (3)sbit 位变量名=sfr地址值^变量位地址值;
C程序特性分析 • (1)C程序由函数组成(至少有一个main函数) • (2)C程序总是从main程序开始执行 • (3)C语言注意区分大小写 • (4)书写格式自由,但建议规范写 • (5)每个语句和定义最后有分号,分号不可缺少 • (6)注释用/*…*/或是// • 例1.2让接在P1.0引脚上LED闪烁发光
优秀程序员的素质之一: main( ) { int i , j , sum; sum=0; for(i=1; i<10;i++) { for(j=1;j<10;j++) { sum+=i*j ; } } printf(“%d\n”,sum); } • 使用TAB缩进 • {}对齐 • 有足够的注释 • 有合适的空行