我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 980|回复: 0

[资料贡献] 单片机小部分答案

[复制链接]
  • TA的每日心情
    无聊
    2024-9-25 10:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    110

    主题

    78

    回帖

    705

    积分

    二级逆天

    积分
    705

    终身成就奖金点子奖

    QQ
    发表于 2016-11-14 20:15:38 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    2-6. MCS-51单片机片内256B的数据存储器可分为几个区?分别作什么用?
    4个区

    工作寄存器区:从00H~~1FH安排了4组工作寄存器,每组占用8个RAM字节,记为R0~~R7

    位寻址区:地址从20H~~2FH,共16字节,128位

    用户RAM区:地址30H~~7FH,共80字节,这是正在给用户使用的一般RAM区,该区主要用来存放随机数据和运的结果,另外也常常把堆栈开辟在该区域中

    剩下的区域80H~~FFH,存放21个特殊功能寄存器,它们离散分部在该区域中,未占用的地址单元无定义,用户不可以使用,如果对未定义单元进行读/写操作,得到的是随机数,而写入的数据将会丢失

    3-11 已知SP=25H,PC=2345H,(24H)=12H,(25H)=34H,(26H)=56H。问此时执行RET指令后,SP=?PC=?

    解:MCS-51系统中,堆栈是向上生长的,故出栈操作时堆栈指针要减小。执行RET指令的过程如下:

    PC15-8 (SP) 即PC15-8=(25H)=34H

    SP SP-1 即SP=24H

    PC7-0 (SP) 即PC7-0=(24H)=12H

    SP SP-1 即SP=23H

    结果为:SP=23H,PC=3412H

    3-21下列程序段汇编后,从3000H开始的各有关存储单元的内容将是什么?
    ORG 3000H
    TAB1 EQU 3234H
    TAB2 EQU 4000H
    DB "START"
    DW TAB1,TAB2,9000H
    地址是3000H的单元存放‘S’的ascii码53H
    地址是3001H的单元存放‘T’的ascii码54H
    地址是3002H的单元存放‘A’的ascii码41H
    地址是3003H的单元存放‘R’的ascii码52H
    地址是3004H的单元存放‘T’的ascii码54H
    地址是3005H的单元存放34H
    地址是3006H的单元存放32H
    地址是3007H的单元存放00H
    地址是3008H的单元存放40H
    地址是3009H的单元存放00H
    地址是300AH的单元存放90H
    equ定义的是常量,不占用存储空间,并且在equ之后看到tab1和tab2就分别用3234h和4000h替换。另外注意字类型数据存放时,高字节在高地址单元。
    还要说明一点,汇编语言里面,双引号和单引号一样,都是表示字符串。

    4-7 在89S51单片机中,已知时钟频率为12MHz,请编程使P1.0和P1.1分别输出周期为2ms和500μs的方波。
    答:选择方式2,用定时器T1
    MOV    TMOD,#20H
    MOV    TH1,#06H
    MOV    TL1,#06H
    SETB    TR1
    L1:    MOV    R2,#04H
    L2:    JNB    TF1,$
    CLR    TF1,
    CPL    P1.1
    DJNZ    R2,L2
    CPL    P1.0
    LJMP    L1


    4-6 已知89C51单片机的fosc=6MHz, 请利用T0和P1.0输出矩
    形波。矩形波高电平宽50μs,低电平宽300μs。

    解:T0采用模式2作为50μs定时时的初值:


    所以

    作300μs定时时的初值:



    所以

    MOV TMOD,#02H ;设置定时器T0工作于模式2

    L2:CLR P1.0 1.0输出低电平

    MOV TH0,#6AH ;置入定时300μs初值

    MOV TL0,#6AH

    SETB TR0 ;启动T0

    LOOP1:JBC TF0,L1;查询300μs时间到?时间


    到,转L1

    SJMP LOOP1 ;时间未到,转LOOP1,继续查询

    L1:SETB P1.0 1.0输出高电平

    CLR TR0 ;关闭T0

    MOV TH0,#0E7H ;置入定时300μs初值

    MOV TL0,# 0E7H

    SETB TR0 ; 启动T0

    LOOP2:JBC TF0,L2;查询50μs时间到?时间到,转L2

    SJMP LOOP2 ;时间未到,转LOOP2,继续查询
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    公告:服务器刚移机,
    大家请不要下载东西。
    会下载失败


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表