第3章 MCS-51单片机接口技术与C语言编程
c51单片机c语言教程
51单片机C语言学习杂记学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头痛的事。
在众多单片机中51 架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一。
51 的编程语言常用的有二种,一种是汇编语言,一种是 C 语言。
汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而 C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且 C 语言还可以嵌入汇编来解决高时效性的代码编写问题。
对于开发周期来说,中大型的软件编写用 C 语言的开发周期通常要小于汇编语言很多。
综合以上 C 语言的优点,我在学习时选择了 C 语言。
以后的教程也只是我在学习过程中的一些学习笔记和随笔,在这里加以整理和修改,希望和大家一起分享,一起交流,一起学习,一起进步。
*注:可以肯定的说这个教程只是为初学或入门者准备的,笔者本人也只是菜鸟一只,有望各位大侠高手指点错误提出建议。
明浩2003-3-30mailto:pnzwzw@ wzw@第一课建立您的第一个C项目使用C 语言肯定要使用到C 编译器,以便把写好的C 程序编译为机器码,这样单片机才能执行编写好的程序。
KEIL uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
因此很多开发51 应用的工程师或普通的单片机爱好者,都对它十分喜欢。
以上简单介绍了KEIL51 软件,要使用KEIL51 软件,必需先要安装它。
KEIL51 是一个商业的软件,对于我们这些普通爱好者可以到KEIL 中国代理周立功公司的网站上下载一份能编译2K 的DEMO 版软件,基本可以满足一般的个人学习和小型应用的开发。
51单片机C语言编程入门(详讲版)
中国科学技术大学业余无线电协会编目 录§1 前言 (1)§2 单片机简介 (2)2.1 数字电路简介 (2)2.2 MCS-51单片机简介 (2)2.3 Easy 51 Kit Pro简介 (5)2.4 Easy 51 Kit Pro电路功能分析 (5)§3 MCS-51单片机的C语言编程 (8)3.1 汇编语言 (8)3.2 建立你的第一个C项目 (8)3.3 生成hex文件 (12)3.4 Keil C语言 (14)3.5 单片机I/O (18)3.6 中断 (25)3.7 定时器/计数器 (27)3.8 定时器的应用举例 (29)3.9 外部中断 (34)3.10 串行通信 (38)3.11 定时器2 (43)3.12 看门狗 (47)3.13 空闲模式和掉电模式 (50)§4 MCS-51单片机C语言编程应用进阶 (51)4.1 扫描式键盘 (51)4.2 EEPROM芯片AT93C46的读写 (55)4.3 Keil C的高级使用 (63)§5 编写高质量的单片机C程序 (64)5.1 文件结构 (64)5.2 程序的版式 (66)5.3 单片机程序命名规则与变量选择 (70)5.4 表达式和基本语句 (73)5.5 函数设计 (77)5.6 单片机程序框架 (79)附图:Easy 51 Kit Pro电路图(最小系统板) (80)附图:Easy 51 Kit Pro电路图(学习板) (81)§1 前言什么是单片机,目前还没有一个确切的定义。
普通认为单片机是将CPU、RAM、ROM、定时器/计数器以及输入输出(I/O)接口电路等计算机主要部件集成在一块芯片上,这样所组成的芯片级微型计算机称为单片微型计算机(Single Chip Microcomputer)。
简称为单片微机或单片机。
利用单片机程序,可以实现对硬件系统的小型化的智能控制。
MCS51单片机C语言编程
实验二 MCS-51单片机C语言编程练习一. 实验目的1. 了解单片机的C51语言与汇编语言以及标准C语言的异同,掌握C51语言的基本语法知识以及特有的程序设计特点。
2. 掌握使用C51语言进行顺序、分支、循环结构的程序设计方法。
3. 能够使用C51语言,独立设计出具有一定综合性的单片机应用程序,并与汇编语言的相应程序进行比较,加深理解。
4. 对应用问题能抽象出数学模型,绘制软件程序的流程图,并能用C51语言实现。
二.预习与思考1. 预习理论教材中“C51语言程序设计”的相关内容,掌握C51程序设计的基本方法、思路以及设计规范。
2. 预习理论教材中“C51程序设计”的相关例程。
3. 掌握单片机C51语言的调试方法,体会与标准C语言的异同。
4. 思考如何使用C51语言,对顺序、分支、循环结构的单片机应用程序进行设计,重点体会C51语言特有的设计方法与思想。
三. 实验原理1. 单片机的C51语言简介通常,将一些能够对MCS—51系列单片机进行硬件操作的C语言统称为C51语言。
在众多的C51语言中,功能最强、最受用户欢迎的是德国KEIL公司的Keil C51语言。
单片机应用系统的程序设计,既可以采用汇编语言,也可以采用C51语言,两者各具特色。
其中,汇编语言是一种用助记符来代表机器语言的符号语言。
因为它最接近机器语言,所以汇编语言对单片机的操作直接、简捷,编写的程序紧凑、执行效率较高。
但是,不同种类的单片机其汇编语言存在一定的差异。
在一种单片机上开发的应用程序,通常不能直接应用到另一种单片机芯片上,如果进行程序的移植,难度也比较大。
与此同时,汇编语言开发的程序可读性较差,不容易理解,特别是当单片机应用系统的规模比较大时,汇编语言的编程工作量非常大,从而影响应用系统的开发效率。
相对而言,C51语言恰好可以克服汇编语言的一些缺欠。
例如,C51语言可读性好、可移植性高,与自然语言比较接近,并且相同功能的程序使用C51语句的数量要远小于汇编语句。
单片机原理与接口技术第3章
注意:
①目操可以是A、direct、Rn、@Ri中的任一个,源 操可以是A、direct、Rn、@Ri、#data中的任一 个。 ②#data不能作目操。 ③目操和源操不能同时出现Rn、@Ri。 ④目操和源操不能同时为A。 ⑤目操和源操可以同时为direct类型。 ⑥目操和源操数据长度应保持一致。
• 例如指令: MOVC A, @A+PC ; (A)←((A)+(PC)) MOVC A,@A+DPTR ; (A)←((A)+(DPTR)) 这两个指令中,第2操作数采用了基址寄 存器加变址寄存器的间接寻址方式,其功 能是指定以A作为变址寄存器,PC(或 DPTR)作为基址寄存器,两者内容相加所 得结果作为参与操作的数据的存储单元地 址,把此单位中的内容送到累加器A中 。
(2)以Rn为目的地址的指令 指令 操作 MOV Rn, A (Rn)←(A) MOV Rn, direct (Rn)←(direct) MOV Rn, #data (Rn)←data 这组指令的功能是将源操作数送入当前 工作寄存器区R0~R7中的某一寄存器中。 源操作数的寻址方式分别为隐含寻址、直 接寻址和立即寻址方式。
(4)注释:该字段不是汇编语言的功能部分
,只增加程序的可读性。注释前要加“;”
MCS-51单片机指令系统具有111条指令
49条单字节指令
按指令代码的 字节数分
45条双字节指令 17条三字节指令
64条单机器周期指令 按指令的执 行时间分 45条双周期指令 2条(乘,除指令)四 机器周期指令 指令系统优点:存储效率高 执行速度快
3. 乘法指令 MUL
指令 MUL AB 这条指令是把累加器A和寄存器B中的8位无符 号二进制数相乘,16位乘积的低8位留在累加器A 中,高8位存放在寄存器B中。 如果乘积大于0FFH,则OV=1,否则OV=0。 CY标志总是被清0。 设(A)=50H,(B)=0A0H,执行指令:MUL AB 结果:(B)=32H,(A)=00H(即积为3200H),OV= 1,CY=0。
计算机接口技术课件 第三章 MCS-51单片机汇编语言与程序设计基础
例2:编制一段程序,要求在端口线 :编制一段程序,要求在端口线P1.0,P1.1上分别产生周期为 , 上分别产生周期为 200us和400us的方波.设单片机的外接频率为 的方波. 和 的方波 设单片机的外接频率为12MHz. . 分析:利用定时器产生方波,将定时器设置成为工作方式 , 分析:利用定时器产生方波,将定时器设置成为工作方式3,将寄 存器T0定时 定时100us,T1定时 定时200us,达到定时时间后引起中断,在中 存器 定时 , 定时 ,达到定时时间后引起中断, 断服务程序中各自将P1.0和P1.1引脚取反. 引脚取反. 断服务程序中各自将 和 引脚取反 定时器预设值的设置: 定时器预设值的设置: 单片机的晶体振荡频率为12MHz,计时器的计时频率为1MHz,机 单片机的晶体振荡频率为 ,计时器的计时频率为 , 器周期为1us. 定时 定时100us,因此寄存器 需要计数 需要计数100次 器周期为 . T0定时 ,因此寄存器T0需要计数 次 ,其预 置值为64H+1=9CH. T1定时 定时200us,因此寄存器 需要计数 需要计数200次 置值为 . 定时 ,因此寄存器T1需要计数 次 其预置值为C8H+1=38H. ,其预置值为 . 定时器T0,T1的工作方式设置: 的工作方式设置: 定时器 的工作方式设置 T0采用工作方式 ,因此 采用工作方式3,因此TMOD寄存器的值设置为 寄存器的值设置为#22H. 采用工作方式 寄存器的值设置为 . 定时器T0,T1的控制设置: 的控制设置: 定时器 的控制设置 打开T0, ;要求TCON寄存器的值设置为 寄存器的值设置为#50H. 打开 ,T1;要求 寄存器的值设置为 .
定义存储区域的大小. 6. DS —定义存储区域的大小. 定义存储区域的大小 例: ORG 0350H DS 3
第三章MCS51系列单片机指令系统及汇编语言程序设计
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)
3单片机原理与应用(同济出版社魏鸿磊):第三章 MCS-51单片机结构与原理
送。 中断控制系统: 用于响应中断源的中断请求; 时钟电路:为单片机产生时钟脉冲序列,使其正常工作。
DATE: 2019/6/25
PAGE: 5
二、8051单片机引脚
电 源 引 脚 : VCC (40 脚 ) 和 VSS(20脚)分别接供电电源正极 和负极。
P2口结构与工作原理
P2口可以作为通用I/O口 使用,也可在存储器扩展时 作高位地址线使用。
当P2口作为高位地址线使 用时,多路转换开关接通“ 地址”端,从而在P2口的引 脚上输出高8位地址(A8-A15 )。
当P2口作为通用的I/O口 使用时多路转换开关接锁存 器输出端,输出过程与P1口 基本相同。
PAGE: 15
三、并行输入/输出端口结构
P3口做通用I/O口使用
输 出 : “ 第 二 输 出 功 能 ” 信 号线保持高电平,使与非门的 输出由锁存器输出端决定,使 输出信号由锁存器经与非门控 制场效应管的通断得到。
输入:锁存器置“1”且使“ 第二输出功能”线保持高电平 ,从而使场效应管截止,使输 入 数 据 通 过 三 态 缓 冲 器 G2 的 输 出端得到。
由于P1口只能作为通用的I/O 口使用,其输入和输出都由总 线 经 锁 存 器 控 制 , 过 程 与 P0 口 相似。
由 于 电 路 中 已 有 上 拉 电 阻 , 使引脚可获得高电平输出,所 以在使用时无需再外接上拉电 阻。
DATE: 2019/6/25
PAGE: 13
三、并行输入/输出端口结构
4.EA的作用是什么?
5.RST 的作用是什么?
6.ALE 的作用是什么?
第3章51系列单片机程序设计(C语言部分)
idata
间接寻址片内数据存储区,可访问片内全部RAM地址空间(256字节)
pdata
分页寻址片外数据存储区(256字节)由MOV @Ri访问(i=0,1)
xdata
片外数据存储区(64 KB)由MOVX @DPTR访问
code
程序存储器64 KB空间,由MOVC @DPTR访问
第3章 51系列单片机程序设计(C部分)
/* Ary37定义为abry[3]的第7位 */
第3章 51系列单片机程序设计(C部分)
3.5 数 组
数组:数组是一组类型相同 有序数据的集合。用数组名 和下标来唯一确定数组中的 元素。
第3章 51系列单片机程序设计(C部分)
3.5.1 一维数组
一、一维数组的定义 形式:类型说明符 数组名 [常量表达式]
使用C51进行编程时,MCS-51片内的I/O口与片外扩展的I/O可以统一在一个头文 件中定义,也可以在程序中(一般在开始的位置)进行定义。
对于MCS-51片内I/O口按特殊功能寄存器方法定义。 例如:
sfr P0=0x80 ; /* 定义P0口,地址为80H */ sfr P1=0x90 ; /* 定义P1口,地址为90H */
第3章 51系列单片机程序设计(C部分)
3.4.3 C51数据的存储类型与MCS-51存储结构
表 3.4.2 C51存储类型与MCS-51存储空间的对应关系
存储类型 与存储空间的对应关系
data
直接寻址片内数据存储区,访问速度快(128字节)
bdata
可位寻址片内数据存储区,允许位与字节混合访问(16字节)
据 浮点型(float) 类
型 指针类型
详细见表3.4.1
单片机原理及应用(第3版)参考答案
单片机原理及应用(第3版)参考答案《单片机原理及应用(第3版)》习题参考答案姜志海黄玉清刘连鑫编著电子工业出版社目录第1章概述 ............................................................. 2 第2章 MCS,51系列单片机硬件结构 . (5)第3章 MCS,51系列单片机指令系统 .......................................10 第4章 MCS,51系列单片机汇编语言程序设计 ............................... 13 第5章 MCS,51系列单片机硬件资源的应用 ................................. 18 第6章 MCS,51系列单片机并行扩展接口技术 ............................... 23 第7章 MCS,51系列单片机串行总线扩展技术 ............................... 28 第8章单片机应用系统设计 . (30)第1章概述1(简述微型计算机的结构及各部分的作用微型计算机在硬件上由运算器、控制器、存储器、输入设备及输出设备五大部分组成。
运算器是计算机处理信息的主要部分;控制器控制计算机各部件自动地、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序;输出设备将计算机的处理结果用数字、图形等形式表示出来。
通常把运算器、控制器、存储器这三部分称为计算机的主机,而输入、输出设备则称为计算机的外部设备(简称外设)。
由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元CPU(Central Process Unit)。
2(微处理器、微型计算机、微型计算机系统有什么联系与区别,微处理器是利用微电子技术将计算机的核心部件(运算器和控制器)集中做在一块集成电路上的一个独立芯片。
第3章 MCS-51单片机指令系统
(1)内部数据存储器的低128个字节单元 (00H~7FH)。例: MOV A, 40H ,表示把内 部RAM 40H单元的内容传送给A。 假设40H单元中的内容为2BH,结果是将直接地 址40H单元中的数据2BH传送到累加器A中。
第三章 MCS-51单片机指令系统
3.2.2 直接寻址
(2)特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问。 对于特殊功能寄存器,在助记符指令中可以直接 用符号来代替地址。例: MOV A, P0 ,表示把 P0口(地址为80H)的内容传送给A。
3.3.1 内部数据存储器传送指令
1.立即数传送指令
MOV A,#data ;A←data MOV Rn,#data ;Rn←data,n=0~7 MOV direct,#data ;direct←data MOV @Ri,#data ;(Ri)←data,i=0,1 MOV DPTR,#data16 ;DPTR←data16 前四条指令将8位立即数传送到指定的存储单元中。 最后一条指令将16位立即数传送到数据指针 DPTR中,其中高8位送入DPH,低8位送入DPL。
(3)三字节指令 编码格式为:
例如数据传送指令MOV 20H,#3AH的编码格式为:
3.2 寻址方式
第三章 MCS-51单片机指令系统
所谓寻址,就是寻找操作数的真正地址,寻址方 式,就是指寻找操作数地址的方式。
在用汇编语言编程时,数据的存放、传送、运算 都要通过指令来完成。 编程者必须自始至终都要 十分清楚操作数的位置, 以及如何将它们传送到适 当的寄存器去参与运算。每一种计算机都具有多 种寻址方式。寻址方式的多少是反映指令系统优 劣的主要指标之一。
2. 汇编语言
汇编语言就是用助记符表示的指令,汇编语言与 机器语言一一对应。用汇编语言编写程序,每条 指令的意义一目了然,给程序的编写、阅读和修 改带来很大方便。而且用汇编语言编写的程序占 用内存少,执行速度快,尤其适用于实时应用场 合的程序设计。因此,在单片机应用系统中主要 是用汇编语言来编写程序。 汇编语言的缺点:缺乏通用性,程序不易移植, 是一种面向机器的低级语言。使用汇编语言编写 程序时,必须熟悉机器的指令系统、寻址方式、 寄存器的设置和使用方法。每种计算机系统都有 它自己的汇编语言。不同计算机的汇编语言之间 不能通用。
51单片机C语言编程入门(详讲版)
中国科学技术大学业余无线电协会编目 录§1 前言 (1)§2 单片机简介 (2)2.1 数字电路简介 (2)2.2 MCS-51单片机简介 (2)2.3 Easy 51 Kit Pro简介 (5)2.4 Easy 51 Kit Pro电路功能分析 (5)§3 MCS-51单片机的C语言编程 (8)3.1 汇编语言 (8)3.2 建立你的第一个C项目 (8)3.3 生成hex文件 (12)3.4 Keil C语言 (14)3.5 单片机I/O (18)3.6 中断 (25)3.7 定时器/计数器 (27)3.8 定时器的应用举例 (29)3.9 外部中断 (34)3.10 串行通信 (38)3.11 定时器2 (43)3.12 看门狗 (47)3.13 空闲模式和掉电模式 (50)§4 MCS-51单片机C语言编程应用进阶 (51)4.1 扫描式键盘 (51)4.2 EEPROM芯片AT93C46的读写 (55)4.3 Keil C的高级使用 (63)§5 编写高质量的单片机C程序 (64)5.1 文件结构 (64)5.2 程序的版式 (66)5.3 单片机程序命名规则与变量选择 (70)5.4 表达式和基本语句 (73)5.5 函数设计 (77)5.6 单片机程序框架 (79)附图:Easy 51 Kit Pro电路图(最小系统板) (80)附图:Easy 51 Kit Pro电路图(学习板) (81)§1 前言什么是单片机,目前还没有一个确切的定义。
普通认为单片机是将CPU、RAM、ROM、定时器/计数器以及输入输出(I/O)接口电路等计算机主要部件集成在一块芯片上,这样所组成的芯片级微型计算机称为单片微型计算机(Single Chip Microcomputer)。
简称为单片微机或单片机。
利用单片机程序,可以实现对硬件系统的小型化的智能控制。
第3章MCS-51单片机指令系统
第3章MCS-51单片机指令系统3.1概述3.1.1指令格式3.1.2指令的三种表示形式3.1.3指令的字节数1. 单字节指令(49条)图3-1 MOVA,Rn指令的格式2单片机原理及其接口技术(第2版)2. 双字节指令(46条)3. 三字节指令(16条)3.1.4指令的分类1. 数据传送指令(28条)2. 算术运算指令(24条)3. 逻辑操作和环移指令(25条)4. 控制转移指令(17条)5. 位操作指令(17条)3.1.5指令系统综述1. 指令系统中所用符号的说明2. 指令对标志位的影响3.2寻址方式3.2.1寄存器寻址图3-2寄存器寻址示意图单片机原理及其接口技术(第2版) 3 3.2.2直接寻址图3-3直接寻址示意图3.2.3立即寻址3.2.4寄存器间址图3-4寄存器间址寻址示意图3.2.5变址寻址图3-5变址寻址示意图4单片机原理及其接口技术(第2版)3.2.6相对寻址图3-6相对寻址示意图3.2.7位寻址3.3数据传送指令3.3.1内部数据传送指令(15条)1. 立即寻址型传送指令2. 直接寻址型传送指令3. 寄存器寻址型传送指令4. 寄存器间址型传送指令5. 内部数据传送指令的使用图3-7 8×C552/8051指令的数据传送方式单片机原理及其接口技术(第2版) 5 3.3.2外部数据传送指令(7条)1. 16位数传送指令2. 外部ROM的字节传送指令图3-8 0~9平方值表3. 外部RAM的字节传送指令3.3.3堆栈操作指令(2条)图3-9例3.8的堆栈变化示意图6单片机原理及其接口技术(第2版)3.3.4数据交换指令(4条)3.4算术与逻辑运算和移位指令3.4.1算术运算指令(24条)1. 加法指令2. 减法指令3. 十进制调整指令4. 乘法和除法指令3.4.2逻辑运算指令(20条)1. 逻辑与运算指令2. 逻辑或指令3. 逻辑异或指令4. 累加器清零和取反指令3.4.3移位指令(5条)单片机原理及其接口技术(第2版)7图3-10例3.26附图3.5控制转移和位操作指令3.5.1控制转移指令(17条)1. 无条件转移指令图3-11 AJMP指令转移范围8单片机原理及其接口技术(第2版)图3-12例3.29附图图3-13带符号数的比较方法3. 子程序调用和返回指令图3-14二级子程序嵌套及断点地址存放单片机原理及其接口技术(第2版)9图3-15例3.33附图10单片机原理及其接口技术(第2版)4. 空操作指令3.5.2位操作指令(17条)1. 位传送指令2. 位置位和位清零指令3. 位运算指令4. 位控制转移指令习题与思考题3.1指令通常有哪三种表示形式?各有什么特点?3. 2 MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?3. 3 MCS-51共有哪七种寻址方式?各有什么特点?3. 4指出下列每条指令源操作数的寻址方式和功能。
第3,4章--C51
3.1 MCS51的编程语言
(3) C语言本身不依赖于机器硬件系统,易于将程序从不同的 单片机系统中进行移植。 3. Keil C51与ASM51相比,有如下优点:
(1)对单片机的指令系统不要求了解,仅要求对8051 的存贮 器结构有初步了解; (2)寄存器分配、不同存贮器的寻址及数据类型等细节可由编 译器管理; (3)程序有规范的结构,可分成不同的函数,这种方式可使程 序结构化; (4)具有将可变的选择与特殊操作组合在一起的能力,改善了 程序的可读性; (5)提供的库包含许多标准子程序,有较强的数据处理能力; (6)由于具有方便的模块化编程技术,已编的程序容易移植。
3.2 Keil C51编程语言
5. C51的运算符和控制语句(与C语言相同)
运算符:
算术运算: +
- *
/ % (加 ,减, 乘, 除,求余) (测试等于, 测试不等于) (逻辑与, 逻辑或 , 逻辑非 ) (位右移, 位左移) (按位与, 按位或)
关系运算: > >= < <= (大于,大于等于,小于,小于等于) == != 逻辑运算: && || ! 移位: 位逻辑 >> << & |
char data x1[4],x2=0,x3; //定义char型 x1数组、变量x2(初值=0) 和x3,位于片内RAM。
Unsigned int xdata parm1,xArry[4]={0x1234,1234,0xa22,0xb33,};
定义无符号整型变量parm1、xArry数组并赋初值,变量位于片外RAM。
void Delayms (uint x) {unsigned int n; for( ;x > 0; x--) { for(n=0;n<123;n++) { ; } } } //延时函数
MCS-51单片机原理和接口技术习题参考答案
MCS-51单片机原理和接口技术习题参考答案第一章绪论1-1解答:第一台计算机的研制目的是为了计算复杂的数学难题。
它的特点是:计算机字长为12位,运算速度为5000次/,使用18800个电子管,1500个继电器,占地面积为150m2,重达30t,其造价为100多万美元。
它的诞生,标志着人类文明进入了一个新的历史阶段。
1-2解答:单片微型计算机简称单片机。
一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-3解答:单片机的发展大致经历了四个阶段:第一阶段(1970—1974年),为4位单片机阶段;第二阶段(1974—1978年),为低中档8位单片机阶段;第三阶段(1978—1983年),为高档8位单片机阶段;第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。
1-4解答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;Motorola公司的6801、6802、6803、6805、68HC11系列产品;Zilog公司的Z8、Super8系列产品;Atmel公司的AT89系列产品;Fairchild公司的F8和3870系列产品;TI公司的TMS7000系列产品;NS公司的NS8070系列产品;NEC公司的μCOM87(μPD7800)系列产品;National公司的MN6800系列产品;Hitachi公司的HD6301、HD63L05、HD6305。
1-5解答:(1)8031/8051/8751三种型号,称为8051子系列。
8031片内没有ROM,使用时需在片外接EPROM。
8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。
8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。
(2)8032A/8052A/8752A是8031/8051/8751的增强型,称为8052子系列。
单片机原理及接口技术课程考试大纲
《单片机原理及接口技术》课程考试大纲(电信)课程编号:1123623课程性质:专业方向选修课适用专业:电子信息工程考试对象:本科生一、课程考核目的:本课程的考核目的是:了解学生通过本课程的学习,掌握本学科基本理论、基础知识的状况,分析问题、解决问题的能力,以及科学的思维方法运用能力。
促进学生复习、巩固所学的知识。
二、课程考试方式及时间:本课程的考试均以闭卷考的形式进行,成绩加权求和,权值由院系规定。
考核成绩为百分制。
本课程不仅为后续课的学习打基础,而且对学生毕业后的工作,以及进一步学习将产生一定的影响。
考试时间一般规定为120分钟。
三、教学时数:54+18=72四、教材与参考书目:《单片机原理及其接口技术》(第1版),胡汉才编(著),清华大学出版社,2006年五、考核内容与考核要求:本考试大纲根据《单片机原理及接口技术》课程标准的教学要求,按照大学物理学科的理论知识体系,提出考核的内容和考核要求。
考核要求分为三个层次;了解、理解和掌握。
第一章单片计算机概述考核内容1. 微型计算机,单板机与单片机2. 单片机的开发与开发工具3. MCS-51单片机的结构特点4. MCS-51单片机应用特性考核要求1. 了解微型计算机,单板机与单片机2. 掌握单片机的开发与开发工具3. 了解MCS-51单片机的结构特点4. 了解MCS-51单片机应用特性第二章MCS-51单片机的组成及结构分析考核内容1. MCS-51单片机的内部结构框图2. CPU结构3. 存贮器空间及存贮器4. I/O接口及相应的特殊功能寄存器5. MCS-51单片机的引脚信号和CPU时序考核要求1. 知道MCS-51单片机的内部结构框图2. 了解CPU结构3. 掌握存贮器空间及存贮器4. 掌握I/O接口及相应的特殊功能寄存器5. 了解MCS-51单片机的引脚信号和CPU时序第三章MCS-51单片机C语言程序设计考核内容:1.单片机C语言概述2.C51数据类型与运算3.C51流程控制语句4.C51指针5.C51函数考核要求:1.了解单片机C语言概述2.掌握C51数据类型与运算3.掌握C51流程控制语句4.知道C51指针5.掌握C51函数第四章定时/计算器考核内容1. 定时/计算器的结构及工作原理2. 定时/计算器方式和控制寄存器3. 定时/计算器的工作方式4. 定时/计算器编程举例考核要求1. 了解定时/计算器的结构及工作原理2. 知道定时/计算器方式和控制寄存器3. 知道定时/计算器的工作方式第五章串行通讯及其接口考核内容1. 串行通讯的一般概念2. MCS-51的串行通讯接口3. 串行通讯接口应用举例考核要求1. 了解串行通讯的一般概念2. 知道MCS-51的串行通讯接口3. 知道串行通讯接口应用举例第六章中断考核内容1. 中断的概念2. MCS-51单片机的中断系统及其管理3. 单片机响应中断的条件及响应过程4. 关于外部中断5. 中断程序的编制举例考核要求1. 了解中断的概念2. 知道MCS-51单片机的中断系统及其管理3. 知道单片机响应中断的条件及响应过程4. 知道关于外部中断5. 知道中断程序的编制举例六、题型结构填空、选择、判断、简答教研室名称:电子信息工程执笔人:彭世林审核人:彭世林审定人:付文羽编写日期:2010.5.9修订时间:2011.3.14《单片机原理及接口技术》课程考试大纲(应电)课程编号:1112622课程性质:专业基础必修课适用专业:应用电子技术考试对象:本科生一、课程考核目的:本课程的考核目的是:了解学生通过本课程的学习,掌握本学科基本理论、基础知识的状况,分析问题、解决问题的能力,以及科学的思维方法运用能力。
单片机原理及应用(C语言版)(周国运)习题答案
单⽚机原理及应⽤(C语⾔版)(周国运)习题答案单⽚机原理及应⽤(C语⾔版)思考题与习题答案第1章单⽚机概述1.什么是单⽚机?答:将中央处理器(Central Processing Unit,CPU)、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接⼝电路等微型计算机的主要部件集成在⼀块芯⽚上,使其具有计算机的基本功能,就叫做单⽚微型计算机(Single Chip Micro Computer,SCMC),简称单⽚机。
由于单⽚机的指令功能是按照⼯业控制的要求设计,所以单⽚机⼜称为微控制器(Micro Controller Unit,MCU)。
2.单⽚机有哪些特点?答: (1)单⽚机的存储器ROM和RAM是严格区分的。
ROM称为程序存储器,只存放程序、固定常数及数据表格。
RAM则为数据存储器,⽤作⼯作区及存放⽤户数据。
(2)采⽤⾯向控制的指令系统。
(3)单⽚机的I/O引脚通常是多功能的。
(4)单⽚机的外部扩展能⼒强。
(5)单⽚机体积⼩,成本低,运⽤灵活,易于产品化。
(6)⾯向控制,能有针对性地解决从简单到复杂的各类控制任务,因⽽能获得最佳的性能价格⽐。
(7)抗⼲扰能⼒强,适⽤温度范围宽。
(8)可以⽅便地实现多机和分布式控制,使整个控制系统的效率和可靠性⼤为提⾼。
3.单⽚机的应⽤有哪些?答: (1)⼯业控制。
单⽚机可以构成各种⼯业控制系统、数据采集系统等。
如数控机床、⾃动⽣产线控制、电机控制、测控系统等。
(2)仪器仪表。
如智能仪表、医疗器械、数字⽰波器等。
(3)计算机外部设备与智能接⼝。
如图形终端机、传真机、复印机、打印机、绘图仪、磁盘/磁带机、智能终端机等。
(4)商⽤产品。
如⾃动售货机、电⼦收款机、电⼦秤等。
(5)家⽤电器。
如微波炉、电视机、空调、洗⾐机、录像机、⾳响设备等。
(6)消费类电⼦产品。
(7)通讯设备和⽹络设备。
(8)⼉童智能玩具。
(9)汽车、建筑机械、飞机等⼤型机械设备。
(10)智能楼宇设备。
单片机C语言-第3章51单片机P0-P3口的C51编程3
3.3.3 多个按钮型开关—键盘
2.独立式键盘接口技术
当按键的数量比较少(≤8)时,可采用独立式按键硬 件结构。独立式按键是指直接采用一根 I/O口线构成的 单个按键电路。每个独立式按键单独占用一根I/O口线, 每根I/O口线上的按键的工作状态不会影响其他I/O口线 的工作状态。
• 分析:
• 相当于S1为一个控制开关,控制着 灯的亮、灭闪烁;
• 与例题3-8不同。定义一个位单元, 按键每动作一次,该位单元取反:该单 元为0时,灯全亮,该单元为1时,灯闪 烁。
• include<reg51.h> • #define uchar unsigned char • #define uint unsigned int • sbit S1=P3^2; • bit key=0; //定义一个位,存储按键的动作(偶、奇) • void dlxms( uint xms) • { uint t1, t2; • for( t1=0; t1<xms; t1++) • for( t2=0; t2<110; t2++); •}
• #define uint unsigned int
• uchar data keycode=8;
//键值的初值设为8
• uchar data dir_buf;
//显示缓冲区
• code uchar dirtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xbf};//显 示的代码表
• sbit K2=P1^6;
第3章MCS51单片机指令系统1PPT课件
返回目录
43.1 指令系统简介------指令的两种格式
要让计算机工作,就得向计算机发出指令。
指令的格式是机器码指令格式, 如:75905B ,即数字格式。
另一种指令格式,即汇编指令格式, 如:MOV P1, #5BH
2020/9/26
张兴忠制作:
返回目录
5
3.1 指令系统简介
-----MCS-51汇编语言指令格式
地址的存储单元的内容。 →:表示数据传送方向。
2020/9/26
张兴忠制作:
返回目录
15
3.1.4 寻址方式
如何找到参与运算的操作数据或数据所在的 地址称为寻址方式。所以寻址方式是在地址范围 内如何找到所需要的操作数的地址。
MCS-51指令系统的寻址方式主要有立即寻址、 直接寻址、寄存器寻址、寄存器间接寻址、基址 加变址寻址、相对寻址和位寻址等七种。
单片机原理与接口技术
第3章 MCS-51单片机 指令系统
2020/9/26
张兴忠制作:
返回目录
1
本章教学要求
第3章 MCS-51单片机指令系统
熟悉MCS-51单片机指令系统的分类、格式; 熟悉MCS-51指令系统的七种寻址方式; 掌握MCS-51指令系统的数据传送、算术运算、逻
辑运算、转移操作、布尔运算等指令的功能;
1) 指令执行时间短。只需1个机器周期的指令有64 条,2个机器周期的指令有45条,而4个机器周 期的指令仅有2条(既乘法和除法指令)。
2) 指令字节少。单字节指令有49条,双字节指令 有46条,三字节指令有16条。
3) 位操作指令极为丰富,这体现了MCS-51单片机 具有面向控制的特点。
2020/9/26
Rn:表示当前工作寄存器R0~R7中的一个。 @Ri:表示寄存器间接寻址,常作间接寻址的地
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C51数据的存储类型 数据的存储类型
在讨论C51的数据类型的时候,必须理解数据的存储类型 的数据类型的时候,必须理解数据的存储类型 在讨论 的数据类型的时候 和它与8051单片机存储器结构的关系 单片机存储器结构的关系. 和它与 单片机存储器结构的关系
存储类型 data bdata idata pdata xdata code 说明 直接寻址的片内数据存储器(128B),访问速度最快 可位寻址的片内数据存储器(16B),允许位和字节混合访问 间接访问的片内数据存储器(256B),全部片内RAM空间 分页访问的片外数据存储器(256B) 片外数据存储器(64KB),访问速度相对比较慢 程序存储器(64KB),只读
C51的数据类型 C51的数据类型
数据类型 bit unsigned char (signed) char unsigned int (signed) int unsigned long (signed) long float double * (一般指针) 长度 1 bit 8 bit 8 bit 16 bit 16 bit 32 bit 32 bit 32 bit 64 bit 1~3字节 0,1 0 ~ 255 -128 ~ 127 0 ~ 65535 -32768 ~ 32767 0 ~ -38 ~ ±3.40e+38 (6位) ±1.7e-38 ~ ±3.40e+38 (10位) 存储空间地址 值域
2、关系运算 4、位操作运算
C51的流程控制 C51的流程控制
(略)
二、MCS-51单片机接口技术
例:用单片机设计一台数控方波发生器
二、MCS-51单片机接口技术
2-0 并行IO的基本应用 并行IO的基本应用 2-1 键盘控制接口 2-2 显示器控制接口 2-3 定时/计数器的使用 定时/ 2-4 串行通信接口 2-5 外部总线接口 2-6 外部总线接口的应用
复杂控制: 复杂控制:
并行数据IO控制(数码管、液晶、键盘等) 并行数据 控制(数码管、液晶、键盘等) 控制 串行数据IO控制( 总线模拟 总线模拟、 总线模拟等) 串行数据 控制(IIC总线模拟、SPI总线模拟等) 控制 总线模拟等 第二功能的使用(通用数据总线、外部中断输入等) 第二功能的使用(通用数据总线、外部中断输入等)
758014 9000A2 E4 93 F590 8508A0
P0 = constA; MOV P0(0x80),#0x14 P1 = constB; MOV DPTR,#constB(0x00A2) CLR A MOVC A,@A+DPTR MOV P1(0x90),A P2 = constC; MOV P2(0xA0),constC(0x08)
1、并行IO的应用概述 注意事项: 注意事项:
并行IO主要用于数字量(开关量)的输入输出, 并行 主要用于数字量(开关量)的输入输出,逻辑电平 主要用于数字量 电平, 接近于电源电压, 接近于0V。 为CMOS电平,即‘1’接近于电源电压,‘0’接近于 。 电平 接近于电源电压 接近于 使用并行IO时应当注意IO口的驱动能力! 使用并行IO时应当注意IO口的驱动能力! IO时应当注意IO口的驱动能力 1、IO口的允许电压最大为电源电压,一般为 ; 、 口的允许电压最大为电源电压 一般为5V; 口的允许电压最大为电源电压, 2、每个IO口的输出驱动电流,一般不能超过 、每个 口的输出驱动电流 一般不能超过15mA; 口的输出驱动电流, ; 3、当被控制的设备(如灯泡,继电器等)需要更大的电 、当被控制的设备(如灯泡,继电器等) 压或电流时,需要外接驱动电路或者驱动芯片; 压或电流时,需要外接驱动电路或者驱动芯片; 当输入数字量信号的高电平超过或 低于5V时(如工 低于 时 业常用12V、24V传感器),需使用适当的电平转换电路。 传感器),需使用适当的电平转换电路。 业常用 、 传感器),需使用适当的电平转换电路
位变量的使用
不能定义成一个指针, 如不能定义:bit 如不能定义:bit *pointer; 不存在位数组 如不能定义:bit 如不能定义:bit b_array[ ] 位变量定义时,存储类型只允许为data、 位变量定义时,存储类型只允许为data、 bdata或者idata,如果将位变量的存储类型 bdata或者idata,如果将位变量的存储类型 定义成其它类型都将导致编译出错。
单片机与应用
第三章 MCS-51单片机的 MCS-51单片机的 接口技术与C 接口技术与C语言编程
华强 2009-2010(2)
一、MCS-51单片机的C语言编程
8051单片机支持的编程语言:
汇编语言 PL/M语言 BASIC语言 C语言 C++语言
1-1、C语言与汇编语言相比,有如下优点:
对单片机的指令系统不要求了解,仅要求对8051的存 对单片机的指令系统不要求了解,仅要求对8051的存 8051 储器结构有一定了解; 储器结构有一定了解; 寄存器分配、不同存储器的寻址及数据类型等细节可 寄存器分配、 由编译器管理; 由编译器管理; 程序有规范的结构,可分成不同的函数, 程序有规范的结构,可分成不同的函数,这种方式可 使程序结构化; 使程序结构化; 具有将可变的选择与特殊操作组合在一起的能力, 具有将可变的选择与特殊操作组合在一起的能力,改 善了程序的可读性; 善了程序的可读性; 提供的库包含许多标准子程序, 提供的库包含许多标准子程序,具有较强的数据处理 能力; 能力; 由于具有方便的模块化编程技术, 由于具有方便的模块化编程技术,使已编好程序可容 易地移植; 易地移植;
C51程序大体上是 若干函数的集合
头文件(一个或若干个) 头文件(一个或若干个) 函数声明或定义 库函数或用户自定义的函数 可以有若干个
主函数 程序的入口
函数名固定, 函数名固定,且与书写的位置无关
有且仅有一个
C语言编程的三大要素
数据 数据类型、数据结构、存储类型 运算 算术运算、关系运算、逻辑运算、位操作 控制 顺序结构、选择结构、循环结构、函数
1-2、编译器、开发套件和 IDE
(1)编译器:由源代码文件生成目标文件
8051单片机所使用的 语言编译器简称为 Cx51 单片机所使用的C语言编译器简称为 单片机所使用的 KEIL C51
(2)开发套件:包含了编译器、链接器等开发工具的组合包 包含了编译器、
例如包含Cx51、Ax51、BL51、LIB51、OH51、RTX51等 例如包含Cx51、Ax51、BL51、LIB51、OH51、RTX51等
C51的运算符 C51的运算符
1、算术运算 3、逻辑运算 循环移位指令? #include <intrins.h>
extern unsigned char extern unsigned char extern unsigned int extern unsigned int extern unsigned long extern unsigned long _cror_ _crol_ _iror_ _irol_ _lror_ _lrol_ (unsigned char, unsigned char); (unsigned char, unsigned char); (unsigned int, unsigned char); (unsigned int, unsigned char); (unsigned long, unsigned char); (unsigned long, unsigned char);
常量和变量
常量 – 又称为标量,常量的值在程序执行过程中不能改变。 又称为标量,常量的值在程序执行过程中不能改变。 在C51中常量的定义有3种方式: C51中常量的定义有3 符号常量(不是严格意义上的常量,只是一个宏) 使用 #define 语句定义 定义在ROM里的常量 定义在ROM里的常量 使用“code” 使用“code”关键字定义的数据 定义在RAM里的常量 定义在RAM里的常量 使用“const” 使用“const”关键字定义的数据
char 数据类型
单片机应用中ASCII字符和字符串的使用比较少(因 单片机应用中ASCII字符和字符串的使用比较少(因 为很少需要大量的文本信息),因此在单片机应用中定 义为 unsigned char 和 char 的变量常用来表示数值。
数据类型的使用
单片机系统总存储空间往往比较有限,因此在实际 使用中应注意节约存储空间; 对于8位单片机,8 对于8位单片机,8位的数据类型是运算最快的;而 对于16位单片机,8位的数据和16位的数据可能运算速 对于16位单片机,8位的数据和16位的数据可能运算速 度是一样的。
常量和变量
在C51中常量的使用: C51中常量的使用:
#include <reg51.h> ① #define constA 20 ② unsigned char code constB = 20; ③ unsigned char const constC = 20;
9: C:0x008F 10: C:0x0092 C:0x0095 C:0x0096 C:0x0097 11: C:0x0099
是一个宏,在编译时常被当作指令的立即数。
2、定义在ROM中的常量(常用) 、定义在ROM中的常量(常用)
存放在ROM中,掉电不丢失,访问需要MOVC指令, 和16位地址,访问速度较慢。
3、定义在RAM中的常量 、定义在RAM中的常量
存放在RAM中,访问较快,但占用RAM资源,掉电 丢失,需要在单片机上电时进行初始化。
常量和变量
在C51中常量的使用: C51中常量的使用:
#include <reg51.h> ① #define constA 20 ② unsigned char code constB = 20; ③ unsigned char const constC = 20;