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