• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51单片机怎么8位数据扩展成12位

pengTOM 2019-03-25 浏览量:1247
可以用移位实现吗
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 你的意思好像是,51单片机的P口是8位为一组的,你想要12位的数据总线,

    如果IO有空余的,比如,那么就用P0口和P1口的低4位。

    12位的值低4位赋值给P1口低4位,再将高8位赋值给P0。

    这样进行写操作,读的话也是直接读P0 和P1

    但需要软件自己进行移位转换一下,组成一个12位的数,使用unsigned int类型

    • 发布于 2019-03-25
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:8
  • 其实是没有12位的,应该是要使用16位的数据来表达12位的,只是高四位要被省去。也就是要使用unsigned short int型的
    • 发布于2019-03-26
    • 举报
    • 评论 0
    • 1
    • 0

  • 8位数据扩展为12位其实就是相当于数据扩大了16(2^4)倍,在二进制中,向左移动一位也就相当于数据扩大为原来的2倍(注意不要溢出),所以使用移位的方式把8位数据向左移动4位就是12位的数据了。
    • 发布于2019-03-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以用int类型的, int是16位的,所以12位也是可以的,或者用long int也可以,这样就可以32位的,但是运算速度会变慢一些
    • 发布于2019-03-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接拼一个16位的舍弃高4位即可
    • 发布于2019-03-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般没有12位的变量,都是用的16位的,要将8位数据保存到16位里面,可以用一个union来实现
    • 发布于2019-03-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 单片机上没有12位的数据类型,要使用16位的,只是要把高4位清0,只留低12位
    • 发布于2019-03-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 只能是16位的数据,把高4位屏蔽了,单片机上是没有12位的数据结构的。
    • 发布于2019-03-30
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51单片机怎么8位数据扩展成12位