资源预览内容
第1页 / 共249页
第2页 / 共249页
第3页 / 共249页
第4页 / 共249页
第5页 / 共249页
第6页 / 共249页
第7页 / 共249页
第8页 / 共249页
第9页 / 共249页
第10页 / 共249页
亲,该文档总共249页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2.1 单个发光二极管的点亮 2.2 单个发光二极管的闪烁 2.3 单片机端口输出方波 2.4 习题,实例二 单片机的基本结构及指令系统,学习目标 理解单个发光二极管控制电路的构成、工作原理和电路中各元器件的作用,并对电路进行分析和计算。 理解51单片机最小系统和I/O口的内部结构,并正确使用51单片机I/O口资源。 正确使用MedWin软件的新建文件、保存、编辑程序、编译、单步调试、生成代码等功能。 正确理解程序设计框架、三种基本结构,掌握ORG、END、BIT等伪指令的使用方法。, 正确使用MOV传送指令、JB/JNB等位操作指令和LJMP/SJMP/AJMP等跳转指令。 正确使用Proteus仿真软件调试单个发光二极管的控制电路。 设计和制作单个发光二极管控制系统,对电路中的故障现象进行分析判断并加以解决,通过调试得到正确结果。,工作任务 测试单个发光二极管控制电路并对结果进行描述。 设计、制作与调试单个发光二极管控制系统。 撰写设计文档与测试报告。 通过实例一的学习,我们了解了单片机是什么以及使用它的基本方法,但是单片机的资源非常多,用途很广,利用它可以完成的工作也非常多,为了能够更好地学会怎样使用单片机,我们先从它的外围开始学习。,2.1 单个发光二极管的点亮 学习目标 理解单个发光二极管控制电路的构成、工作原理和电路中各元器件的作用,并能对电路进行分析和计算。 理解51单片机最小系统和I/O口的内部结构,并正确使用51单片机I/O口资源。 理解ORG、END、BIT等伪指令的含义并掌握其使用方法。 掌握位寻址方式,正确使用MOV传送指令。 工作任务 测试单个发光二极管控制电路并对结果进行描述。,2.1.1 数制与编码 单片机内部采用的数据系统和计算机的一样,都是二进制,因此,经由单片机计算与处理的数值、字母、符号等都必须采用二进制代码表示,而我们日常所熟悉的是十进制数,要想和单片机沟通,就必须用它能够理解的“话”,所以我们首先要弄清楚它们之间的联系,才能更好地应用。 注意:如果你已经掌握了计算机基础知识,那么你可以跳过这一节,直接学习下一节的内容。,1数制 数制即进位计数制,常用的数制有二进制、十进制和十六进制。在书写中为了以示区分,通常后缀用不同的字母来代表不同的进制,D(Decimal)代表十进制(可省略),B(Binary)代表二进制,H(Hexadecimal)代表十六进制。 1) 十进制 十进制数的两个基本特点如下: (1) 基数为10,每一位数是09这十个数码中的一个。 (2) 逢十进一,借一当十。,任意一个十进制数的按权展开式为 例如,十进制数326.75按权展开为,2) 二进制 二进制数的两个基本特点如下: (1) 基数为2,每一位数只能是0和1这两个数码中的一个。 (2) 逢二进一,借一当二。,任意一个二进制数的按权展开式为 例如,二进制数1101.01B按权展开为,3) 十六进制 十六进制数的两个基本特点如下: (1) 基数为16,每一位数是09、AF这十六个数码中的一个。 (2) 逢十六进一,借一当十六。 十六进制数中,A代表10,B代表11,C代表12,D代表13,E代表14,F代表15。,任意一个十六进制数的按权展开式为 例如,十六进制数4B3.2EH按权展开为 注意:编写程序代码需使用十六进制数时,如果数的第一个字符是字母,则字母前必须加上“0”,例如0AFH。,2数制间的转换 1) 二进制数、十六进制数转换为十进制数 二进制数、十六进制数转换为十进制数的方法很简单,只需将待转换的数按权展开,求出各加权系数的和,即可得到相对应的十进制数。 例2-1 将二进制数1100.01B转换成十进制数。 解: 例2-2 将十六进制数E2.4CH转换成十进制数。 解:,2) 十进制数转换为二进制数、十六进制数 十进制数转换为二进制数或十六进制数时,需要将整数部分和小数部分分开进行转换,再将结果组合在一起。其中,整数部分的转换方法是“除基数取余逆序排列”,小数部分的转换方法是“乘基数取整顺序排列”。下面通过具体数据举例进行说明。,例2-3 将十进制数14.375转换成二进制数。 解:(1) 将整数部分“14”用“除2取余逆序排列”,即将“14”逐次除以2,依次记下余数,直至商为0。其中,第一次除得的余数为二进制数整数部分的最低位,最后一次除得的余数为二进制数整数部分的最高位。 得到,14 = 1110B。,(2) 将小数部分“0.375”用“乘2取整顺序排列”,即将“0.375”逐次乘以2(每次都是小数部分进行乘2),依次记下积的整数部分,直至积的小数部分为0。其中,第一次记下的数为二进制数小数部分的最高位,最后一次记下的数为二进制数小数部分的最低位。 得到,0.375 = 0.011B。 因此,14.375 = 1110.011B。,例2-4 将十进制数205.296 875转换成十六进制数。 解:(1) 整数部分转换: 得到,205 = CDH。,(2) 小数部分转换: 得到,0.296 875 = 0.4CH。 因此,205.296 875 = CD.4CH。,3) 二进制数与十六进制数间的相互转换 将十六进制数中的每一位数码分别用4位二进制数码表示,即可将该十六进制数转换成二进制数,转换结果中最左侧和最右侧的0可以舍去;相反,将二进制数转换成十六进制数的方法是以小数点为界,分别向左、向右每4位二进制数码用一位十六进制数码表示,不足4位的以0补足,其中小数点左侧部分左补0,小数点右侧部分右补0。,例2-5 将十六进制数4A2.3CH转换成二进制数。 解: 因此,4A2.3CH9 9= 010010100010.001111B。,例2-6 将二进制数11001001011.010111B转换成十六进制数。 解: 因此,11001001011.010111B = 64B.5CH。 为了方便读者记忆,特将0F这十六个数码与二进制数、十进制数的对应关系制成表2-1。,3编码 我们将字和词语按照一定的规律组合起来就构成了能够随意表达心意的句子。二进制代码就是单片机的“字”和“词语”,将它们按一定规律编排,使每组代码具有特定含义,这就是单片机中的编码。下面介绍两种计算机中常用的编码。,1) 二十进制编码 二-十进制编码又称BCD(Binary Coded Decimal)编码,是指每一位十进制数码均用一组二进制数码来表示的编码。 每一位十进制数码(09)可用4位二进制数码表示,也可用8位二进制数码表示(高4位全为0),前者称为压缩BCD码,后者称为非压缩BCD码。对于压缩BCD码,根据编码的选取方法不同,又可分为8421码、5421码、余3码等。其中,最常用的是8421BCD码。表2-2列出了十进制数码与8421BCD码之间的对应关系。,注意:8421BCD码必须在右下角进行标注,否则易与二进制数混淆。例如,1000 0011作为8421BCD码的值是83,而作为二进制数时,其值为131。在以后介绍的实例中,我们经常会利用BCD码格式的数据,所以现在一定要弄明白。 例2-7 将十进制数47.85转换成8421BCD码,将8421BCD码1001 0111.0010转换成十进制数。 解:,2) 字符编码 计算机只能对二进制代码进行处理,因此,在计算机内各类字符(包括字母、数字和符号)也必须用二进制代码来表示。目前采用得最普遍的是美国国家信息交换标准字符码,即ASCII码(American Standard Code for Information Interchange),如表2-3所示。,ASCII码采用7位二进制代码对字符进行编码,共有128种不同的组合状态,可以对应表示128个字符,其中包括52个大、小写英文字母,10个阿拉伯数字,32个通用控制符号和34个专用符号。例如,阿拉伯数字8用ASCII码表示为0111000B(38H),大写英文字母Z用ASCII码表示为1011010B(5AH)。 虽然标准ASCII码是7位编码,但由于计算机基本处理单位为字节(1字节=8位),因此一般仍以一个字节来存放一个ASCII码。每一个字节中多余出来的一位(最高位)在计算机内部通常保持为0(在数据传输时可用作奇偶校验位)。 注意:单片机中最小的数据单位是位,8位二进制的数据为一个字节,16位二进制的数据为一个字(两个字节)。,4带符号数的表示 计算机中的所有信息都是用二进制代码表示的,有符号数也不例外,通常把数(1个字节)的最高位作为符号位,如图2-1所示。 在计算机中,带符号数有三种表示方法:原码、反码和补码。,图2-1 符号位指示图,1) 原码 正数的符号位用“0”表示,负数的符号位用“1”表示,这种表示法称为原码。例如: X1 = +18 = +0010010,则X1原 = 00010010 X2 =18 =0010010,在X2原 = 10010010 0的原码是不唯一的:+0原=00000000,0原 =10000000。 8位二进制原码所能表示的数值范围是:1111111101111111,即127+127。,2) 反码 如果是正数,则其反码与原码相同;如果是负数,则其反码除符号位为1外,其他各数位均将1转换为0,0转换为1。例如: +18原 = 00010010,则+18反 = 00010010 18原 = 10010010,则18反 = 11101101 +0原 = 00000000,则+0反 = 00000000 0原 = 10000000,则0反 = 11111111 8位二进制反码所能表示的数值范围是:1000000001111111,即-127+127。,3) 补码 如果是正数,则其补码与原码、反码相同;如果是负数,则其补码为反码加1。例如: 8位二进制补码所能表示的数值范围是:1000000001111111,即-128+127。,【练习】 项目:数的各进制形式的转换。 项目编号:EX2_1。 任务要求:将十进制数83分别转换为二进制、十六进制和8421BCD码。 转换结果: (83)D = (1010011)B = (53)H = (10000011)BCD,2.1.2 单个发光二极管控制电路的设计 8051虽然仅是一块芯片,但它包括了构成计算机的基本部件,因此可以说它是一台简单的计算机。 图2-2所示为MCS-51单片机的内部结构框图。图中,单片机内部各个部分(CPU、RAM、ROM、I/O接口等)由总线(共分为地址总线AB、数据总线DB、控制总线CB三大类)紧密地联系在一起。这就像我们人体的各个部位都通过神经受大脑的控制,心脏通过周身的血管将新鲜的血液送到身体的各个部位一样。,图2-2 MCS-51单片机的内部结构框图,1中央处理器CPU CPU相当于是单片机的大脑和心脏,负责控制、指挥和调度整个单元系统协调地工作,完成运算和控制输入/输出功能等操作。 1) MCS-51单片机CPU的功能部件 MCS-51单片机的CPU主要由运算器和控制器等部件组成,如图2-3所示。,图2-3 CPU的组成部件,(1) 运算器。单片机进行的一切算术/逻辑运算均在运算器内部完成。运算器主要包括ALU(算术逻辑部件)、累加器ACC、寄存器B、程序状态字寄存器PSW、暂存器TMP1和TMP2、处理位操作的布尔处理器等,如图2-3所示。以下对其中三个专用寄存器作简单介绍。 累加器ACC(Accumulator)。累加器ACC(助记符为A)是一个8位特殊功能寄存器,它在CPU中的工作最为频繁。MCS-51
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号