文档库 最新最全的文档下载
当前位置:文档库 › 单片机2

单片机2

单片机2
单片机2

转载:二进制编码--负数

负数:

原码就是原来的表示方法

反码是除符号位(最高位)外取反

补码=反码+1

以前学习二进制编码时,老师讲了一堆堆的什么原码啊反码啊补码啊xxxx转换啊,还有负数的表示方式啊总是记不零清,终于从网上找到了一种比较好的讲解方式,保存再share一下,不过为了系统化讲解,又找来了一些编码的基础知识,如果只想看负数编码记忆法,请跳转到

1.如果你不知道二进制怎么编码,请继续,否则请跳到2

1字节= 8位,所以它能表示的最大数当然是8位都是1(既然2进制的数只能是0或1,如果是我们常见的10进制,那就8位都为9,这样说,你该懂了?)

1字节的二进制数中,最大的数:11111111。

这个数的大小是多少呢?让我们来把它转换为十进制数。

无论是什么进制,都是左边是高位,右边是低位。10进制是我们非常习惯的计数方式,第一位代表有几个1(即几个100),第二位代表有几个10(即几个101),第三位代表有几个100(即有几个102)…,用小学课本上的说法就是:个位上的数表示几个1,十位上的数表示向个10,百位上的数表示几个100……

同理可证,二进制数则是:第1位数表示几个1 (20),第2位数表示几个2(21),第3位数表示几个4(22),第4位数表示向个8(23)……

以前我们知道1个字节有8位,现在通过计算,我们又得知:1个字节可以表达的最大的数是255,也就是说表示0~255这256个数。

那么两个字节(双字节数)呢?双字节共16位。 1111111111111111,这个数并不大,但长得有点眼晕,从现在起,我们要学会这样来表达二制数:

1111 1111 1111 1111,即每4位隔一空格。

双字节数最大值为:

1 * 215 + 1 *214 + 1* 213 + 1 * 21

2 + 1 * 211 + 1 * 210+ …… + 1 * 22 + 1 * 21 + 1* 20 = 65535

很自然,我们可以想到,一种数据类型允许的最大值,和它的位数有关。具体的计算方法方法是,如

果它有n位,那么最大值就是:

n位二进制数的最大值:1 * 2(n-1) + 1 * 2(n-2) + ... + 1 * 20

2、理解有符号数和无符号数

负数在计算机中如何表示呢?这一点,你可能听过两种不同的回答。

一种是教科书,它会告诉你:计算机用“补码”表示负数。可是有关“补码”的概念一说就得一节课,这一些我们需要在第6章中用一章的篇幅讲2进制的一切。再者,用“补码”表示负数,其实一种公式,公式的作用在于告诉你,想得问题的答案,应该如何计算。却并没有告诉你为什么用这个公式就可以和答案?-----我就是被这个弄混淆的>_<

另一种是一些程序员告诉你的:用二进制数的最高位表示符号,最高位是0,表示正数,最高位是1,表示负数。这种说法本身没错,可是如果没有下文,那么它就是错的。至少它不能解释,为什么字符类型的-1用二进制表示是“1111 1111”(16进制为FF);而不是我们更能理解的“1000 0001”。(为什么说后者更好理解呢?因为既然说最高位是1时表示负数,那1000 0001不是正好是-1吗?-----re!当初偶就是这么想的,so一直在脑中打架,越打越混淆=,=)。

让我们从头说起。

2.1、你自已决定是否需要有正负。

就像我们必须决定某个量使用整数还是实数,使用多大的范围数一样,我们必须自已决定某个量是否需要正负。如果这个量不会有负值,那么我们可以定它为带正负的类型。

在计算机中,可以区分正负的类型,称为有符类型,无正负的类型(只有正值),称为无符类型。

数值类型分为整型或实型,其中整型又分为无符类型或有符类型,而实型则只有符类型。

字符类型也分为有符和无符类型。

比如有两个量,年龄和库存,我们可以定前者为无符的字符类型,后者定为有符的整数类型。

2、使用二制数中的最高位表示正负。

首先得知道最高位是哪一位?1个字节的类型,如字符类型,最高位是第7位,2个字节的数,最高位是第15位,4个字节的数,最高位是第31位。不同长度的数值类型,其最高位也就不同,但总是最左边的那位(如下示意)。字符类型固定是1个字节,所以最高位总是第7位。

(红色为最高位)

单字节数:1111 1111

双字节数:1111 1111 1111 1111

四字节数:1111 1111 1111 1111 1111 1111 1111 1111

当我们指定一个数量是无符号类型时,那么其最高位的1或0,和其它位一样,用来表示该数的大小。

当我们指定一个数量是有符号类型时,此时,最高数称为“符号位”。为1时,表示该数为负值,为0时表示为正值。

3、无符号数和有符号数的范围区别。

无符号数中,所有的位都用于直接表示该值的大小。有符号数中最高位用于表示正负,所以,当为正值时,该数的最大值就会变小。我们举一个字节的数值对比:

无符号数:1111 1111 值:255 1* 27 + 1* 26 + 1* 25 + 1* 24 + 1* 23 + 1* 22 + 1* 21 + 1* 20

有符号数:0111 1111 值:127 1* 26 + 1* 25 + 1* 24 + 1* 23 + 1* 22 + 1* 21 + 1* 20同样是一个字节,无符号数的最大值是255,而有符号数的最大值是127。原因是有符号数中的最高位被挪去表示符号了。并且,我们知道,最高位的权值也是最高的(对于1字节数来说是2的7次方=128),所以仅仅少于一位,最大值一下子减半。

不过,有符号数的长处是它可以表示负数。因此,虽然它的在最大值缩水了,却在负值的方向出现了伸展。我们仍一个字节的数值对比:

无符号数:0 ----------------- 255

有符号数:-128 --------- 0 ---------- 127

同样是一个字节,无符号的最小值是0 ,而有符号数的最小值是-128。所以二者能表达的不同的数值的个数都一样是256个。只不过前者表达的是0到255这256个数,后者表达的是-128到+127这256个数。

一个有符号的数据类型的最小值是如何计算出来的呢?

有符号的数据类型的最大值的计算方法完全和无符号一样,只不过它少了一个最高位(见第3点)。但在负值范围内,数值的计算方法不能直接使用1* 26 + 1* 25的公式进行转换。在计算机中,负数除为最高位为1以外,还采用补码形式进行表达。所以在计算其值前,需要对补码进行还原。这里,先直观地看一

眼补码的形式:

以我们原有的数学经验,在10进制中:1 表示正1,而加上负号:-1 表示和1相对的负值。

那么,我们会很容易认为在2进制中(1个字节): 0000 0001 表示正1,则高位为1后:1000 0001应该表示-1。

然而,事实上计算机中的规定有些相反,请看下表:

首先我们看到,从-1到-128,其二进制的最高位都是1(表中标为红色),正如我们前面的学。

然后我们有些奇怪地发现,1000 0000 并没有拿来表示-0;而1000 0001也不是拿来直观地表示-1。事实上,-1 用1111 1111来表示。

怎么理解这个问题呢?先得问一句是-1大还是-128大?

当然是-1 大。-1是最大的负整数。以此对应,计算机中无论是字符类型,或者是整数类型,也无论这个整数是几个字节。它都用全1来表示-1。比如一个字节的数值中:1111 1111表示-1,那么,1111 1111 - 1 是什么呢?和现实中的计算结果完全一致。1111 1111 - 1 = 1111 1110,而1111 1110就是-2。这样一直减下去,当减到只剩最高位用于表示符号的1以外,其它低位全为0时,就是最小的负值了,在一字节中,最小的负值是1000 0000,也就是-128。

--------小米批注:就是这部分蓝色的文字,让我终于能记清楚-1的编码方式了,汗=。=

我们以-1为例,来看看不同字节数的整数中,如何表达-1这个数:

可能有同学这时会混了:为什么1111 1111 有时表示255,有时又表示-1?所以我再强调一下本节前面所说的第2点:你自已决定一个数是有符号还是无符号的。写程序时,指定一个量是有符号的,那么当这个量的二进制各位上都是1时,它表示的数就是-1;相反,如果事选声明这个量是无符号的,此时它表示的就是该量允许的最大值,对于一个字节的数来说,最大值就是255。

ok 摘抄暂告段落,其实原文对于c的一些基础数据类型知识介绍的非常详细,8过太长了,摘到我需要的内容后就没全帖过来,如果有需要学习的同学,建议参见原文:)

转自https://www.wendangku.net/doc/3117062026.html,/7892477/1201309.aspx

关键字:二进制编码,负数二进制,二进制

1-6 什么叫机器数?计算机为什么要采用补码?

2007-09-09 14:24:25

大中小

标签:教育杂谈

在计算机内部,所有信息都是用二进制数串的形式表示的。整数通常都有正负之分,计算机中的整数分为无符号的和带符号的。无符号的整数用来表示0和正整数,带符号的证书可以表示所有的整数。由于计算机中符号和数字一样,都必须用二进制数串来表示,因此,正负号也必

须用0、1来表示。通常我们用最高的有效位来表示数的符号(当用8位来表示一个整数时,第8位即为最高有效位,当用16位来表示一个整数时,第16位即为最高有效位。)0表示正号、1表示负号,这种正负号数字化的机内表示形式就称为“机器数”,而相应的机器外部用正负号表示的数称为“真值”。将一个真值表示成二进制字串的机器数的过程就称为编码。

无符号数没有原码、反码和补码一说。只有带符号数才存在不同的编码方式。

带符号整数有原码、反码、补码等几种编码方式。原码即直接将真值转换为其相应的二进制形式,而反码和补码是对原码进行某种转换编码方式。正整数的原码、反码和补码都一样,负数的反码是对原码的除符号位外的其他位进行取反后的结果(取反即如果该位为0则变为1,而该位为1则变为0的操作)。而补码是先求原码的反码,然后在反码的末尾位加1 后得到的结果,即补码是反码+1。IBM-PC中带符号整数都采用补码形式表示。(注意,只是带符号的整数采用补码存储表示的,浮点数另有其存储方式。)

采用补码的原因或好处如下。

采用补码运算具有如下两个特征:

1)因为使用补码可以将符号位和其他位统一处理,同时,减法也可以按加法来处理,即如果是补码表示的数,不管是加减法都直接用加法运算即可实现。

2)两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

这样的运算有两个好处:

1)使符号位能与有效值部分一起参加运算,从而简化运算规则。从而可以简化运算器的结构,提高运算速度;(减法运算可以用加法运算表示出来。)

2)加法运算比减法运算更易于实现。使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。

下面深入分析上面所陈述的采用补码的原因(目的)。

用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下:假设字长为8bits

( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10

(00000001)原+ (10000001)原= (10000010)原= ( -2 ) 显然不正确.。

因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码。反码的取值空间和原码相同且一一对应。下面是反码的减法运算:

( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10

(00000001) 反+ (11111110)反= (11111111)反= ( -0 ) 有问题。

( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10

(00000001) 反+ (11111101)反= (11111110)反= ( -1 ) 正确

问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的。

于是就引入了补码概念。负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的。在补码中用(-128)代替了(-0),所以补码的表示范围为:

(-128~0~127)共256个。

注意:(-128)没有相对应的原码和反码,(-128) = (10000000) 补码的加减运算如下:( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10

(00000001)补+ (11111111)补= (00000000)补= ( 0 ) 正确

( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10

(00000001) 补+ (11111110) 补= (11111111)补= ( -1 ) 正确

采用补码表示还有另外一个原因,那就是为了防止0的机器数有两个编码。原码和反码表示的0有两种形式+0和-0,而我们知道,+0和-0是相同的。这样,8位的原码和反码表示的整数的范围就是-127~+127(11111111~01111111),而采用补码表示的时候,00000000是+0,即0;10000000不再是-0,而是-128,这样,补码表示的数的范围就是-128~+127了,不但增加了一个数得表示范围,而且还保证了0编码的唯一性。

整数和0的原码、反码和补码都相同,下面介绍手工快速求负数补码的方法。这个方法在教材的第8页已经提到了,这里再写出来以便能引起大家的注意。其方法如下:先写出该负数的相反数(正数),再将该正数的二进制形式写出来,然后对这个二进制位串按位取反,即若是1则改为0,若是0则改为1,最后在末位加1。

接下来的问题是,如何能将减法运算转换成加法运算呢?

我们已经知道,原码表示简单直观,与真值转换容易。但如果用原码表示,其符号位不能参加运算。在计算机中用原码实现算术运算时,要取绝对值参加运算,符号位单独处理,这对乘除运算是很容易实现的,但对加减运算是非常不方便的,如两个异号数相加,实际是要做减法,而两个异号数相减,实际是要做加法。在做减法时,还要判断操作数绝对值的大小,这些都会使运算器的设计变得很复杂。而补码这种编码方式实际上正是针对上述问题的。通过用补码进行表示,就可以把减法运算化为加法运算。

在日常生活中,有许多化减为加的例子。例如,时钟是逢12进位,12点也可看作0点。当将时针从10点调整到5点时有以下两种方法:

一种方法是时针逆时针方向拨5格,相当于做减法:

10-5=5

另一种方法是时针顺时针方向拨7格,相当于做加法:

10+7=12+5=5 (MOD 12)

这是由于时钟以12 为模,在这个前提下,当和超过12时,可将12舍去。于是,减5相当于加7。同理,减4可表示成加8,减3可表示成加9,…。

在数学中,用“同余”概念描述上述关系,即两整数A、B用同一个正整数M (M称为模)去除而余数相等,则称A、B对M同余,记作:

A=B(MOD M)

具有同余关系的两个数为互补关系,其中一个称为另一个的补码。当M=12时,-5和+7,-4和+8,-3和+9就是同余的,它们互为补码。

从同余的概念和上述时钟的例子,不难得出结论:对于某一确定的模,用某数减去小于模的另一个数,总可以用加上“模减去该数绝对值的差”来代替。因此,在有模运算中,减法就可以化作加法来做。

可以看出,补码的加法运算所依据的基本关系为:

[x]补+ [y]补= [x+y]补

补码减法所依据的基本关系式:

[x-y]补=[x+(-y)]补= [x]补+ [-y]补

至于加法运算为什么比减法运算易于实现以及CPU如何实现各种算术运算等问题,则需要通过对数字电路的学习来理解CPU的运算器的硬件实现问题的相关内容了。

单片机课程设计完整版样本

课程设计( 论文) 课程名称单片机 题目名称简易密码锁的设计学院高等技术学院 专业班级高1 1 0 9 学号3869 学生姓名刘欢 指导教师胡立强 11月28 日 目录

一,任务目的 (3) 二,任务要求 (3) 三,电路与元器件 (4) 四,程序设计 (5) 五,程序运行测试 (6) 六,任务小结 (7) 七,心得体会 (8) 八,参考文献 (9) 1.任务目的

经过对具有四个按键输入和一个数码管显示的简易密码锁的设计与制作, 让读者理解C语言中数组的基本概念和应用技术, 并初步了解单片机与键盘和LED数码管的接口电路设计及编程控制方法。 2.任务要求 在一些智能门控管理系统, 需要输入正确的密码才能开锁。基于单片机控制的密码锁硬件电路包括三部分: 按键、数码显示和电控开锁驱动电路, 三者的对应关系如图表3.16所示。 表3.16 简易密码锁状态 简易密码锁的基本功能如下: 4个按键, 分别代表数字0,1,2,3: 密码在程序中事先设定, 为0-3之间的一个数字; 上电复位后, 密码锁初始状态为关闭, 密码管显示符号”—”; 当按下数字键后, 若与事先设定的密码相同, 则数码管显示字符”P”, 打开锁, 3秒后恢复锁定状态, 等待下一次密码的输入, 否则显示字符”E”持续3秒, 保持锁定状态并等待下次输入。 3.电路与元器件 根据任务要求, 用一位LED数码管作为显示器件, 显示密码锁的状态信息, 数码管采用静态连接方式; 4个按键连接到P0口的低四位

P0.0-P0.3引脚, 设P0.0连接数字”0”按键、P0.1连接数字”1”按键, 依次类推; 锁的开、关电路用P3.0控制的一个发光二极管代替, 发光二极管点亮表示锁打开, 熄灭表示锁定。根据以上分析, 采用如图3.21所示的连接电路。 图3.21 简易密码锁电路 简易密码锁电路所需元器件清单如表3.17所示。 元器件名称参数数量元器件名 称 参数数量 插座DIP40 1 电阻103 1 单片机AT89SC51 1 电解电容22UF 1

单片机试题2 参考答案

试题2 参考答案 一、填空题 1.AT89S51单片机是( 8 )位的单片机。 2.AT89S51单片机有( 5 )个中断源,( 2 )级优先级中断。 3.串行口方式3发送的第9位数据要事先写入(SCON )寄存器的( TB8)位。 /12 )。 4.串行口的方式0的波特率为 ( f OSC 5.AT89S51内部数据存储器的地址范围是(00-7FH),位地址空间的字节地址范围是(20-2FH ),对应的位地址范围是(00-7FH)外部数据存储器的最大可扩展容量是(64KB)。6.在内部RAM中可位寻址区中,位地址为40H的位,该位所在字节的字节地址为(28H)。7.如果(A)=58H,(R1)= 49H,(49H)= 79H,执行指令XCH A, @R1后;结果(A)=( 79 H ) ,(49H)=( 58H )。 8.利用81C55可以扩展(3)个并行口,(256)个RAM单元。 9.当单片机复位时PSW=(00 )H,SP=(07H),P0~P3口均为(高)电平。 10.若A中的内容为88H,那么,P标志位为(0 )。 11.当AT89S51执行MOVC A,@A+ DPTR指令时,伴随着(PSEN* )控制信号有效。12.AT89S51访问片外存储器时,利用(ALE)信号锁存来自(P0口)发出的低8位地址信号。 13.已知fosc=12MHz, T0作为定时器使用时,其定时时间间隔为(1us )。 14.若AT89S51外扩8KB 程序存储器的首地址若为1000H,则末地址为(2FFF)H。 二、判断对错,如对则在()中写“√”,如错则在()中写“×”。 1.AT89S51单片机可执行指令:MOV 35H,@R3。(×) 2.8031与8751的区别在于内部是否有程序存储器。(√) 3.当向堆栈压入一个字节的数据后,SP中的内容减1。(×) 4.程序计数器PC中装的内容是当前正在执行指令的地址。(×) 5.某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址。(√) 6.AT89S51单片机中的PC是不可寻址的。(√) 7.当AT89S51执行MOVX @DPTR,A指令时,伴随着WR*信号有效。(√) 8.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期。(×) 9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被WR*还是被PSEN*信号连接。(√) 10.各中断源发出的中断请求信号,都会标记在AT89S51的TCON寄存器中。(×) 三、简答题

单片机原理及应用第四版林立第二章选择题答案

第二章选择题 (1)下列关于程序计数器PC的描述中______是错误的。 A. PC不属于特殊功能寄存器B.PC中的计数值可被编程指令修改 C. PC可寻址64KB RAM空间D.PC中存放着下一条指令的首地址 (2)MCS-51单片机的复位信号是______有效。 A、下降沿 B、上升沿 C、低电平 D、高电平 (3)以下选项中第______项不是80C51单片机的基本配置。 A.定时/计数器T2B.128B片内RAM C.4KB片内ROM D.全双工异步串行口 (4)单片机中的CPU主要由______两部分组成。 A.运算器和寄存器B.运算器和控制器C.运算器和译码器D.运算器和计数器 (5)在51单片机的下列特殊功能寄存器中,具有16位字长的是______。 A.PCON B.TCON C.SCON D.DPTR (6)80C51单片机的ALE引脚是______引脚。 A.地址锁存使能输出端B.外部程序存储器地址允许输入端 C.串行通信口输出端D.复位信号输入端 (7)80C51单片机的存储器为哈佛结构,其内包括______。 A.4个物理空间或3个逻辑空间B.4个物理空间或4个逻辑空间 C.3个物理空间或4个逻辑空间D.3个物理空间或3个逻辑空间 (8)在通用I/O方式下,欲从P1口读取引脚电平前应当______。 A.先向P1口写0B.先向P1口写1C.先使中断标志清零D.先开中断 (9)程序状态字寄存器中反映进位(或借位)状态的标志位符号是______。 A.CY B. F0 C . OV D. AC (10)单片机中的程序计数器PC用来______。

A.存放指令 B.存放正在执行的指令地址 C . 存放下一条指令地址 D. 存放上一条指令地址 (11)单片机上电复位后,PC的内容和SP的内容为______。 A.0000H,00H B. 0000H,07H C . 0003H,07H D. 0800H,08H (12)80C51单片机要使用片内RAM,/EA引脚______。 A.必须接+5V B. 必须接地 C . 必须悬空 D. 没有限定 (13)PSW中的RS1和RS0用来______。 A.选择工作寄存器区号 B. 指示复位 C . 选择定时器 D. 选择中断方式 (14)上电复位后,PSW的初始值为______。 A.1 B. 07H C . FFH D. 0 (15)单片机80C51的XTAL1和XTAL2引脚是______引脚。 A.外接定时器 B. 外接串行口 C . 外接中断 D.外接晶振 (16)80C51单片机的VSS(20)引脚是______引脚。 A.主电源+5V B. 接地 C . 备用电源 D.访问片外存储器 (17)80C51单片机的P0~P3端口中具有第二功能的端口是______。 A.P0 B. P1 C . P2 D. P3 (18)80C51单片机的/EA引脚接+5V时,程序计数器PC的有效地址范围在______。 A.1000H~FFFFH B. 0000H~FFFFH C .0001H~0FFFH D. 0000H~0FFFH (19)当程序状态字寄存器PSW中的R0和R1分别为0和1时,系统选用的工作寄存器组为______。 A.组0 B. 组1 C .组2 D. 组3 (20)80C51单片机的内部RAM中具有位地址的字节地址范围是______。 A.0~1FH B. 20H~2FH C .30H~5FH D. 60H~7FH (21)若80C51单片机的机器周期为12微秒,则其晶振频率为______MHz。

单片机课程设计报告电子密码锁完整版

单片机课程设计报告电 子密码锁 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

山东交通学院 单片机原理与应用课程设计院(部):轨道交通学院 班级:自动化121 学生姓名: 学号: 指导教师: 时间:— 课程设计任务书 题目电子密码锁设计 系 (部) 轨道交通学院 专业班级自动化121 学生姓名 学号 06 月 01 日至 06 月 12 日共 2 周 指导教师(签字) 系主任(签字) 年月日

目录 3.总体设计 (2)

4 密码比较模块 (6) (6) (8) (9) 附录 (10)

摘要 设计运用了ATMEL公司的AT89S52芯片系统,将微处理器、总线、蜂鸣器、矩阵键盘、存储器和I/O口等硬件集中一块电路板上,通过读取键盘输入的数据(密码)并储存到ATMEL912 24C08存储器中,然后判断之后键盘输入的数据与已存储的数据是否相同来决定打开密码箱或锁键盘或报警。在keil4软件中编程,系统可实现6位密码的处理,并通过控制步进电机控制密码箱门的电子锁,同时还可以修改改密码。利用单片机系统制作的密码箱安全性能更高,更易操作且体积小。 关键词:单片机、密码锁、修改密码 1.设计要求 本实验将实现六位数的电子密码锁。要求使用4X4 行列式键盘作为输入,并用LCD 实时显示。具体要求如下:1. 开机时LCD显示“welcome to use”,初始化密码为“123456”,密码可以更改。 2. 按下“10”,开始则显示“Enter Please:”。3. 随时可以输入数值,并在LCD上实时显示‘*’。当键入数值时,为了保密按从左到右依次显示‘*’,可键入值为0~9。 4. 按下“13”键,则表示确定键按下,进行密码对比。如相符则在LCD第一行显示“Open the door!”,同时指示灯亮起并且步进电机旋转一定的角度;如不符,则LCD第一行显示“Wrong password!”,并且蜂鸣器同时提示一下。如果密码连续三次错误则蜂鸣器连续响5下,并且持续5秒不能进行任何操作 5.在开锁状态下按下“12”键,进入修改密码状态,LCD同时提示“Enter new code!”。为删除按键,出入之后可以进行删除。按键为关闭按键,只有在打开状态下才可以关闭,按下之后LCD显示“Close the door!”。 2.功能概述 此设计分为四个功能模块。 第一模块:按键输入模块,用于密码的输入以及其他的密码操作按键。 第二模块:LCD模块,是与使用者交流的界面,用于显示各种状态下的内容。 第三模块:步进电机模块,用于控制密码锁的打开与关闭。 第四模块:24C08模块,用于储存输入的密码并读出来。 3.总体设计 本次设计作品的主要构成部分包括80C51单片机、LCD1602、24C08、矩阵按键、LED 等、蜂鸣器。如图1总体仿真图,图2实物图。 图1 总体电路图 图2 密码锁实物图 4.硬件设计 矩阵按键设计 如图3所示矩阵按键由P1口控制,了加强密码的保密性,采用一个4×4的矩阵式键盘可以任意设置用户密码(1-16位长度),从而提高了密码的保密性,同时也能减少与单片机接口时所占用的I/O口线的数目,节省了单片机的宝贵资源,在按键比较多的时候,通常采用这种方法。 每一行与每一列的交叉处不相同,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N根行线与M根列线,即可组成具有N × M 个按键的矩阵键盘。 在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确

单片机试题及答案 (2)

试题7 一、填空(25分,每空1分) 1. PSW中的RS0、RS1=01B,此时R2的字节地址为()。 2. 假定DPTR的内容1000H,A中的内容为40H,执行指令: 2000H: MOVC A,@A+DPTR 后,送入A的是程序存储器()单元的内容。 3. 假定A中的内容为79H,R5中的内容为78H,执行指令: ADD A,R5 DA A 后,累加器A的内容为()H,CY的内容为()。 4.当AT89S51单片机响应中断后,必须用软件清除的中断请求标志是()。 5.TMOD中的GATEx=1时,表示由两个信号TRx和()控制定时器的启停。 6.在AT89S51单片机的RESET端出现()的高电平后,便可以可靠复位,复位后的PC中的内容为()H。 7.当AT89S51单片机与慢速外设进行数据传输时,最佳的传输方式是()。 8.DA转换器的两个最重要的技术指标为()和()。 9.在存储器扩展中,无论是线选法还是译码法,最终都是为扩展芯片的( )端提供()信号。 10. 波特率定义为 ( )。串行通信对波特率的基本要求是互相通信的甲乙双方必须 具有 ( ) 的波特率。 11. 若串行通信按方式1传送,每分钟传送3000个字符(8位/每字符),其波特率是()。 12. AT89S51片内()地址范围内的数据存储器,既可以字节寻址又可以位寻址。 13.8KB RAM存储器的首地址若为1000H,则末地址为()H。 14.AT89S51单片机控制TPμP-40A/16A微型打印机打印英文或数字时,要把打印字符的()码送给微型打印机。 15.已知8段共阴极LED显示器显示字符“H”的段码为76H,则8段共阳极LED显示器显示字符“H”的段码为()。 16.当键盘的按键数目少于8个时,应采用()式键盘。当键盘的按键数目为64个时,应采用()式键盘。 17.当BCD码拨盘的A端接地时,当BCD码拨盘拨到“6”时,此时拨盘的8、4、2、1接点的输出为()。

最新第2章《单片机原理与C51基础》赵丽清(课后习题及答案)

思考题: 【2-1】80C51单片机由哪几部分组成,试说明ROM和RAM的功能分别是什么? 【2-2】在程序运行中,PC的值是。() A)当前正在执行指令的前一条指令的地址 B)当前正在执行指令的地址 C)当前正在执行指令的下一条指令的首地址 D)控制器中指令寄存器的地址 【2-3】判断下列说法是否正确。 (1)PC可以存放一个16位二进制数,因此其寻址范围为0000H~7FFFH。() (2)单片机系统复位时PC的内容为0000H,因此CPU从程序存储器0000H地址单元取指令,开始执行程序。() (3)PC可以看成是程序计时器() (4)PC可以看成是程序存储器的地址指针。() 【2-4】试计算当振荡频率为12 MHz和6 MHz时,一个机器周期的长度?试辨析振荡周期、状态周期、机器周期、指令周期之间的关系。 【2-5】单片机的ROM必须具有掉电存储功能,这句话是否正确? 【2-6】单片机对RAM的根本要求是快,但掉电可丢失数据,这个表述正确吗? 【2-7】试说出80C51的两种时钟电路模式,如果是只有一个单片机工作常使用的是哪一种?如果是两个以上的单片机工作使用哪一种? 【2-8】80C51单片机的EA信号有何功能?在使用8031时,EA信号引脚应如何处理?现在使用的80C51系列单片机内部一般均含有ROM,其EA引脚应该怎么接? 【2-9】80C51系列单片机的三总线结构包括哪三种?其中作地址总线指的是?作数据总线指的是?属于控制总线的有?P0口的分时复用功能需要依靠锁存器的锁存功能,试举1种常用的低功耗锁存器并将其与单片机正确连接? 【2-10】片内RAM低128单元一般划分为哪三个主要部分?对应的字节地址空间是?内部RAM中,可作为工作寄存器区的单元地址为()H~()H。 【2-11】80C51单片机任何一个时间4组通用工作寄存器中只能有一组工作,具体哪一组工作由什么来决定?如何设置才能选用0组通用寄存器? 【2-12】80C51单片机具有很强的位(布尔)处理功能,内部RAM中共有多少单元可以位寻址,试写出其字节范围和位地址范围? 【2-13】位地址00H与字节地址00H在内存中的位置有什么区别?片内字节地址为2AH单元最低位的位地址是();片内字节地址为88H单元的最低位的位地址为()。 【2-14】80C51单片机可位寻址的范围包括两个区域,即可位寻址的特殊功能寄存器和内部RAM字节地址是20H-2FH的单元,这句话表述的是否正确? 【2-15】可位寻址的特殊功能寄存器的最低位位地址与字节地址形式不同,这句话表述是否正确?【2-16】堆栈遵循的原则是什么?SP的名称是?初始化时SP的值是多少?通过堆栈操作实现子程序调用时,首先要把()的内容入栈,以进行断点保护;调用子程序返回指令时,再进行出栈保护,把保护的断点进回到()。 【2-17】程序状态字PSW的作用是什么?常用的状态标志有哪几位,其作用是什么?若A中的内容为63H,那么P标志位的值为();单片机复位后,PSW=(),这时当前的工作寄存器区是()组工作寄存器区R4所对应的存储单元的地址为()。 【2-18】判断下列说法是否正确。

单片机2修改

8、已知程序执行前有A=01H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后: POP DPH POP DPL MOV DPTR,#3000H RL A MOV B,A MOVC A,@A+DPTR PUSH A MOV A,B INC A MOVC A,@A+DPTR PUSH A RET ORG 3000H DB 10H,80H,30H,80H,50 H,80H 请问:A= 80H ,SP= 42H,(41H)= 30H ,(42H)= 80H 。 9、在存储器扩展中,无论是线选法还是译码法,最终都是为了扩展芯片的片选端提供信号。 10、在MCS-51中,PC和DPTR都用于提供地址,但 PC是为了访问程序存储器提供地址, 而DPTR是为访问数据存储器提供地 址。 11、16KB RAM存储器的首地址若为3000H,则末地址为 6FFF H。 二.选择题(每题2分,共16分) 1、8051与8751的区别是: A、内部数据存储但也数目的不同 B、内部程序存储器的类型不同 C、内部数据存储器的类型不同 D、内部的寄存器的数目不同 2、判断以下有关PC和DPTR的结论是否正确? A、DPTR是可以访问的,而PC不能访问。对 B、它们都是8位的存储器错 C、它们都有加1的功能。错 D、DPTR可以分为两个8位的寄存器使用,但PC不能。对 3、PC的值是 A、当前正在执行指令的前一条指令的地址 B、当前正在执行指令的下一条指令的地址 C、当前正在执行指令的地址 D、控制器中指令寄存器的地址 4、判断下列说法是否正确 A、 8031共有21个特殊功能寄存器,它们的位都是可以用软件设置的,因此,是可以进行位寻址的。错 B、内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。错 C、程序计数器PC不能为用户编程时直接使用,因为它没有地址。对 5、下列说法错误的是: A、各中断发出的中断请求信号,都会标记在MCS -51系统的IE寄存器中。 B、各中断发出的中断请求信号,都会标记在MCS -51系统的TCON与SCON寄存器中。 C、各中断发出的中断请求信号,都会标记在MCS -51系统的IP寄存器中。 D、各中断发出的中断请求信号,都会标记在MCS -51系统的TMOD寄存器中。 6、在MCS-51中,需要外加电路实现中断撤除的是: A、电平方式的外部中断 B、定时中断 C、外部串行中断 D、脉冲方式的外部中断 7、判断下列的说法是否正确? A、特殊功能寄存器SCON,与定时器/计数器的控制无关。 B、特殊功能寄存器TMOD,与定时器/计数器的控制无关。 C、特殊功能寄存器IE,与定时器/计数器的控制无关。 D、特殊功能寄存器TCON,与定时器/计数器的控制无关。 8、判断下列说法是否正确? A、在8155H芯片中,决定端口和RAM单元编址的信号线是AD7-AD0和WR。 B、由于8155H不具有地址锁存功能,因此在与8031的接口电路中必须加地址锁存器。 C、8255A的B口可以设置成方式2。 D、8255A具有三态缓冲器,因此可以直接挂在系统的数据总线上。 9、区分MCS-51单片机片外程序存储器和片外数据存储器的最可靠的方法是: A、看其芯片的型号是ROM还是RAM B、看其离MCS-51芯片的远近 C、看其位于地址范围的低端还是高段看其是与RD 信号连接还是与PSEN信号连接 10、下列说法正确的是: A、同一级别的中断请求按时间的先后顺序响应。 B、同级中断不能嵌套。 C、低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。 D、同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。 三.简答题(每题4分,共20分) 1、片内RAM低128个单元划分为哪3个主要部分?各部分的主要功能是什么? 2、如果手中仅有一台示波器,可通过观察哪个引脚的状态,来大致判断MCS-51单片机正在工作? 3、若SP=60H,标号LABEL所在的地址为3456H。LCALL指令的地址为2000H,执行指令如下: 2000H LCALL LABEL 后,堆栈指针SP和堆栈内容发生了什么变化?PC的值等于什么?如果将指令LCALL 直接换成ACALL是否可以?如果换成ACALL指令,可调用的地址范围是什么? 4、定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关? 5、常用的I/O接口编址有哪两种方式?它们各有什么特点?MCS-51的I/O端口编址采用的是哪种方式? 四.计算与编写程序(共40分) 4、根据硬件图计算ADC0809的8个模拟量输入通道的地址,并编写程序实现8个通道的模拟量循环采集,采集结构存放至片内RAM 40H~47H中。(15分)

单片机第二章答案

单片机内部由哪些部分组成 答:MCS-51单片机主要包括的内部结构有8位的CPU、4KB的ROM存储器、128B 的RAM存储器、两个定时器/计数器、中断系统、4个并行I/O接口、1个串行接口和片内的时钟振荡器。 2.MCS-51单片机存储器的组织结构是怎样的 答:MCS-51单片机的存储器组织采用哈佛结构,即分为相互独立的程序存储器和数据存储器两大空间结构。程序存储器空间由内部ROM存储器和外部ROM存储器组成。数据存储器也分为内部RAM存储器和外部RAM存储器。内部RAM存储器又可划分为工作寄存器区、位寻址区和一般数据RAM区,MCS-51单片机的特殊功能寄存器也实现在内部RAM 区。 3.8051单片机内部的特殊功能寄存器有哪些 答:累加器B寄存器程序状态字堆栈指针数据寄存器指针P1口P0口P2口P3口中断优先级控制器中断允许控制器定时器方式选择定时器控制器 定时器2控制器定时器0高8位定时器串行控制器串行数据缓冲器电源控制器 4.8051的内部数据存储器分为哪几个部分 答:特殊功能寄存器区,位寻址区,用户RAM区,工作寄存器区。 5.MCS-51单片机的工作寄存器有多少个共分为多少个区域如何选择工作寄存器区 答:地址范围在00H~1FH的区域被称为工作寄存器区,共有32个单元,这32个单元又分为4个区域,称为0区、1区、2区和3区,每个区域有8个单元,这8个单元拥有自己的寄存器名称,分别为R0、R1、…、R7。MCS-51单片机在工作过程中只能选定一个区域作为当前活动的工作寄存器区,单片机复位后系统设置0区为当前默认的工作寄存器区,如果用户需要应用其他工作寄存器区,必须通过软件改变寄存器区选择位的值来切换当前工作寄存器区,工作寄存器区选择位是特殊功能寄存器PSW中的RS1和RS0两位。其选择规则

单片机课程设计完整版《PWM直流电动机调速控制系统》

单片机原理及应用课程设计报告设计题目: 学院: 专业: 班级: 学号: 学生姓名: 指导教师: 年月日 目录

设计题目:PWM直流电机调速系统 本文设计的PWM直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LED 液晶显示器、霍尔测速电路以及独立按键组成的电子产品。电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。通过独立按键实现对电机的启停、调速、转向的人工控制,LED实现对测量数据(速度)的显示。电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒内的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。 关键词:直流电机调速;定时中断;电动机;波形;LED显示器;51单片机 1 设计要求及主要技术指标: 基于MCS-51系列单片机AT89C52,设计一个单片机控制的直流电动机PWM调速控制装置。 设计要求 (1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。 (2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。 (3)设计一个4个按键的键盘。 K1:“启动/停止”。 K2:“正转/反转”。 K3:“加速”。 K4:“减速”。 (4)手动控制。在键盘上设置两个按键----直流电动机加速和直流电动机减速键。在

手动状态下,每按一次键,电动机的转速按照约定的速率改变。 (5)*测量并在LED显示器上显示电动机转速(rpm). (6)实现数字PID调速功能。 主要技术指标 (1)参考L298说明书,在系统中扩展直流电动机控制驱动电路。 (2)使用定时器产生可控PWM波,定时时间建议为250us。 (3)编写键盘控制程序,实现转向控制,并通过调整PWM波占空比,实现调速; (4)参考Protuse仿真效果图:图(1) 图(1) 2 设计过程 本文设计的直流PWM调速系统采用的是调压调速。系统主电路采用大功率GTR为开关器件、H桥单极式电路为功率放大电路的结构。PWM调制部分是在单片机开发平台之上,运用汇编语言编程控制。由定时器来产生宽度可调的矩形波。通过调节波形的宽度来控制H电路中的GTR通断时间,以达到调节电机速度的目的。增加了系统的灵活性和精确性,使整个PWM脉冲的产生过程得到了大大的简化。 本设计以控制驱动电路L298为核心,L298是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。 本设计以AT89C52单片机为核心,如下图(2),AT89C52是一个低电压,高性能 8位,片内含8k bytes的可反复擦写的只读程序存储器和256 bytes的随机存取数据存储器(),器件采用的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 图(2) 对直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同时,闭环系统的静差(额定负载时电机转速降落与理想空载转速之比)要小得多;当要求的静差率相同时, 闭环调速系统的调速范

单片机试卷及答案

一选择题 (n )1.MCS—51单片机是高档16位单片机。 (y )2.MCS—51的产品8051与8031的区别是:8031片内无ROM。 (n )3.单片机的CPU从功能上可分为运算器和存贮器。 (y )4.MCS-51的指令寄存器是一个8位寄存器,用于暂存待执行指令,等待译码。 (n )5.MCS—51的指令寄存器是对指令寄存器中的指令进行译码,将指令转变为执行此指令所需要的电信号。 (y )6.8051的累加器ACC是一个8位的寄存器,简称为A,用来存一个操作数或中间结果。 (y )7.8051的程序状态字寄存器PSW是一个8位的专用寄存器,用于存程序运行中的各种状态信息。 (n )8.MCS—51的程序存贮器用于存放运算中间结果。(y )9.MCS—51的数据存贮器在物理上和逻辑上都分为两个地址空间:一个是片内的256字节的RAM,另一个是片外最大可扩充64K字节的RAM。 (y )10.单片机的复位有上电自动复位和按钮手动复位两种,当单片机运行出错或进入死循环时,可按复位键重新启动。 (n )11.CPU的时钟周期为振荡器频率的倒数。 (n )12.单片机的一个机器周期是指完成某一个规定操作所需的时间,一般情况下,一个机器周期等于一个时钟周期组成。(y )13.单片机的指令周期是执行一条指令所需要的时间。一般由若干个机器周期组成。 (n )14.单片机系统扩展时使用的锁存器,是用于锁存高8位地址。 (n )15.MCS—51单片机上电复位后,片内数据存储器的内容均为00H。 (y )16.当8051单片机的晶振频率为12MHZ时,ALE地址锁存信号端的输出频率为2MHZ的方脉冲。 (y )17.8051单片机片内RAM从00H~1FH的32个单元,不仅可以作工作寄存器使用,而且可作为RAM来读写。 (n )18.MCS—51单片机的片内存贮器称为程序存贮器。(n )19.MCS—51单片机的数据存贮器是指外部存贮器。(y )20.MCS—51单片机的特殊功能寄存器集中布置在片内数据存贮器的一个区域中。 (y )21.微机控制系统的抗干扰问题是关系到微机应用成败的大问题. 二、单项选择题 1.MCS—51单片机的CPU主要的组成部分为a 。 A.运算器、控制器B.加法器、寄存器C.运算器、加法器D.运算器、译码器 2.单片机能直接运行的程序叫c 。 源程序B。汇编程序C。目标程序D。编译程序3.单片机中的程序计数器PC用来c 。 A.存放指令B.存放正在执行的指令地址C.存放下一条指令地址 D.存放上一条指令地址 4.单片机上电复位后,PC的内容和SP的内容为b 。A.0000H,00H B。0000H,07H C。0003H,07H D。0800H,08H 5.单片机8031的ALE引脚是b 。 输出高电平B。输出矩形脉冲,频率为fosc的1/6 C.输出低电平D。输出矩形脉冲,频率为fosc的1/2 6.单片机8031的引脚a 。 A.必须接地B。必须接+5V C。可悬空D。以上三种视需要而定7.访问外部存贮器或其它接口芯片时,作数据线和低8位地址线的是A 。 A.P0口B。P1口C。P2口D。P0口和P2口 8.PSW中的RS1和RS0用来a 。 选择工作寄存器区号B。指示复位C。选择定时器D。选择工作方式 9.上电复位后,PSW的值为d 。 A.1 B。07H C。FFH D。0 10.单片机上电复位后,堆栈区的最大允许范围是b 个单元。A.64 B。120 C。128 D。256 11.单片机上电复位后,堆栈区的最大允许范围是内部RAM的d 。 A.00H—FFH B。00H—07H C。07H—7FH D。08H—7FH 12.堆栈指针SP在内部RAM中的直接地址是c 。 A.00H B。07H C。81H D。FFH 的P0口,当使用外部存贮存器时它是一个d 。 A.传输高8位地址口A.传输低8位地址口 C.传输高8位数据口D.传输低8位地址/数据口 14.P0口作数据线和低8位地址线时b 。 A.应外接上拉电阻B.不能作I/O口C.能作I/O口D.应外接高电平 15.对于8031单片机,其内部RAM d 。 A.只能位寻址B.只能字节寻址C.既可位寻址又可字节寻址D.少部分只能位寻址 16.寻址方式就是c 的方式。 A.查找指令操作码B.查找指令C.查找指令操作数 D.查找指令操作码和操作数 17.8031 单片机若晶振频率为fosc=12MHz,则一个机器周期等于c μS。 A.1/12 B.1/2 C.1 D.2 18.MCS—51单片机的数据指针DPTR是一个16位的专用地址指针寄存器,主要用来b 。 A.存放指令B.存放16位地址,作间址寄存器使用C.存放

单片机原理李全利第二版课后题标准答案.doc

第二章 2.80C51单片机的存储器的组织采用何种结构存储器地址空间如何划分各地址空间的地址范围和容量如何在使用上有何特点 答: 采用哈佛结构,在物理上设计成程序存储器和数据存储器两个独立的空间80C51;基本型单片机片内程序存储器为4KB,地址范围是0000H-0FFFH,用于存放程序或常数;片内数据存储器为128字节RAM,地址范围是00H-7FH,用于存放运算的中间结果、暂存数据和数据缓冲;另外在80H-FFH还配有 21个 SFR。 第三章 7.为什么说布尔处理功能是80C51单片机的重要特 点答: 单片机指令系统中的布尔指令集、存储器中的位地址空间与CPU中的位操作构成 了片内的布尔功能系统,它可对位(bit )变量进行布尔处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。在实现位操作时,借用了程序状态标志器PSW()中的进位标志Cy作为位操作的“累加器”。 8.对于 80C52单片机内部RAM还存在高 128字节,应采用何种方 式访问答: 寄存器间接寻址方式。 15.试编写程序,将内部RAM的 20H、21H、22H三个连续单元的内容依次存 入2FH、2EH和 2DH单元。 答: MOV 2FH,20H MOV 2EH,21H MOV 2DH,22H 16.试编写程序,完成两个16 位数的减法:7F4DH-2B4EH,结果存入内部RAM的 30H 和31H单元,30H单元存差的高8 位,31H单元存差的低8 位。 答: CLR CY MOV 30H,#7FH MOV 31H,#4DH MOV R0, #31H MOV A,@R0 SUBB A,#4E MOV @R0,A;保存低字节相减结果 DEC R0 MOV A, @R0 SUBB A,#2BH MOV @R0,A;保存高字节相减结果 17.试编写程序,将R1中的低 4 位数与 R2中的高 4 位数合并成一个8 位数, 并将其存放在 R1中。

单片机课程设计——基于C51简易计算器

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用4×4矩阵键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C 语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus仿真。 引言 十进制加法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减乘除

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阳极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单..................................

单片机习题答案 (2)

. 第1章单片机概述 1.除了单片机这一名称之外,单片机还可称为和。 答:微控制器,嵌入式控制器。 2.单片机与普通微型计算机的不同之处在于其将、、和3 部分集成于一块芯片上。 答:CPU、存储器、I/O口。 3.8051与8751的区别是。 A.内部数据存储单元数目不同B.内部数据存储器的类型不同 D.内部寄存器的数目不同C.内部程序存储器的类型不同 答:C。 4.在家用电器中使用单片机应属于微计算机的。 A.辅助设计应用;B.测量、控制应用;C.数值计算应用;D.数据处理应用 答:B。 5.微处理器、微计算机、微处理机、CPU、单片机它们之间有何区别? 答:微处理器、微处理机和都是中央处理器的不同称谓;而微计算机、单片CPU 机都是一个完整的计算机系统,单片机特指集成在一个芯片上的用于测控目的的单片微计算机。 6.MCS-51系列单片机的基本型芯片分别为哪几种?它们的差别是什么? 答:系列单片机的基本型芯片分别是、和。它们的差别是875180318051MCS-51在片内程序存储器上。无片内程序存储器,片内有的程序存储4KB80318051器,而片内集成有的程序存储器。ROM4KB8751EPROM7.为什么不应当把51系列单片机称为MCS-51系列单片机? 答:因为系列单片机中的“”是公司生产的单片机的系列符号,IntelMCSMCS-51而系列单片机是指世界各个厂家生产的所有与的内核结构、指令系统805151兼容的单片机。 8.AT89C51单片机相当于MCS-51系列单片机中的哪一种型号的产品? .. . 答:相当于系列中的,只不过是芯片内的存储FlashMCS-51AT89C5187C514KB 器取代了片内的的。4KB87C51EPROM 第2章 AT89C51单片机片内硬件结构

单片机 第二章 习题参考答案

第二章习题参考答案 一、填空题: 1、当MCS-51引脚ALE有效时,表示从P0口稳定地送出了低8位地址。 2、MCS-51的堆栈就是软件填写堆栈指针临时在片 内数据存储器内开辟的区域。 3、当使用8751且EA=1,程序存储器地址小于 1000H 时,访问的就是片内ROM。 4、MCS-51系统中,当PSEN信号有效时,表示CPU要从外部程序存储器读取信息。 5、MCS-51有4组工作寄存器,它们的地址范围就 是 00H~1FH 。 6、MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址。 7、PSW中RS1 RS0=10时,R2的地址为 12H 。 8、PSW中RS1 RS0=11时,R2的地址为 1AH 。 9、单片机系统复位后,(PSW)=00H,因此片内RAM寄存区的当前寄存器就是第 0 组,8个寄存器的单元地址 为 00H ~ 07H 。

10、PC复位后为 0000H 。 11、一个机器周期= 12 个振荡周期= 6 个时钟周期。 12、PC的内容为将要执行的的指令地址。 13、在MCS-51单片机中,如果采用6MHz晶振,1个机器周期 为 2us 。 14、内部RAM中,位地址为30H的位,该位所在字节的字节地址 为 26H 。 15、若A中的内容为63H,那么,P标志位的值为 0 。 16、8051单片机复位后,R4所对应的存储单元的地址为 04H ,因上电时PSW= 00H 。这时当前的工作寄存器区就是第 0 工作寄存器区。 17、使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器。 18、片内RAM低128个单元划分为哪3个主要部分: 工作寄存器区、位寻址区 与用户RAM区。 19、通过堆栈操作实现子程序调用,首先就要把 PC 的内容入栈,以进行断点保护。

单片机期末复习题2(带答案)

某存储器芯片的地址线为11根,那么它的存储容量为( 2KB )。 MCS-51外扩I/O口与外RAM是统一编址的 8051单片机的( P3 )口的引脚,还具有外中断、串行通信等第二功能。 MCS-51系列单片机系统的外部设备是通过什么方式访问的? MCS-51系列单片机的外部设备是通过查询工作方式、定时扫描工作方式和中断工作方式访问的 已知某数的BCD码为0111 0101 0100 0010 则其表示的十进制数值为7542 简述MCS-51单片机内部主要有那几个功能单元组成?单片机内部有几种存储器,它们的作用分别是什么?MCS-51系列单片机主要包括以下几个部分:CPU、并行接口、存储器(ROM、RAM)、时钟电路、定时器、中断系统、串行接口、总线。单片机内部具有两种存储器RAM和ROM。RAM是用来存放中间结果,ROM 是用来存放程序。 MCS-51系列单片机具有几个中断源,分别是如何定义的?其中哪些中断源可以被定义为高优先级中断? MCS-51系列单片机具有5个中断源,分别是外部中断INT0和外部中断INT1、定时器溢出中断0和定时器溢出中断1以及串行中断。通过对中断优先级寄存器IP的设置,每个中断源都可以被定义为高优先级中断 CPU主要的组成部部分为(运算器、控制器) 8051单片机的P2口只能用作通用I/O 口。(错) 计算机能直接识别的语言为(机器语言) CPU和外设之间的数据传送方式主要有查询方式和中断方式,两者相比后者的效率更高。 MCS-51系列单片机的内部资源有哪些? MCS-51系列单片机上有1个8位CPU、128B的RAM、21个SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资源。 MCS-51系列单片机字长是(8)位,有(40)根引脚 MCS--51单片机的复位信号是(高电平)有效。 8051系列CPU是(8)位的单片机 五个中断源中优先级高的是外部中断0,优先级是低的是串行口中断。 MCS-51单片机共有两个时钟XTAL1 和XTAL2。(错) 本课程实验所用的单片机的型号是什么?它有多少个I/O口,多大的ROM?

单片机课程设计电阻测量(完整版)

课程设计报告课程名称:单片机课程设计 设计题目:电阻测量 院系:通信与控制工程系 专业:通信工程 班级: 学生姓名: 学号: 08409212 起止日期: 指导教师: 教研室主任:

摘要 本设计电阻测量是利用A/D转换原理,将被测模拟量转换成数字量,并用数字方式显示测量结果的电子测量仪表。通常测量电阻都采用大规模的A/D转换集成电路,测量精度高,读数方便,在体积、重量、耗电、稳定性及可靠性等方面性能指标均明显优于指针式万用表。其中,A/D转换器将输入的模拟量转换成数字量,逻辑控制电路产生控制信号,按规定的时序将A/D转换器中各组模拟开关接通或断开,保证A/D 转换正常进行。A/D转换结果通过计数译码电路变换成BCD码,最后驱动显示器显示相应的数值。本系统以单片机AT89C52为系统的控制核心,结合A/D转换芯片ADC0809设计一个电阻测量表,能够测量一定数值之间的电阻值,通过四位数码显示。具有读数据准确,测量方便的特点。 关键词:单片机(AT89C52);电压;A/D转换;ADC0809

目录 设计要求 (1) 1、方案论证与对比 (1) 1.1方案一 (1) 1.2方案二 (1) 1.3方案对比与比较................................... 错误!未定义书签。 2、系统硬件电路的设计 (2) 2.1振荡电路模块 (2) 2.2A/D转换电路模块 (3) 2.2.1主要性能 (3) 2.2.2 ADC0809芯片的组成原理 (4) 2.2.3 ADC0809引脚功能 (4) 2.3主控芯片AT89C52模块 (5) 2.3.1主要功能特性 (6) 2.3.2 主要引脚功能 (6) 2.4显示控制电路的设计及原理 (8) 3、程序设计 (9) 3.1初始化程序 (9) 3.2主程序 (10) 3.3显示子程序 (10) 3.4A/D转换测量子程序 (11) 4、调试及性能分析 (11) 4.1调试与测试 (11) 4.2性能分析 (12) 5、元件清单 (13) 6、总结与思考及致谢............................... 错误!未定义书签。参考文献. (13)

相关文档