历史上的今天
返回首页

历史上的今天

今天是:2026年01月11日(星期日)

2023年01月11日 | 51单片机与汇编之定时器中断闪烁LED

2023-01-11 来源:zhihu

话不多说,先上程序

ORG 0000h

AJMP START

ORG 000BH

AJMP TIME0

START:

MOV 66H,#0

MOV TMOD,#00000001B

MOV TH0,#0BBH

MOV TL0,#0CCH

SETB EA

SETB ET0

SETB TR0

AJMP $

TIME0: PUSH ACC

PUSH PSW

MOV TH0,#0BBH

MOV TL0,#0CCH

INC 66H

MOV A,66H

CJNE A,#30,TIME00

CPL P1.0

MOV 66H,#0

TIME00: POP PSW

POP ACC

RETI

END

这段程序的达成的目标是:用定时器产生一个中断,中断内容是让LED灯闪烁。现在来分析程序的每一个步骤。

ORG 0000h ;。。。

AJMP START ;跳到start处去运行程序

ORG 000BH ;定时器0的中断在中断向量表中的地址

AJMP TIME0 ;跳到中断内容处运行

START:

MOV 66H,#0 ;给60h这个单元赋0

MOV TMOD,#00000001B ;以下6行都是定时器的基本设置,我就不说这个了,用c写过的哥们应该都懂,后面三行是开启中断的。

MOV TH0,#0BBH

MOV TL0,#0CCH

SETB EA

SETB ET0

SETB TR0

AJMP $ ;进入死循环中,等待中断的产生

TIME0: PUSH ACC ;把ACC和PSW中的东西压入栈中,把进入中断前的现场进行保护,就是中断不改变原来的累加器和状态寄存器的内容。

PUSH PSW

MOV TH0,#0BBH ;重新赋初值让它进行下一次中断

MOV TL0,#0CCH

INC 66H ;这个单元内的数值自己加一,相当于i++

MOV A,66H ;传到A中与30进行比较

CJNE A,#30,TIME00 ;如果不相等则跳去让PSW和ACC出栈,然后返回主函数中的死循环。如果相等则继续执行下面的程序,就是把LED灯进行反转,就是让定时器计时到时30次才进行一次灯的状态的改变。

CPL P1.0 ;灯的状态的反转

MOV 66H,#0 ;地址内的数归零,进行下一次的定时器计数

TIME00: POP PSW

POP ACC

RETI ;中断返回的指令,注意不是主程序的返回ret

END


推荐阅读

史海拾趣

Goodwork Semiconductor ( GW )公司的发展小趣事
由于可控硅调压是通过对交流电波形的切削来完成的,因此输出的交流电波形会有一定程度的失真。对于电源质量要求高的用电器,可能不适合使用此类稳压器。
Brite-Led Optoelectronics Inc公司的发展小趣事

随着市场竞争的加剧,Brite-Led意识到单凭自身力量难以持续保持领先。于是,公司积极寻求与其他企业和研究机构的合作研发机会。通过与一家知名高校的合作,Brite-Led成功开发出一种新型的LED封装技术,大幅提高了产品的可靠性和耐用性。这一合作不仅加强了Brite-Led的技术实力,也为其带来了更多的商业机会和合作伙伴。

Globaltech Semiconductor Co Ltd公司的发展小趣事

随着技术的不断成熟,Globaltech开始积极拓展国际市场。公司通过与国内外多家系统厂商建立紧密的合作关系,共同开发新产品,进一步提升了其市场竞争力。特别是在亚洲市场,Globaltech凭借其高性价比的产品和快速的响应能力,迅速占据了大量市场份额。同时,公司还积极参与国际展会,与全球客户面对面交流,进一步提升了品牌知名度和影响力。

AC Interface Inc公司的发展小趣事

在电子行业中,ABC Electronics Inc. 深知单打独斗难以取得长远发展。因此,公司积极寻求与其他企业的合作机会,通过技术共享、联合研发、市场互补等方式实现共赢。例如,公司与一家知名芯片制造商合作,共同开发了一款具有高性能的嵌入式系统解决方案,成功应用于智能家居、工业自动化等领域。这种合作模式不仅加速了产品的研发进程,也提高了公司的市场竞争力。

康龙(CONCRAFT)公司的发展小趣事

面对电子行业的快速变化和发展趋势,康龙公司积极拥抱数字化转型。公司引入了先进的ERP系统和数字化工具,实现了从供应链、生产管理到财务管理的全面信息化。这不仅提高了公司的运营效率和管理水平,还为公司的产业升级和未来发展奠定了坚实基础。

Digi International公司的发展小趣事

为了庆祝公司成立30周年,Digi International推出了全新的品牌标识。这一品牌升级不仅展现了公司的创新精神和市场地位,也为其未来的发展注入了新的活力。同时,品牌升级也反映了公司对市场趋势的敏锐洞察和对客户需求的深入理解。

问答坊 | AI 解惑

开放自由的研究

个人认为吧,论坛,不应该是随便拿点东西放那,别人想下还下不了, 如果想帮助新人的话,直接把资料贴出来, 如果真舍不得把知识传授给别人,你就别把东西挂出来, 要不我认为你是在ZHUANGB,很不厚道 看到这论坛上一些所谓的资历高的人吧,把资 ...…

查看全部问答>

运算放大器输出驱动能力的确定

运算放大器输出驱动能力的确定…

查看全部问答>

请教HID设备的报告描述符的写法

    HID设备的功能简单,每隔一段周期发送一个测试数据给我,周期在10ms以内,一般7-8ms.我这边写一段,但是Createfile之后使用ReadFile()无法读取发送过来的测试数据,GetLastError()返回ERROR_IO_PENDING ,WaitForSingleObject()返回超时.请 ...…

查看全部问答>

懂linux的进来帮帮忙

我安装了一个虚拟机,在虚拟机下安装了一个linux。在linux里面上传了一个jdk-6u16-linux-i586.bin和一个apache-tomcat-6.0.20.tar.gz。可是在linux里面怎么安装这两个东西?另外linux的命令怎么用?在哪里运行?例如在windows下在运行那里输入cmd, ...…

查看全部问答>

stm32能不能申请到样片,应该注意哪些细节

                                 我在ST的官网申请了免费样片,不知道能不能记过来…

查看全部问答>

制造浪漫的早餐机 床上解决早餐问题

  这款由设计师Stefan Otzelberger设计的早餐托盘,虽然是倡导简洁式设计,并且机身采用了非常节能高效加热元件以及塑料碳纳米(CNT)。将烤面包机,水壶和咖啡壶等功能组合在一起的早餐托盘。实现在床上吃早餐的梦想。电源供应安装在底板上的电源 ...…

查看全部问答>

关于端口宏定义

正在改写一个关于LCD屏幕显示的程序 原来是PB0-15是数据线 #define LCD_GPIO_DATA_PORT              GPIOB #define LCD_GPIO_DATA_CLK             ...…

查看全部问答>

组团:2.8寸 16:9 带触摸屏无图标 240*400分辨率 8元一片

第一次发起团购,希望各位顶顶,呵呵! 此款液晶屏原装A规  数量巨大  所以干脆以最便宜价格来回馈坛友! 走淘宝,让大家放心团! 希望大家以10PCS起拍,这样方便打包,呵呵!默认圆通,邮费统一为9元,不超重情况下! 淘 ...…

查看全部问答>

无线LED照明系统的设计应用

本帖最后由 dontium 于 2015-1-23 11:42 编辑 本文档介绍了德州仪器无线LED照明系统的设计应用。 如需更多信息,请访问:ti../lsds/ti_zh/apps/lighting/applications.page …

查看全部问答>

【晒样片】为低功耗设计大赛申请的样片

本帖最后由 qiushenghua 于 2014-9-29 19:42 编辑 好久没有在TI申请样片了,这次参加TI的低功耗设计大赛,正好遇到样品申请的活动,于是一并申请了几片IC。 首先进入本次活动页面查看活动详情,从介绍我们可以知道活动要求:需要点击链接进入样 ...…

查看全部问答>