51单片机系统震荡频率12MHz,用p1.4每隔1ms输出一个100us的负脉冲,汇编语言编程实现。

如题所述

第1个回答  2014-10-19
;
ORG 0000H
MOV TMOD, #02H
MOV TH0, #156
MOV TL0, #156
SETB TR0
L1: MOV R2, #10
L2: JNB TF0, $
CLR TF0
SETB P1.4
DJNZ R2, L2
CLR P1.4
SJMP L1

END本回答被提问者采纳
第2个回答  2014-10-19
Output equ P1.4

Loop:
setb c
mov Output,c
lcall DELAY900US
setb c
mov Output,c
lcall DELAY100US
ljmp loop

DELAY900US: ;误差 0us
MOV R6,#45H
DL0:
MOV R5,#05H
DJNZ R5,$
DJNZ R6,DL0
RET

DELAY100US: ;误差 0us
MOV R6,#01H
DL0:
MOV R5,#2FH
DJNZ R5,$
DJNZ R6,DL0
RET追问

我只是初学者,你这个太麻烦了吧。。。有没有能简单实现功能就好,然后带注释。麻烦您了

本回答被网友采纳
第3个回答  2014-10-19
    ORG 0000H
    LJMP MAIN
    ORG 0300H
MAIN: MOV TMOD, #01H
      MOV TH0,#0FFH
      MOV TL0,#09CH
      MOV IE,#00H
      SETB TR0
      CLR TF0
      SETB P1.4 
LOOP:JBC  TF0,ZCZ
     AJMP LOOP
ZCZ:CLR TR0
    CLR TF0
    MOV TH0,#OFFH
    MOV TL0,#09CH
    CPL P1.4
    SETB TR0
    AJMP LOOP   



不足之处,敬请见谅!

51单片机按键加减清零汇编语言编程
键计数加1JMP KEY_P_ENDLOOP2:DEC K_COUNT ;键计数减1JMP KEY_

利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开...
利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开始每1秒钟加1。  我来答 5个回答 #活动# 参与造句大挑战,答题瓜分万元豪礼 zlzskddj2602 推荐于2017-09-27 知道答主 回答量:19 采纳率:0% 帮助的人:0 我也去答题访问个人页 关注 展开全部 没有定时器的不过有数字钟的...

常见的存储器有哪些?有哪些使用注意事项?
你在编写此程序时必须要考虑延时,因为51单片机的晶体振荡器最低频率可能是6M(具体数值我已记不清了)。也就是说单片机的每一个机器周期所占用的时间仅2微秒,如果你不考虑延时的话,那么你设计的那盏灯,它闪烁的结果是;亮2微秒,熄2微秒,也就是说每一秒钟要亮暗50万次,肉眼看这盏灯根本就不会有熄灭的时候,只是...

单片机编程 四个按键 K1=p1.1 K2=p1.2 k3=p1.3 k4=p1.4 p5 p6输出(k1...
include "reg51.h" \/\/ 试试 sbit k1 = P1^0;\/\/按键1 sbit k2 = P1^1;\/\/按键2 sbit k3 = P1^2;\/\/按键3 sbit k4 = P1^3;\/\/按键4 sbit p5 = P1^5; \/\/输出1 sbit p6 = P1^6; \/\/输出2 bit t1, t2;void main(void){ while(1){ if(k1==0 && t1==0) {t1...

单片机的最小系统晶振电路的两个电阻作用,为什么
Xin和Xout的内部一般是一个施密特反相器,反相器是不能驱动晶体震荡的.因此,在反相器的两端并联一个电阻,由电阻完成将输出的信号反向 180度反馈到输入端形成负反馈,构成负反馈放大电路.晶体并在电阻上,电阻与晶体的等效阻抗是并联关系,自己想一下是电阻大还是电阻小对晶体的阻抗影响小大?电阻的作用是将电路内部的...

C语言编写STC12C5A60S2芯片用4个按键控制四个灯的亮灭
sbit LED_ 4= P2^4;sbit LED_ 3= P2^3;void main ( ) {while(1){if (!KEY_0 ) { \/\/ 按键KEY_0被按delayus(20); \/\/消抖动 if (!KEY_0 ) { \/\/确认被按下 LED_7=~LED_7 \/\/灯亮或灭}}}... 其余一样即可。

怎样设计一个用ADE7755和用AT89S51的单片机设计出一个电能表?_百度知 ...
它通过两线式与 CPU连接,SDA脚和 SCL脚分别接 AT89S52的 P2.0和P2.1,并有两个中断报警引脚可设置为输出秒或分同步脉冲,向 AT89S52提供周期为 1秒的中断信号,单片机系统将根据该信号通过 I2C通讯接口读取当前的时间,计算出该时刻所属的时段,实现多费率电能表的分时段计量电能。该时钟电路带有备用锂电池,正常工作...

基于单片机的温度数据采集系统设计
AT89S51单片机片内的Flash可允许在线重新编程,也可用通用非易失性存储编程器编程;片内数据存储器内含128字节的RAM;有40个引脚,32个外部双向输入\/输出(I\/O)端口;具有两个16位可编程定时器;中断系统是具有6个中断源、5个中断矢量、2级中断优先级的中断结构;震荡器频率0到33MHZ,因此我们在此选用12MHZ的晶振是比较...

求一个用汇编语言编写单片机简易交通灯程序。求高手帮下忙谢谢了...
A,@A+DPTR MOV P1,A LCALL D1MS SETB P3.0 SETB P3.1 JNB P3.0,DIS_S ;;;查询是否第一个按键按下 JNB P3.1,DIS_E ;;;查询是否第二个按键按下 AJMP DIS_R ;;;没有键按下则返回 DIS_S:LCALL D5MS ;;;按键去抖 ...

用单片机设计一个时钟,可显示时和分,可以调时间,也要有闹钟功能,要有设...
for(z=0;z<100;z++){ tmp=0x01;P2=tab[h\/10];小时显示 disp();P2=tab[h%10];disp();P2=tab[m\/10];分钟显示 disp();P2=tab[m%10];disp();P2=tab[s\/10];秒显示 disp();P2=tab[s%10];disp();} s++;while(s==60)秒进一位,到60清0 { m++;s=00;} while(m==60...

相似回答