2016-01-25 11:54:35 baidu_33836580 阅读数 453
  • 单片机控制第一个外设-LED-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4000 人正在学习 去看看 朱有鹏

题目见后面的插图。

最佳答案:
;-------------------------------------------------
3.
    ORG  0000H
    JMP  START
    ORG  000BH
    JMP  T0_INT

START:
    MOV  TMOD, #01H
    MOV  TH0, #(65536-1000) / 256
    MOV  TL0, #(65536-1000) MOD 256
    SETB TR0
    SETB ET0
    SETB EA
    SJMP $

T0_INT:
    MOV  TH0, #(65536-1000) / 256
    MOV  TL0, #(65536-1000) MOD 256
    CPL  P1.0
    RETI

END
;-------------------------------------------------
4.
U3的地址范围:0100 0000 0000 0000~0101 1111 1111 1111
U4的地址范围:0010 0000 0000 0000~0011 1111 1111 1111
 
    ORG  0000H
    MOV  R0, #0
    MOV  R2, #10
LOOP:
    MOV  P2, #40H
    MOVX A, @R0

    MOV  P2, #20H
    MOVX @R0,  A
    INC  R0
    DJNZ LOOP

    SJMP $

END   
;-------------------------------------------------
题目内容见下图:

51单片机 汇编语言 两道题 - 非著名博主 - 电子信息角落

图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/33c9fa25ab18972b397f2b84e6cd7b899f510a1c.html#

提问者对于答案的评价:万分感谢!!!!!
原题网址:http://zhidao.baidu.com/question/362374359.html
原题网址:http://zhidao.baidu.com/question/362838691.html
;-------------------------------------------------

2016-01-25 11:50:45 baidu_33836580 阅读数 6693
  • 单片机控制第一个外设-LED-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4000 人正在学习 去看看 朱有鹏

80C51单片机的时钟频率为12MHz,利用定时器T1和P1.0输出矩形脉冲。
波形只画出了2段:一段为100us 另一段为50us。
要完全的、完整的、详细的编写此程序的过程!谢谢
悬赏分:5 | 解决时间:2011-1-9 15:24
------------------------
最佳答案:
用一个定时器定时50us,也可以达到题目要求。
在我的空间里面有类似的问题和解答。

        ORG   0000H
        SJMP  START
        ORG   001BH          ;T1中断入口.
        SJMP  T1_INT
START:
        MOV  TMOD,  #20H     ;设置T1定时方式2
        MOV  TH1,  #206      ;自动重新装入方式.
        MOV  TL1,  #206      ;定时时间
        MOV  IE,  #10001000B ;开放总中断和T1中断.
        SETB TR1             ;启动T1
        MOV  R2,  #3         ;周期是3×50us
        SJMP $               ;等着吧.
T1_INT:
        SETB P1.0            ;输出高.
        DJNZ R2,  T1_END     ;R2-1
        CLR  P1.0            ;减到0,就输出低电平.
        MOV  R2,  #3
T1_END:
        RETI                 ;中断返回.
END                          ;完.
------------------------
回答时间:2011-1-9 13:05
回答者: 做而论道 | 十四级  采纳率:37%
提问者对于答案的评价:谢谢咯 很感谢
原题网址:http://zhidao.baidu.com/question/213175472.html
=========================================== 
已知51单片机系统晶振频率为12MHz,请利用定时器1工作方式1,中断方式在P2.3输出频率为10Hz的方波。
写出定时设计过程及完整代码
问题补充:用汇编的   麻烦写一下
悬赏分:10 | 解决时间:2011-1-10 13:58
------------------------
最佳答案:

        ORG   0000H
        SJMP  START
        ORG   001BH          ;T1中断入口.
        SJMP  T1_INT
START:
        MOV  TMOD, #10H     ;设置T1定时方式1
        MOV  TH1, #(65536-50000) / 256   ;送入初始值.
        MOV  TL1, #(65536-50000) MOD 256 ;定时
        MOV  IE, #10001000B ;开放总中断和T1中断.
        SETB TR1            ;启动T1
        SJMP $              ;等着吧.
T1_INT:
        MOV  TH1, #(65536-50000) / 256   ;重新送入初始值.
        MOV  TL1, #(65536-50000) MOD 256 ;定时
        CPL   P2.3          ;输出方波.
        RETI                ;中断返回.
END                         ;完.
------------------------
回答时间:2011-1-10 13:47
回答者: 做而论道 | 十四级  采纳率:37%
原题网址:http://zhidao.baidu.com/question/212987769.html
===========================================
单片机编程

选用T0操作模式1用于定时,由P1.7输出周期为5ms方波的控制程序,设晶振fosc=6MHz。      
悬赏分:50 | 解决时间:2011-1-9 14:25
------------------------
最佳答案:

        ORG  0000H
        MOV  TMOD, #01H    ;T0方式1定时.
        SETB TR0            ;启动T0
LOOP:
        MOV  TH0, #(65536-5000/2/2) / 256   ;送入初始值.
        MOV  TL0, #(65536-5000/2/2) MOD 256 ;定时
        JNB  TF0, $         ;等待定时完成.
        CLR  TF0            ;清除标志.
        CPL  P1.7           ;输出方波.
        SJMP LOOP           ;无限循环.
END                         ;完.
------------------------
回答时间:2011-1-9 10:23
回答者: 做而论道 | 十四级  采纳率:37%
提问者对于答案的评价:谢谢
原题网址:http://zhidao.baidu.com/question/213894811.html
===========================================

2016-01-25 11:48:56 baidu_33836580 阅读数 4896
  • 单片机控制第一个外设-LED-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4000 人正在学习 去看看 朱有鹏

要求:
(1)4位数码动态显示,最低位按1/10秒计数,最高计数单位为9.59.9。
(2)用开关K0控制秒表的启动、停止、清零功能,按一次启动计时,按一次停止,再按一次清零,在三个状态中循环。
(3)要求K0使用外部中断,优先级高于T0的优先级。
悬赏分:5 | 解决时间:2011-6-19 15:59
;====================================================
最佳答案:

所使用的电路可见:

http://xiangce.baidu.com/picture/detail/e0e3dcca6a23826c17c97c512f075f13e02d51f6


下列程序已经调试通过,


      ORG  0000H
      JMP  MAIN
      ORG  0003H
      JMP  X0_INT
      ORG  000BH
      JMP  T0_INT
;---------------------------------------
X0_INT:
      INC  R0 
      CJNE R0, #1, STOP
      SETB TR0
      RETI
;---------------------
STOP:
      CJNE R0, #2, R0_0
      CLR  TR0
      RETI
;---------------------
R0_0:
      CLR  A
      MOV  R0, A
      MOV  R1, A
      MOV  R2, A
      MOV  R3, A
      MOV  R4, A
      MOV  R5, A
      MOV  R6, A
      RETI
;---------------------------------------
T0_INT:
      MOV  TL0, #(55536 MOD 256)
      MOV  TH0, #(55536 / 256)
      INC  R2          ;百分之一秒.
      CJNE R2, #10, T0_E
      MOV  R2, #0
      INC  R3          ;十分之一秒.
      CJNE R3, #10, T0_E
      MOV  R3, #0
      INC  R4          ;秒个位.
      CJNE R4, #10, T0_E
      MOV  R4, #0
      INC  R5          ;秒十位.
      CJNE R5, #6, T0_E
      MOV  R5, #0
      INC  R6          ;分.
      CJNE R6, #10, T0_E
      MOV  R6, #0
T0_E:
      RETI
;---------------------------------------
MAIN:
      MOV  TMOD, #01H
      MOV  TH0, #(55536 / 256)   ;10ms@12MHz
      MOV  TL0, #(55536 MOD 256)
      SETB TR0
      SETB ET0
      SETB IT0
      SETB PX0
      SETB EX0
      SETB EA
      CLR  A
      MOV  R1, A
      MOV  R2, A
      MOV  R3, A
      MOV  R4, A
      MOV  R5, A
      MOV  R6, A
      MOV  R0, #1
LP1:  LCALL XIANSHI
      JMP LP1
;---------------------------------------
XIANSHI:
      MOV  DPTR, #D_TAB
      MOV  R1, #03H
      MOV  R7, #255 - 8
LOOP:
      MOV  A,  @R1
      MOVC A, @A + DPTR
      MOV  P2, #255       ;消隐.
      MOV  P0, A          ;输出段码.
      MOV  P2, R7         ;输出位码.
      CALL DL
      MOV  A, R7
      RR   A
      MOV  R7, A
      INC  R1
      CJNE R1, #07H, LOOP
      RET
D_TAB: 
      DB  0C0H, 0F9H, 0A4H, 0B0H, 99H,  92H, 82H, 0F8H
      DB   80H,  90H,  88H,  83H, 86H, 0A1H, 86H,  8EH
;---------------------------------------
DL:
      DJNZ ACC, $
      DJNZ ACC, $
      RET
;---------------------------------------
END
;====================================================
回答时间:2011-6-18 17:00
回答者: 做而论道 | 十五级 采纳率:43% 
原题网址:http://zhidao.baidu.com/question/281050349.html
;====================================================

2016-01-25 12:01:14 baidu_33836580 阅读数 1714
  • 单片机控制第一个外设-LED-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4000 人正在学习 去看看 朱有鹏

要求:将定时器 T1 设置为外部事件计数器,要求每计 500 个脉冲,再将 T1 转为定时方式,在 P1.2 输出一个脉宽 10ms 的正脉冲。

周而复始。


设系统时钟频率为 12MHz。


做而论道编写的程序如下:


    ORG   0000H

;-----------------------------------

START:

    CLR   P1.2

    CLR   TR1

    MOV   TMOD, #50H     ;T1计数方式1

    MOV   TH1, #(65536 - 500) / 256   ;计数值为500

    MOV   TL1, #(65536 - 500) MOD 256 

    SETB  TR1

    JNB   TF1, $

    CLR   TF1

;-----------------------------------

    SETB  P1.2

    CLR   TR1

    MOV   TMOD, #10H     ;T1定时方式1

    MOV   TH1, #(65536 - 10000) / 256 ;定时10000us

    MOV   TL1, #(65536 - 10000) MOD 256 

    SETB  TR1

    JNB   TF1, $

    CLR   TF1

    SJMP  START

;-----------------------------------

END


题目链接:http://zhidao.baidu.com/question/538771215


在百度知道的网页上,回答了上面的问题,提问者,也有追问。


但是继续回答后,百度知道竟然不显示我的答案了 !


只是给我显示出来:正在提交,稍等...。


现在,已经等了十几天,仍然没有结果。


提问者,已经采纳了一个错误的答案。


看来,百度,真是太忙了。



2016-01-25 12:02:49 baidu_33836580 阅读数 369
  • 单片机控制第一个外设-LED-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4000 人正在学习 去看看 朱有鹏

;

;51单片机,8个按键、8个发光二极管。

;一个键按下则对应灯亮,3秒后灭,每个键控制一个灯。

;

;题目要求的电路,非常简单,用 P1 连接按键、P2 连接 LED 即可。

;

;用定时器,定时 7.5 ms,中断 400 遍,即为 3 秒钟。


;针对每个灯,都要有一个计时单元,用来控制亮灯 3 秒钟的时间。


;用汇编语言编写程序如下:


KEY   EQU  30H

K_L   EQU  31H

K_T   EQU  32H


    ORG   0000H

    AJMP  START

    ORG   000BH       ;T0中断入口地址

    JMP   T0_INT

START:

    MOV   TH0, #40    ;定时7.5ms@11.0592MHz

    SETB  TR0

    SETB  ET0

    SETB  EA

    SJMP  $           ;主程序结束

;--------------------------------

T0_INT:

    MOV   TH0, #40    ;定时7.5ms@11.0592MHz

    MOV   A, P1

    CPL   A           ;有按键,为1

    MOV   KEY, A

    XRL   A, K_L

    MOV   K_T, A

    MOV   K_L, KEY

    MOV   A, KEY

    CPL   A           ;没按则为1

    ANL   A, K_T      ;释放则为1

;-----------------------------------

    MOV   R0, #40H

    MOV   R2, #127

T0_L1:

    JNB   ACC.7, $ + 9

    MOV   @R0, #200

    XCH   A, R2

    ANL   P2, A       ;打开LED

    XCH   A, R2

;

    RL    A

    XCH   A, R2

    RR    A           ;右移R2

    XCH   A, R2

    INC   R0

    CJNE  R0, #48H, T0_L1

;-----------------------------------

    CPL   F0

    JNB   F0, T0_END

    MOV   R0, #40H

    MOV   R2, #128

    MOV   A, R2

T0_L2:

    DEC   @R0

    CJNE  @R0, #255, $ + 6

    INC   @R0

    ORL   P2, A       ;关闭LED

;

    RR    A           ;右移R2

    MOV   R2, A

    INC   R0

    CJNE  R0, #48H, T0_L2


T0_END:

    RETI

;-----------------------------------

END

;-----------------------------------


本程序,使用了定时中断方式,对按键进行检测;并含有延时消抖、等待释放的环节。


在按键按下、再释放后,即刻,就能使 LED 发光,经过 3 秒钟之后,自动熄灭。


各个按键的动作互不影响,各个 LED 的亮灭,互不干扰,都是独立的进行控制。


仿真运行的截图如下:


51 汇编编程:多路延时开关 - 非著名博主 - 电子信息角落


图片链接:http://xiangce.baidu.com/picture/detail/e7d9d2d123f30cf1be711b4dd73d7a2aae580020


题目网址:http://zhidao.baidu.com/question/557503303.html



52单片机定时器2

阅读数 2218

没有更多推荐了,返回首页