历史上的今天
返回首页

历史上的今天

今天是:2025年08月06日(星期三)

正在发生

2021年08月06日 | 用51单片机汇编语言,写一个60s倒计时的程序

2021-08-06 来源:eefocus

题目。写出一个60s倒计时的汇编语言,不要用C语言写,用汇编语言。


再设置一个按键,按一下,停止倒计时,再按一下,恢复倒计时。


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

;假设系统晶振为 12MHz

;按键连接在P3.2

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

        ORG  0000H

        LJMP MAIN

        ORG  0003H

        LJMP X0_INT

        ORG  000BH

        LJMP T0_INT

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

        ORG  0100H

MAIN:                            ;初始化

        MOV  TMOD, #01H

        MOV  TL0, #(65536 - 50000) MOD 256

        MOV  TH0, #(55536 - 50000) / 256

        SETB TR0

        SETB ET0

        SETB EX0

        SETB EA

        MOV  DPTR, #TAB          ;表首址送DPTR

        MOV  R1, #0

        MOV  R2, #0

        MOV  R3, #20

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

M_LOOP:

        CALL DIS

        SJMP M_LOOP

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

T0_INT:

        MOV  TL0, #(65536 - 50000) MOD 256

        MOV  TH0, #(55536 - 50000) / 256

        DJNZ R3, T0_E

        MOV  R3, #20

        DEC  R1

        CJNE R1, #255, T0_E

        MOV  R1, #9

        DEC  R2

        CJNE R2, #255, T0_E

        MOV  R2, #5

T0_E:

        RETI

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

X0_INT:

        CALL DIS

        JNB  P3.2, X0_INT

        CPL  TR0

        RETI

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

DIS:                             ;显示程序.

        MOV  A,  R2              ;显示十位.

        MOVC A,  @A+DPTR

        CLR  P2.1

        MOV  P1, A

        SETB P2.0                ;十位的位选.

        CALL DLY


        MOV  A,  R1              ;个位显示.

        MOVC A,  @A+DPTR

        CLR  P2.0                ;关闭十位的显示.

        MOV  P1, A

        SETB P2.1                ;个位的位选.

        CALL DLY

        RET

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

TAB:    DB  0xc0,0xf9,0xa4,0xb0,0x99  ;共阳极段码 0~4

        DB  0x92,0x82,0xf8,0x80,0x90  ;共阳极段码 5~9

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

DLY:    MOV  R6, #20            ;10ms延时.

D1:     MOV  R7, #248

        DJNZ R7, $

        DJNZ R6, D1

        RET

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

end


推荐阅读

史海拾趣

捷嘉电子(Chequers Electronic)公司的发展小趣事

捷嘉电子在成立初期面临着巨大的挑战。那是一个智能电子产品刚刚开始兴起的时代,市场竞争激烈。公司创始人余文跃凭借对电子行业的深刻理解和对技术创新的执着追求,决定投身于智能控制器的研发与生产。在初创阶段,资金紧张、人才短缺、市场推广困难重重。但余文跃凭借着坚韧不拔的毅力,带领团队攻克了一个又一个技术难题,逐渐在市场上站稳了脚跟。

Fedco_Batteries公司的发展小趣事

在快速发展的同时,Fedco_Batteries始终关注社会责任。公司积极参与公益事业,捐款捐物支持灾区重建、教育扶贫等项目。同时,公司还注重环保和可持续发展,致力于研发环保型电池产品,减少对环境的影响。这种关注社会责任的企业精神,让Fedco_Batteries在社会上树立了良好的形象。

ALTERA(阿尔特拉)公司的发展小趣事

为了拓展国际市场,Fedco_Batteries积极寻求与国内外企业的合作。他们与多家知名企业建立了战略合作关系,共同研发新型电池技术,开拓新市场。同时,公司还积极参加国际展会和论坛,与国际同行交流学习,不断提升自身的竞争力。这种合作共赢的发展模式,让Fedco_Batteries在国际市场上取得了显著的成绩。

FDK AMERICA公司的发展小趣事

在竞争激烈的电子市场中,FDK AMERICA公司始终坚持品质至上的原则。公司严格控制产品质量,从原材料采购到生产流程再到售后服务,每一个环节都力求做到精益求精。这种对品质的执着追求赢得了客户的信赖,也为公司树立了良好的品牌形象。

Bkc Semiconductors Inc公司的发展小趣事

在快速发展的同时,Bkc始终坚持质量第一的原则。公司建立了严格的质量管理体系,从原材料采购到产品生产的每一个环节都进行严格把控。通过不断提升产品质量和客户服务水平,Bkc逐渐赢得了客户的信任和市场的认可。同时,公司还积极参与行业标准的制定和推广,进一步提升了品牌的影响力和行业地位。

Array Microsystems Inc公司的发展小趣事

为了支持公司的快速发展和技术创新,Array Microsystems Inc高度重视人才引进和团队建设。公司积极招聘业内优秀的技术人才和管理人才,为他们提供良好的工作环境和福利待遇。同时,公司还注重员工的培训和晋升机制,鼓励员工不断学习和成长。这些措施使得Array Microsystems Inc拥有了一支高素质、专业化的团队,为公司的发展提供了有力的人才保障。

问答坊 | AI 解惑

MCF52233_CFM

MCF52233_CFM—Coldfire Flash Module   Coldfire的CFM功能是把它的flash当作EEPROM来用。使用起来还是很方便的,只要完成几个小的功能函数就行了:  第一个是CFM的初始化CFM_init(),完成时钟的设置;   第二个是页擦除CFM_Page_eraser(), ...…

查看全部问答>

终身受益啊,手机原来隐藏了这么多功能!

1、隐形的备用电池 你的手机电量不足了,为了让它能够继续使用,按*3370#键,手机会重新启动,启动完毕后,你就会发现电量增加了50%。这部分隐藏的备用电量 用完了你就必须得充电了,再次充电的时候,隐形的备用电池也同时充电,下次电量低的时候 ...…

查看全部问答>

st7单片机

没有人用过ST7的单片机么? 为什么我在网上找不到一点关于意法半导体的资料 有谁有资料,希望传个给我  谢谢 或者告诉网址 要中文的…

查看全部问答>

开关电源中高频磁性元件设计常见错误概念辨析

【转帖】作者:冷昭军 现任深圳茂硕电源科技股份有限公司 电源开发工程师 很多电源工程师对开关电源中高频磁性元件的设计存在错误的概念,其设计出来的高频磁性元件不能满足应用场合的要求,影响了研发的进度和项目的按期完成。基 于开关电源及 ...…

查看全部问答>

初学单片机应该买个什么学习板

本人是个单片机初学者,想要买个学习板,深入学习单片机,加强实际操作能力,请问我应该购买哪款学习板? 最好适合初学者,有视频和教程更好)…

查看全部问答>

wince启动问题

我把Eboot.bin和Eboot.nb0还有Nk.bin都已写好,可是目标板就是不见动静。不知什么原因。请各位大虾帮帮忙!谢谢。 以下是几种提示信息: INFO: Initializing system clock(s)...              &nbs ...…

查看全部问答>

CE webbrowser控件

我用的软件是EVC4.0,我创建了Dialog base对话框或者Single document,在控件栏中都没有webbrowser控件。 请问是要怎么样才能加上去呢?…

查看全部问答>

Proteus仿真cpu过载

程序也不大,电路图也不复杂,就是数码管动态显示,用中断搞了一个表,结果mcu的clock设置11.0592MHz时,就过载了,设成300KHz就还可以,可是毕竟是个表啊,查Proteus的帮助说把电阻什么的都数字化,可是还是不行,版本v7.1,求教,谢谢!…

查看全部问答>

ISE11.1使用出现问题

刚装了ISE11.1    安装过程顺利,能打开软件,不过在调试正确的程序源文件时总是不能综合完成,也没有任何错误。只是最后显示                Process \"Synthesis\" failed  &n ...…

查看全部问答>

二选一开关

设计以芯片内部要一个二选一和四选一开关,哪位大神指导一下…

查看全部问答>