【单片机】第一周作业:机器码

单片机作业

第一周作业:机器码

Write By MengLang Studio | 萌狼工作室 | 哔哩哔哩:萌狼蓝天

学习编程有问题?上萌狼工作室交流社区

一、选择题

  1. (单选题, 5分) 机器数是将符号数字化的数,是数字在计算机中的( 二进制 )表示形式。

  2. (单选题, 5分) 机器数的特点是符号数字化和其数的大小受机器(​ ​字长)的限制。

  3. (单选题, 5分) 用四位二进制编码来表示一位十进制符号的数的表示方式为( ASCII )。

  4. (单选题, 5分) 十进制数56.78的8421码为( 0101 0110 . 0111 1000 )。

  5. (单选题, 5分) 字符串“a5F”的ASCII码是( ​ 0x61 0x35 0x46 )。

    参考资料:ASCII码 - 基本ASCII码和扩展ASCII码,最全的ASCII码对照表 (asciim.cn)

  6. (单选题, 5分) 目前大部分单片机在芯片引脚上均采用( 重映射技术 )技术。

    专用、重映射、分时复用和同时复用是在单片机芯片引脚上常见的技术,它们有不同的作用和特点:

    1. 专用技术:专用引脚是那些被设计用于特定功能的引脚,其功能不能被重新映射或改变。这些引脚通常用于特定的硬件模块,如定时器、串口通信、模拟输入等。它们在设计时就被固定分配给了特定的功能,无法改变。

    2. 重映射技术:重映射引脚是一种可配置的引脚,可以通过软件配置将其功能重新映射到其他引脚上。这种技术提供了一定的灵活性,使开发者可以根据应用需求更改引脚的功能。例如,将一个GPIO引脚重新映射为定时器输入引脚,从而适应不同的应用场景。

    3. 分时复用技术:分时复用引脚是指一个引脚在不同的时间段内可以用于不同的功能。通过在不同的时钟周期下切换引脚的功能,可以实现多个功能共享同一个引脚。这种技术通常用于复杂的单片机,以充分利用有限的引脚资源。

    4. 同时复用技术:同时复用引脚是一种高级的技术,允许同一个引脚在同一时钟周期内同时执行多个不同的功能。这种技术需要复杂的硬件电路和逻辑来控制引脚的复用,通常在高性能的多用途芯片上使用。

    目前大部分单片机在芯片引脚上主要采用专用、重映射和分时复用技术。这是因为这些技术提供了足够的灵活性,以满足各种不同的应用需求,同时保持了相对较低的制造成本。

    同时复用技术在单片机中较少使用,因为它通常需要更复杂的硬件设计和控制,增加了成本和复杂性。选择使用哪种技术取决于具体的应用和设计要求。

    专用、重映射和分时复用技术在单片机中都有广泛应用,但其中重映射技术****更常用于单片机。 ​

    重映射技术提供了灵活性,使开发者可以根据具体需求重新配置引脚的功能。

    这样可以在设计过程中更好地适应不同的应用场景和需要。通过软件配置,可以将一个引脚的功能重新映射到另一个引脚上,从而增加了系统的灵活性。 使用重映射技术的好处包括: ​

    1. 节省引脚资源:在引脚有限的情况下,重映射技术可以将多个功能映射到相同的引脚上,从而最大化利用有限的引脚资源。 ​

    2. 简化硬件设计:通过重映射技术,可以减少所需的硬件电路和逻辑,简化整体设计,从而降低成本和复杂性。 ​

    3. 更好的适应性:随着需求的变化,可以通过重新配置引脚的功能来满足不同的应用需求,提高系统的适应性。 ​

    因此,重映射技术更常用于单片机,因为它提供了更大的灵活性和可配置性,适应了不同的应用需求。但需要注意的是,具体使用哪种技术还取决于单片机制造商的设计选择和具体应用需求。

二、判断题

  1. (判断题, 4分) 无符号数是机器数。( 正确 ​

    无符号数是一种机器数。

    机器数是计算机内部用于表示和处理数据的二进制数值,它们可以是有符号数(包括正数和负数)或无符号数(只表示非负数)。

    无符号数通常用于表示自然数、计数和数据存储地址等,因为它们不包含符号位来表示正负号。

    无符号数的范围通常比相同位数的有符号数更大,因为它们不需要一个位来表示符号。

    例如,一个8位的无符号整数可以表示从0到255的范围,而相同位数的有符号整数可以表示从-128到127的范围。因此,无符号数在某些应用中非常有用,特别是当只需要表示非负整数时。

  2. (判断题, 4分) 机器数的数值称为机器数的真值。(正确

    机器数的数值称为机器数的真值,也可以称为机器数的绝对值或无符号数值。

    机器数的真值是其在计算机内部以二进制形式表示的实际数值。

    对于无符号数来说,其机器数的真值等于其二进制表示的数值本身。

    例如,一个8位的无符号整数00101101,其机器数的真值就是45。

    而对于有符号数来说,机器数的真值需要考虑符号位的影响。

    有符号数通常使用二进制补码来表示负数。

    补码的计算方法是将数值的绝对值取反后加1。

    例如,一个8位的有符号整数的补码表示-45,可以通过以下步骤计算:

    1. 取45的二进制表示:00101101
    2. 取反得到其反码:11010010
    3. 加1得到其补码:11010011​ 因此,对于有符号数来说,其机器数的真值等于其补码表示的数值。
    4. 在这个例子中,有符号整数的机器数真值为-45。

    总结来说,机器数的真值是指在计算机内部以二进制形式表示的实际数值,无论是无符号数还是有符号数。

  3. (判断题, 4分) BCD码又称为8421码。(正确

    BCD码通常也称为8421码。

    BCD是"Binary-Coded Decimal"​​的缩写,表示的是用二进制编码表示十进制数字的一种编码方式。

    8421码是BCD码的一种常见形式,其中每个十进制数字都用4位二进制数来表示,采用了权重为8、4、2、1的权重值,因此称为8421码。

    具体来说,8421码中的每个十进制数字的编码如下:

    • 十进制0表示为:0000

    • 十进制1表示为:0001

    • 十进制2表示为:0010

    • 十进制3表示为:0011

    • 十进制4表示为:0100

    • 十进制5表示为:0101

    • 十进制6表示为:0110

    • 十进制7表示为:0111

    • 十进制8表示为:1000

    • 十进制9表示为:1001

    这种编码方式非常适合于处理十进制数字,因为它直接表示了每个数字的权重,便于进行数字的加法、减法和其他数学运算。

三、多选题

  1. (多选题, 7分) 机器数在计算机中有三种表示法( 原码、反码、补码)。

  2. (多选题, 7分) 单片机按照用途可分为( 通用型)和( 专用型 )两大类。

  3. (多选题, 7分) 按字长划分目前单片机主要品类有( 8位单片机、16位单片机和32位单片机)单片机。

    按字长划分,目前单片机主要品类有8位单片机、16位单片机和32位单片机。

    1. 8位单片机:这是最常见和广泛应用的单片机品类,它的字长为8位,意味着每次可以处理8位二进制数据。

      8位单片机通常价格低廉,功耗低,适合于简单的控制、嵌入式系统和低成本应用。

    2. 16位单片机:这种单片机的字长为16位,能够处理更多的数据,提供更高的性能和计算能力。

      16位单片机适用于需要更高精度和复杂计算的应用,如自动控制、仪器仪表和工业控制等。

    3. 32位单片机:这是目前最强大和高性能的单片机品类,其字长为32位。

      32位单片机通常具有更高的处理速度、更大的存储容量和更复杂的功能。它们适用于要求较高的处理性能、复杂算法和高级应用,比如数字信号处理、嵌入式Linux系统和高级通信系统等。

      需要注意的是,随着技术的不断发展,单片机的字长也在不断拓展,出现了一些其他字长的单片机,如12位、24位等。然而,目前主流的单片机品类仍以8位、16位和32位为主。

    根据字长的常见定义和市场上的实际情况,4位单片机通常不被作为一种独立的品类来按字长划分单片机。在单片机领域中,通常使用的字长分别是8位、16位和32位。

    字长指的是单片机能够同时处理的二进制位数。

    8位单片机可以同时处理8位二进制数据,

    16位单片机可以同时处理16位二进制数据,

    32位单片机则可以同时处理32位二进制数据。

    这些字长的选择是为了满足不同应用需求和处理能力的要求。

    尽管4位单片机在过去曾经存在过,但随着技术的进步和市场需求的变化,它们已经趋于较少使用甚至停产。

    4位单片机的主要限制包括处理能力有限、存储容量有限以及编程灵活性不足等。

    与较长字长的单片机相比,这些限制导致4位单片机适用范围较窄且无法满足现代应用的需求。

    综上所述,尽管4位单片机在过去存在过,但根据字长的常见定义和市场趋势,目前它们通常不被视为一种独立的品类来进行字长划分。

  4. (多选题, 7分) 单片机分为( 商业级、工业级、汽车级、军用级 ),不同等级芯片,品质不同。

四、计算题

  1. (计算题, 10分) 求+110、-123的原码、反码和补码(机器字长8位)

    +110
    原码 0110 1110
    反码 0110 1110
    补码 0110 1110
    
    -123
    原码 1111 1011 
    反码 1000 0100
    补码 1000 0101
    
  2. (计算题, 10分) 用求补运算求-58的补码。

    求-58补码
    
    正常计算方式
    
    原码 1011 1010
    反码 1100 0101
    补码 1100 0110
    
    求补运算:对一个二进制数,符号位和数值位一起取反,末位+1
    
    [58]补 = 0011 1010
    进行求补运算 [-58]补 = 1100 0101 + 1 = 1100 0110 
    
  3. (计算题, 10分) 用求补方法计算67-125的值

    方法1:补码的加减运算法则:
    [67-125]补 = [67]补 - [125]补 = 0100 0011 - 0111 1101 = 1100 0110 
    
    方法2:求补运算
    ∵67-125=-58   [58]补 = 0011 1010   进行求补运算 [-58]补 = 1100 0101 + 1 = 1100 0110 
    
    方法3:结合方法1 和 方法2
    

posted @ 2023-09-10 18:29  萌狼蓝天  阅读(194)  评论(1编辑  收藏  举报