c51单片机浮点数及其汇编程序设计

c51单片机浮点数及其汇编程序设计

c51 单片机浮点数及其汇编程序设计

在单片机应用系统的数据处理过程中,经常会遇到小数的运算问题,如求解BCD 的增量算式、线性化处理等。因此,需要用二进制数来表示小数。表示小数的方法一般有两种,定点数和浮点数。定点数结构简单,与整数的运算过程相同,运算速度快。但随着所表示数的范围的扩大,其位数成倍增加,给运算和存储带来不便,而且也不能保证相对精度不变。浮点数的结构相对复杂,但它能够以固定的字节长度保持相对精度不变,用较少的字节表示很大的数的范围,便于存储和运算,在处理的数据范围较大和要求精度较高时,采用浮点数。

浮点数的概念

常用的科学计数法来表示一个十进制数如

l234.75=1.23475E3=1.23475 乘以103

在数据很大或很小时,采用科学计数避免了在有效数字前加0 来确定小数点的位置,突出了数据的有效数字的位数,简化了数据的表示。可以认为,科学计数法就是十进制数的浮点数表示方法。

在二进制效中,也可以用类似的方法来表示一个数,如

1234.75=10011010010.11(二进制)=0.1001101001011 乘以211

C51单片机C语言程序100例_Keil

目录 目录 (1) 函数的使用和熟悉********************************/ (4) 实例3:用单片机控制第一个灯亮 (4) 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 (4) 实例5:将P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 (5) 实例6:使用P3口流水点亮8位LED (5) 实例7:通过对P3口地址的操作流水点亮8位LED (6) 实例8:用不同数据类型控制灯闪烁时间 (7) 实例9:用P0口、P1口分别显示加法和减法运算结果 (8) 实例10:用P0、P1口显示乘法运算结果 (9) 实例11:用P1、P0口显示除法运算结果 (9) 实例12:用自增运算控制P0口8位LED流水花样 (10) 实例13:用P0口显示逻辑"与"运算结果 (10) 实例14:用P0口显示条件运算结果 (11) 实例15:用P0口显示按位"异或"运算结果 (11) 实例16:用P0显示左移运算结果 (11) 实例17:"万能逻辑电路"实验 (11) 实例18:用右移运算流水点亮P1口8位LED (12) 实例19:用if语句控制P0口8位LED的流水方向 (13) 实例20:用swtich语句的控制P0口8位LED的点亮状态 (13) 实例21:用for语句控制蜂鸣器鸣笛次数 (14) 实例22:用while语句控制LED (16) 实例23:用do-while语句控制P0口8位LED流水点亮 (16) 实例24:用字符型数组控制P0口8位LED流水点亮 (17) 实例25:用P0口显示字符串常量 (18) 实例26:用P0口显示指针运算结果 (19) 实例27:用指针数组控制P0口8位LED流水点亮 (19) 实例28:用数组的指针控制P0口8位LED流水点亮 (20) 实例29:用P0、P1口显示整型函数返回值 (21) 实例30:用有参函数控制P0口8位LED流水速度 (22) 实例31:用数组作函数参数控制流水花样 (23) 实例32:用指针作函数参数控制P0口8位LED流水点亮 (23) 实例33:用函数型指针控制P1口灯花样 (25) 实例34:用指针数组作为函数的参数显示多个字符串 (26) 实例35:字符函数ctype.h应用举例 (27) 实例36:内部函数intrins.h应用举例 (27) 实例37:标准函数stdlib.h应用举例 (28) 实例38:字符串函数string.h应用举例 (29) 实例39:宏定义应用举例2 (29) 1/192

单片机原理与应用及C51程序设计(第三版)(1、2、3、4、7章课后习题答案)

第一章: 1. 给出下列有符号数的原码、反码和补码(假设计算机字长为8位)。 +45 -89 -6 +112 答:【+45】原=00101101,【+45】反=00101101,【+45】补=00101101 【-89】原=11011001,【-89】反=10100110,【-89】补=10100111 【-6】原=10000110,【-6】反=11111001,【-6】补=11111010 【+112】原=01110000,【+112】反=01110000,【+112】补=01110000 2. 指明下列字符在计算机内部的表示形式。 AsENdfJFmdsv120 答:41H 73H 45H 4EH 64H 66H 4AH 46H 6DH 64H 73H 76H 31H 32H 30H 3.何谓微型计算机硬件?它由哪几部分组成?并简述各部分的作用。 答:微型计算机硬件由中央处理器、存储器、输入/输出设备和系统总线等组成,中央处理器由运算器和控制器组成,是微型计算机运算和控制中心。存储器是用来存放程序和数据的记忆装置。输人设备是向计算机输人原始数据和程序的装置。输出设备是计算机向外界输出信息的装置。I/O接口电路是外部设备和微型机之间传送信息的部件。总线是连接多个设备或功能部件的一簇公共信号线,它是计算机各组成部件之间信息交换的通道。微型计算机的各大功能部件通过总线相连。 4.简述8086CPU的内部结构。 答:8086微处理器的内部分为两个部分:执行单元(EU)和总线接口单元(BIU)。执行部件由运算器(ALU)、通用寄存器、标志寄存器和EU控制系统等组成。EU从BIU的指令队列中获得指令,然后执行该指令,完成指今所规定的操作。总线接口部件BIU由段寄存器、指令指针寄存器、地址形成逻辑、总线控制逻辑和指令队列等组成。总线接口部件负责从内部存储器的指定区域中取出指令送到指令队列中去排队。 5.何谓总线?总线按功能可分为哪几种? 答:总线是连接多个设备或功能部件的一簇公共信号线,它是计算机各组成部件之间信息交换的通道。总线功能来划分又可分为地址总线(Address Bus)、数据总线(Date Bus)和控制总线(Control Bus)三类。 6.内部存储器由哪几部分组成? 答:包括随机存储器(RAM)和只读存储器(ROM)。 7.简述8086中的存储器管理? 答:8086把1M空间分成若干块(称为“逻辑段”),各个逻辑段之间可在实际存储空间中完全分开,也可以部分重叠,甚至可以完全重叠。每个逻辑段容量不超过64K字节,这样就可用16位寄存器提供地址访问。一个存储单元的地址可由段基址和偏移地址组成,这个地址我们称为逻辑地址,一般表示为“段基址:偏移地址”。而1M存储空间中的20位地址称为物理地址。逻辑地址是程序中使用的地址,物理地址是访问存储器的实际地址。 物理地址=段基址×16 + 段内偏移地址 8.什么是接口电路?接口电路有何功能? 答:I/O接口电路是外部设备和微型机之间传送信息的部件。接口电路主要功能。(1) 数据的寄存和缓冲功能。(2) 信号转换功能。(3) 设备选择功能。(4) 外设的控制和监测功能。(5) 中断或DMA管理功能。(6) 可编程功能。 9.外部设备与CPU之间的数据传送方式常见有几种?各有什么特点? 答:外部设备与微机之间的信息传送传送方式一般有无条件传送方式、查询传送方式、中断控制方式等。无条件传送方式是指CPU直接和外部设备之间进行数据传送。查询传送方式又称为条件传送方式,是指CPU通过查询I/O设备的状态决定是否进行数据传输的方式。中断是一种使CPU暂停正在执行的程序而转去处理特殊事件的操作。即当外设的输入数据准备好,或输出设备可以接收数据时,便主动向CPU发出中断请求,CPU可中断正在执行的程序,转去执行为外设服务的操作,服务完毕,CPU再继续执行原来的程序。 10.什么是单片机? 答:单片机是把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成到一个集成电路芯片上形成的微型计算机。因而被称为单片微型计算机,简称为单片机。 11.和一般微型计算机相比,单片机有何特点? 答:主要特点如下: 1) 在存储器结构上,单片机的存储器采用哈佛(Harvard)结构 2) 在芯片引脚上,大部分采用分时复用技术 3) 在内部资源访问上,采用特殊功能寄存器(SFR)的形式

C51单片机编程基本知识

C51单片机编程基本知识 全文选段:该控制指令将C文件编译生成汇编文件(.SRC),该汇编文件可改名后,生成汇编.ASM文件,再用A51进行编译。 第三节 Keil C51软件包中的通用文件 在C51\LiB目录下有几个C源文件,这几个C源文件有非常重要的作用,对它们稍事修改,就可以用在自己的专用系统中。 1. 动态内存分配 init_mem.C:此文件是初始化动态内存区的程序源代码。它可以指定动态内存的位置及大小,只有使用了init_mem( )才可以调回其它函数,诸如malloc calloc,realloc等。 calloc.c:此文件是给数组分配内存的源代码,它可以指定单位数据类型及该单元数目。 malloc.c:此文件是malloc的源代码,分配一段固定大小的内存。 realloc.c:此文件是realloc.c源代码,其功能是调整当前分配动态内存的大小。 全文内容: 本章讨论以下内容: l 绝对地址访问 l C与汇编的接口 l C51软件包中的通用文件 l 段名转换与程序优化 第一节绝对地址访问 C51提供了三种访问绝对地址的方法: 1. 绝对宏: 在程序中,用“#include〈absacc.h〉”即可使用其中定义的宏来访问绝对地址,包括: CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD 具体使用可看一看absacc.h便知 例如: rval=CBYTE[0x0002];指向程序存贮器的0002h地址 rval=XWORD [0x0002];指向外RAM的0004h地址 2. _at_关键字 直接在数据定义后加上_at_ const即可,但是注意: (1)绝对变量不能被初使化; (2)bit型函数及变量不能用_at_指定。 例如: idata struct link list _at_ 0x40;指定list结构从40h开始。 xdata char text[25b] _at_0xE000;指定text数组从0E000H开始 提示:如果外部绝对变量是I/O端口等可自行变化数据,需要使用volatile关键字进行描述,请参考absacc.h。 3. 连接定位控制 此法是利用连接控制指令code xdata pdata \data bdata对“段”地址进行,如要指定某具体变量地址,则很有局限性,不作详细讨论。 第二节 Keil C51与汇编的接口 1. 模块内接口 方法是用#pragma语句具体结构是: #pragma asm 汇编行

单片机原理与C51语言程序设计与基础教程 课后习题答案

单片机原理与C51语言程序设计与基础教 程课后习题答案 习题 填空题 1.一般而言,微型计算机包括、、、四个基本组成部分。 2.单片机是一块芯片上的微型计算机。以为核心的硬件电路称为单片机系统,它属于地应用范畴。 3.Atmel 公司生产的CMOS型51系列单片机,具有内核,用 代替ROM作为程序存储器, 4.单片机根据工作温度可分为、和三种。民用级的温度范围是0℃一70℃,工业级是-40℃~85℃,军用级是-55℃-125℃(不同厂家的划分标推可能不同。 5.在单片机领域内,ICE的含义是。 选择题 1.单片机的工作电压一般为V? A 5V B 3V C 1V D 4V 2.单片机作为微机的一种,它具有如下特点: A 具有优异的性能价格比 B 集成度高、体积小、可靠性高 C 控制功能强,开发应用方便 D 低电压、低功耗。 3.民用级单片机的温度范围是: A -40℃~85℃ B 0℃一70℃ C -55℃-125℃ D 0℃一50℃ 4.MCS-51系列单片机最多有个中端源。 A 3 B 4 C 5 D 6 5.下列简写名称中不是单片机或单片机系统的是 A MCU B SCM C ICE D CPU 问答题 1.单片机常用的应用领域有哪些? 2.我们如何学习单片机这么技术? 3.单片机从用途上可分成哪几类?分别由什么用处? 答案

填空题 1.运算器、控制器、存储器、输入输出接口 2.单片机嵌入式系统 3.MCS-51 Flash ROM 4.民用级(商业级) 工业级军用级 5.在线仿真器 选择题 1.A 2.ABCD 3.B 4.C 5.D 问答题 1.单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: (1)在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。 (2)在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 (3)在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 (4)在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 (5)单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 2.首先,大概了解单片机的机构,例如本书的第2章则是主要讲了单片机的内部结构以及资源。对单片机的内部结构有了初步了解之后,读者就可以进行简单的实例练习,从而加深对单片机的认识。 其次,要有大量的实例练习。其实,对于单片机,主要是软件设计,也就是编程。目前最流行的用于51系列单片机地编程软件是Keil。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好

单片机原理及接口技术(C51编程~)(第2版~)-习题-答案~汇总

单片机答案

第1章思考题及习题1参考答案 一、填空 1. 除了单片机这一名称之外,单片机还可称为或。答:微控制器, 嵌入式控制器. 2.单片机与普通微型计算机的不同之处在于其将、、和三部 分,通过内部连接在一起,集成于一块芯片上。答:CPU、存储器、I/O 口、总线 3. AT89S51单片机工作频率上限为 MHz。答:24MHz。 4. 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低 和提高。答:成本,可靠性。 二、单选 1. 单片机内部数据之所以用二进制形式表示,主要是 A.为了编程方便B.受器件的物理性能限制C.为了通用性D.为了提高运算速度答:B 2. 在家用电器中使用单片机应属于微计算机的。 A.辅助设计应用B.测量、控制应用 C.数值计算应用D.数据处理应用答: B 3. 下面的哪一项应用,不属于单片机的应用范围。 A.工业控制 B.家用电器的控制 C.数据库管理 D.汽车电子设备 答:C 三、判断对错 1. STC系列单片机是8051内核的单片机。对 2. AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1 1

个中断源、1个定时器(且具有捕捉功能)。对 3. 单片机是一种CPU。错 4. AT89S52单片机是微处理器。错 5. AT89S51片内的Flash程序存储器可在线写入(ISP),而AT89C52则不能。对 6. 为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。对 7. 为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。对 8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能 则是DSP的长处。对 第2章思考题及习题2参考答案 一、填空 1. 在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为。答:2μs 2. AT89S51单片机的机器周期等于个时钟振荡周期。答:12 3. 内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为 和。答:28H,88H 4. 片内字节地址为2AH单元最低位的位地址是;片内字节地址为A8H单元的最低位的位地址为。答:50H,A8H 5. 若A中的内容为63H,那么,P标志位的值为。答:0 6. AT89S51单片机复位后,R4所对应的存储单元的地址为,因上电时PSW= 。这时当前的工作寄存器区是组工作寄存器区。答:04H,00H,0。 7. 内部RAM中,可作为工作寄存器区的单元地址为 H~ H。答:00H,1FH 8. 通过堆栈操作实现子程序调用时,首先要把的内容入栈,以进行断点保护。调用子程序返回指令时,再进行出栈保护,把保护的断点送回到, 2

单片机C51程序设计课后习题答案(复习专用)

第一章 1. 给出下列有符号数的原码、反码和补码(假设计算机字长为8 位)。 +45 -89 -6 +112 答:【+45】原=00101101,【+45】反=00101101,【+45】补=00101101【-89】原=11011001,【-89】反=10100110,【-89】补=10100111 【-6】原=10000110,【-6】反=11111001,【-6】补=11111010 【+112】原=01110000,【+45】反=01110000,【+45】补=01110000 2. 指明下列字符在计算机内部的表示形式。 AsENdfJFmdsv120 答:41H 73H 45H 4EH 64H 66H 4AH 46H 6DH 64H 73H 76H 31H 32H 30H 3. 什么是单片机? 答:单片机是把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成到一个集成电路芯片上形成的微型计算机。因而被称为单片微型计算机,简称为单片机。 4. 单片机的主要特点是什么? 答:主要特点如下: 1) 在存储器结构上,单片机的存储器采用哈佛(Harvard)结构 2) 在芯片引脚上,大部分采用分时复用技术 3) 在内部资源访问上,采用特殊功能寄存器(SFR)的形式

4) 在指令系统上,采用面向控制的指令系统 5) 内部一般都集成一个全双工的串行接口 6) 单片机有很强的外部扩展能力 5. 指明单片机的主要应用领域。 答:单机应用:1) 工业自动化控制;2) 智能仪器仪表;3) 计算机外部设备和智能接口;4) 家用电器 多机应用:功能弥散系统、并行多机处理系统和局部网络系统。 第二章 1. MCS-51单片机由哪几个部分组成? 答:MCS-51单片机主要由以下部分组成的:时钟电路、中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR)。 2. MCS-51的标志寄存器有多少位,各位的含义是什么? 答:MCS-51的标志寄存器PSW有8位; D D D D D D D D 含义如下: C(PSW.7):进位或借位标志位。 AC(PSW.6):辅助进位或借位可标志位。 F0(PSW.5):用户标志位。是系统预留给用户自己定义的标志位。

单片机原理及接口技术-C51编程(张毅刚第二版)-习题答案

单片机原理及接口技术-C51编程(张毅 刚第二版)-习题答案 单片机原理及接口技术(C51编程)(第2版)-习题答案汇总23 单片机答案 第1章单片机概述 思考题及习题1 参考答案 一、填空 1.除了单片机这一名称之外,单片机还可称为()或()。答:微控制器,嵌入 式控制器. 2.单片机与普通微型计算机的不同之处在于其将()、()和()三部分,通过 内部()连接在一起,集成于一块芯片上。答:CPU存储器、I/O 口、总线 3.AT89S51单片机工作频率上限为()MHz答:24MHz 4.专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低()和 提高()。答:成本,可靠性。 二、单选 1.单片机内部数据之所以用二进制形式表示,主要是 A.为了编程方便 B.受器件的物理性能限制 C?为了通用性D.为了提高运算数度答:B 2.在家用电器中使用单片机应属于微计算机的。 A.辅助设计应用 B.测量、控制应用 C.数值计算应用 D.数据处理应用答:B 3.下面的哪一项应用,不属于单片机的应用范围。 A.工业控制B ?家用电器的控制C ?数据库管理D ?汽车电子设备答:C

三、判断对错 1.STC系列单片机是8051内核的单片机。对 2.A T89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM 1个中断源、1个定时器(且具有捕捉功能)。对 3.单片机是一种CPU错 4.AT89S52单片机是微处理器。错 5.AT89S51片内的Flash程序存储器可在线写入(ISP),而AT89C52则不能。对 6.为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。对 7.为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。对 8.单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP的长处。对 第2章AT89S51单片机片内硬件结构 思考题及习题2 参考答案 一、填空 1.在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为()。答:2卩s 2.AT89S51单片机的机器周期等于()个时钟振荡周期。答:12 3.内部RAM中,位地址为40H 88H的位,该位所在字节的字节地址分别为()和()。答:28H, 88H 4.片内字节地址为2AH单元最低位的位地址是();片内字节地址为A8H单元的最低 位的位地址为()。答:50H, A8H 5.若A中的内容为63H,那么,P标志位的值为()。答:0 6.AT89S51单片机复位后,R4所对应的存储单元的地址为(),因上电时PSW=()。 这时当前的工作寄存器区是()组工作寄存器区。答:04H, 00H, 0。 7.内部RAM中,可作为工作寄存器区的单元地址为()H?()Ho答:00H,仆H 8.通过堆栈操作实现子程序调用时,首先要把()的内容入栈,以进行断点保护。 调用子程序返回指令时,再进行出栈保护,把保护的断点送回到(),先弹出的是原来()中的内容。答:PC, PC, PCH 9.AT89S51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为 AT89S51单片机的PC是16位的,因此其寻址的范围为()KB。答:64 10.AT89S51单片机复位时,P0~P3 口的各引脚为()电平。答:高 11.A T89S51单片机使用片外振荡器作为时钟信号时,引脚XTAL1接(),引脚XTAL2 的接法是()。答:片外振荡器的输出信号,悬空 12.AT89S51单片机复位时,堆栈指针SP中的内容为(),程序指针PC中的内容为()。答:07H, 0000H 二、单选 1.程序在运行中,当前PC的值是。 A.当前正在执行指令的前一条指令的地址B ?当前正在执行指令的地址。 C ?当前正 在执行指令的下一条指令的首地址D .控制器中指令寄存器的地址。答:C 2.判断下列哪一种说法是正确的? A. PC是一个可寻址的寄存器B .单片机的主频越高,其运算速度越快。 C.AT89S51单片机中的一个机器周期为1卩s D.特殊功能寄存器SP内存放的是堆栈栈顶单元的内容。

8位数码管显示电子时钟c51单片机程序

8位数码管显示电子时钟c51单片机程序 时间:2012-09-10 13:52:26 来源:作者: /* 8位数码管显示时间格式 05—50—00 标示05点50分00秒 S1 用于小时加1操作 S2 用于小时减1操作 S3 用于分钟加1操作 S4 用于分钟减1操作 */ #include sbit KEY1=P3^0; //定义端口参数 sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit LED=P1^2; //定义指示灯参数 code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0—9 unsigned char StrTab[8]; //定义缓冲区 unsigned char minute=19,hour=23,second; //定义并初始化为 12:30:00 void delay(unsigned int cnt) { while(--cnt); } /******************************************************************/ /* 显示处理函数 */ /******************************************************************/ void Displaypro(void) { StrTab[0]=tab[hour/10]; //显示小时 StrTab[1]=tab[hour%10]; StrTab[2]=0x40; //显示"-" StrTab[3]=tab[minute/10]; //显示分钟 StrTab[4]=tab[minute%10]; StrTab[5]=0x40; //显示"-" StrTab[6]=tab[second/10]; //显示秒 StrTab[7]=tab[second%10]; } main()

单片机原理与应用及C51程序设计 杨加国主编 完整版答案

单片机原理与应用及C51程序设计 第一章 第二章

第三章 1.在MCS-51单片机中,寻址方式有几种?其中对片内RAM可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式? 答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。片外RAM寻址有:寄存器间接寻址方式。 2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR间接寻址有什么区别? 答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。3.在位处理中,位地址的表示方式有哪几种? 答:1.直接位地址(00H~0FFH)。例如:20H 2.字节地址带位号。例如:20H.3表示20H单元的3位。 3.特殊功能寄存器名带位号。例如:P0.1表示P0口的1位。

4.位符号地址。例如:TR0是定时/计数器T0的启动位。4.写出完成下列操作的指令。 (1)R0的内容送到R1中。 MOV A,R0 MOV R1,A (2)片内RAM的20H单元内容送到片内RAM的40H单元中。 MOV 40H,20H (3)片内RAM的30H单元内容送到片外RAM的50H单元中。 MOV A,30H MOV R0,#50H MOVX @R0,A (4)片内RAM的50H单元内容送到片外RAM的3000H单元中。 MOV A,50H MOV DPTR,#3000H MOVX @DPTR,A (5)片外RAM的2000H单元内容送到片内RAM的20H单元中。 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A (6)片外RAM的1000H单元内容送到片外RAM的4000H单元中。 MOV DPTR,#1000H MOVX A,@DPTR

C51单片机的数码管显示c程序

#include #define uint unsigned int #define uchar unsigned char unsigned char s[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管段码unsigned char x; sbit P27=P2^7; sbit P26=P2^6; sbit P25=P2^5; sbit P33=P3^4; sbit fmq=P3^6; sbit P32=P3^2; unsigned char t; /***************** 函数功能:蜂鸣器发声 ******************/ void beep(uint x) {uint i; uint j; for(i=0;i

单片机C51程序结构

1 C51程序流程与控制 C语言是一种结构化的编程语言。其基本元素是模块,它是程序的一部分,只有一个入口和一个出口,不允许有中途插入或从模块的其它路径退出。 C语言有3种基本结构: 顺序结构; 选择结构; 循环结构; 1.1顺序结构程序 顺序结构的程序是最简单、最基本的程序结构,其特点是按指令的排列顺序一条条地执行,如图所示,程序先执行 A操作,再执行B操作,两者是顺序执行的关系。 选择结构程序 此结构中必包含一个判断框,根据给定的条 件P是否成立而选择执行A框或B框。选择结 构由条件语句构成。 条件语句 条件语句又被称为分支语句,其关键字是由if语句或switch/case构成。 C语言提供了3种形式的if语句结构:

用法1: if (条件表达式) 语句 描述:当条件表达式的结果为真时,就执行语句,否则就跳过。例:if(a>=3) b=0; 用法2: if (条件表达式) 语句1 else 语句2 描述:当条件表达式成立时,就执行语句1,否则就执行语句2。例:if (a==b) a++; else a--; 当a等于b时,a加1,否则a-1。 用法3: if (条件表达式1) 语句1; else if (条件表达式2) 语句2; else if (条件表达式3) 语句3;

else if (条件表达式n) 语句n; else 语句m; 描述:如果表达式1为“真”,则执行语句1,退出if语句;否则去判断表达式2,如果为“真”,则执行语句2,退出if语句;否则去判断表达式3···最后,如果表达式n也不成立,则执行else后面的语句m。else和语句m也可省略不用。例: if (a>=3) b=10; else if (a>=2) b=20; else if (a>=1) b=30; else b=0; switch/ case语句结构 我们学习了条件语句,用多个条件语句可以实现多方向条件分支,但是可以发现使用过多的条件语句实现多方向分支会使条件语句嵌套过多,程序冗长,这样读起来也很不好读。这时使用开关语句同样可以达到处理多分支选择的目的,又可以使程序结构清晰。它的语法为下: switch (表达式)

C51单片机程序

1.定时器实验程序: #include #include #define uint unsigned int #define uchar unsigned char uchar temp,bai,shi,ge,aa,cnt; uchar code table[]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60}; void delay(uint z); void init(); void display(uchar bai,uchar shi,uchar ge); void main() { init(); while(1) { if(aa==20) { aa=0; temp++; if(temp==1001) { temp=0; } bai=temp/100; shi=temp%100/10; ge=temp%10; } display(bai,shi,ge); } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(uchar bai,uchar shi,uchar ge) { P0=table[bai]; P2=0xfe; delay(1); P0=table[shi];

P2=0xfd; delay(1); P0=table[ge]; P2=0xfb; delay(1); } void init() { aa=0; cnt=0; temp=0; P1=0xfe; TMOD=0X11; //T1、T0工作方式均为1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; //计时50ms TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET0=1; TR0=1; //使能T1,T0 ET1=1; TR1=1; } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } void timer1() interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; cnt++; if(cnt >= 20) { cnt = 0; P1=_crol_(P1,1); //流水灯} }

基于51单片机的各种花样的流水灯c51程序

基于51单片机的各种花样的流水灯c51程序 /*-----------------------------------------------功能:流水灯对称移动闪烁(双闪 烁) ------------------------------------------------*/ #includeREG52.H#define uint unsigned intvoid delay(uint);main(){ uint comp1=0xfe; uint comp2=0x80; P1=0x7e; delay(30000); while(1) { P1=0xff; comp1=1; comp1|=0x01; comp2=1; P1=comp1; P1–comp2; delay(30000); if(P1==0xe7) { comp1=1; comp1|=0x01; comp2=1; } if(comp1==0x7f) { comp1=0xfe; comp2=0x80; } } }void delay(uint cnt){ while(cnt--); } /*----------------------------------------------------------------- 只循环一次,而没有一直循环下去,出错地方在: 通过添加一条测试语句: if(comp1==0x7f) { comp1=0xfe; comp2=0x80; P1=0x00; delay(30000); } 发现if 语句没有被执行,自然继续左右移动: 1111 11111111 1111 0000==11111 1111 所以看起来是执行了一次while 中的代码。 具体为什么不行,还不清楚 更正下列代码后,能够实现功能。 if(P1==0x7e) { comp1=0xfe; comp2=0x80; } 或者: if(comp2==0x01) { comp1=0xfe; comp2=0x80; }

c51单片机编程应用100例

目录 目录 1 ************************************************************函数的使用和熟悉*************** ************************************************/ 4 实例3:用单片机控制第一个灯亮 4 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 4 实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功 能 5 实例6:使用P3口流水点亮8位LED 5 实例7:通过对P3口地址的操作流水点亮8位LED 6 实例8:用不同数据类型控制灯闪烁时间 7 实例9:用P0口、P1 口分别显示加法和减法运算结果 8 实例10:用P0、P1口显示乘法运算结果 9 实例11:用P1、P0口显示除法运算结果 9 实例12:用自增运算控制P0口8位LED流水花样 10 实例13:用P0口显示逻辑"与"运算结果 10 实例14:用P0口显示条件运算结果 11

实例15:用P0口显示按位"异或"运算结果 11 实例16:用P0显示左移运算结果 11 实例17:"万能逻辑电路"实验 11 实例18:用右移运算流水点亮P1口8位LED 12 实例19:用if语句控制P0口8位LED的流水方向 13 实例20:用swtich语句的控制P0口8位LED的点亮状态 13 实例21:用for语句控制蜂鸣器鸣笛次数 14 实例22:用while语句控制LED 16 实例23:用do-while语句控制P0口8位LED流水点亮 16 实例24:用字符型数组控制P0口8位LED流水点亮 17 实例25:用P0口显示字符串常量 18 实例26:用P0 口显示指针运算结果 19 实例27:用指针数组控制P0口8位LED流水点亮 19 实例28:用数组的指针控制P0 口8 位LED流水点亮 20 实例29:用P0 、P1口显示整型函数返回值 21 实例30:用有参函数控制P0口8位LED流水速度 22 实例31:用数组作函数参数控制流水花样 23

c51单片机简单应用

c51单片机简单应用 部门: xxx 时间: xxx 制作人:xxx 整理范文,仅供参考,可下载自行修改

目录 1.绪论2 1.1 单片机基础知识3 1.2 单片机的应用领域3 1.2.1在智能仪器仪表的应用4 1.2.2在家用电器中的应用4 1.2.3在工业控制中的应用4 1.2.4在计算机网络和通信领域中的应用4 1.2.5 单片机在医用设备领域中的应用5 1.3单片机的发展趋势5 1.3.1微型单片化5 1.3.2低功耗CMOS化5 1.3.3主流与多品种共存6 2 硬件设计6 2.180C51单片机的内部结构6 2.2 80C51单片机的引脚功能8 3 Proteus与Keil C51的概述1 4 3.1 Proteus介绍14 3.2 Keil C51 介绍14 4 KeilC与Proteus相结合的仿真实例1 5 4.1 实现LED显示器的选通并显示字符。15 4.1.1 电路图的绘制16

4.1.2 KeilC中工程建立23 4.2开关控制流水灯26 4.2.1实验原理26 4.2.2主要器件以及电路图26 1.绪论 二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机<亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。它的出现是近代计算机技术发展史上的一个重要里程碑,因为它体积小,通常都藏在被控机械的“肚子”里。它在这个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。b5E2RGbCAP 单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。p1EanqFDPw

C51单片机实战100例

目录 目录 1 函数的使用和熟悉 6 实例3:用单片机控制第一个灯亮7 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 7 实例5:将P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能8

实例6:使用P3口流水点亮8位LED 9 实例7:通过对P3口地址的操作流水点亮8位LED 11 实例8:用不同数据类型控制灯闪烁时间13 实例9:用P0口、P1 口分别显示加法和减法运算结果15 实例10:用P0、P1口显示乘法运算结果15 实例11:用P1、P0口显示除法运算结果17 实例12:用自增运算控制P0口8位LED流水花样17 实例13:用P0口显示逻辑"与"运算结果18 实例14:用P0口显示条件运算结果19 实例15:用P0口显示按位"异或"运算结果19 实例16:用P0显示左移运算结果19 实例17:"万能逻辑电路"实验20 实例18:用右移运算流水点亮P1口8位LED 20 实例19:用if语句控制P0口8位LED的流水方向22 实例20:用swtich语句的控制P0口8位LED的点亮状态23 实例21:用for语句控制蜂鸣器鸣笛次数25 实例22:用while语句控制LED 27 实例23:用do-while语句控制P0口8位LED流水点亮29 实例24:用字符型数组控制P0口8位LED流水点亮30 实例25:用P0口显示字符串常量32 实例26:用P0 口显示指针运算结果33 实例27:用指针数组控制P0口8位LED流水点亮34

实例28:用数组的指针控制P0 口8 位LED流水点亮 36 实例29:用P0 、P1口显示整型函数返回值37 实例30:用有参函数控制P0口8位LED流水速度38 实例31:用数组作函数参数控制流水花样40 实例32:用指针作函数参数控制P0口8位LED流水点亮42 实例33:用函数型指针控制P1口灯花样44 实例34:用指针数组作为函数的参数显示多个字符串46 实例35:字符函数ctype.h应用举例48 实例36:内部函数intrins.h应用举例 49 实例37:标准函数stdlib.h应用举例50 实例38:字符串函数string.h应用举例51 实例39:宏定义应用举例2 52 实例40:宏定义应用举例2 53 实例41:宏定义应用举例3 54 中断、定时器55 实例42:用定时器T0查询方式P2口8位控制LED闪烁55 实例43:用定时器T1查询方式控制单片机发出1KHz音频56 实例44:将计数器T0计数的结果送P1口8位LED显示57 实例45:用定时器T0的中断控制1位LED闪烁58 实例46:用定时器T0的中断实现长时间定时60 实例47:用定时器T1中断控制两个LED以不同周期闪烁61 实例48:用计数器T1的中断控制蜂鸣器发出1KHz音频63

相关主题
相关文档
最新文档