历史上的今天
返回首页

历史上的今天

今天是:2025年05月11日(星期日)

2018年05月11日 | 单片机编程,输出周期为2S和0.5S的方波

2018-05-11 来源:eefocus

在80C51单片机中,已知时钟频率为 6MHz,请编程使 P1.0 和 P1.1 分别输出周期为 2s 和 0.5s 的方波。
求答案,过程。

;=====================================
最佳答案:
;-------------------------------------
;下列程序,经过编译、仿真,符合要求:
;-------------------------------------
    ORG  0000H
    SJMP START
    ORG  000BH
    SJMP T0_INT
;-------------------------------------
START:
    MOV  TMOD, #01H
    MOV  TH0, #9EH
    MOV  TL0, #58H          ;50ms@6MHz
    SETB TR0
    SETB ET0
    SETB EA
    MOV  R2, #5
    MOV  A,   #0
    CLR  P1.0
    CLR  P1.1
    SJMP $                  ;原地转移,假死,等待中断
;-------------------------------------
T0_INT:                     ;50ms执行一次
    MOV  TH0, #9EH          ;重新赋初始值
    MOV  TL0, #58H          ;50ms@6MHz
    DJNZ R2, T0_END         ;不到5次,转到退出
;                           ;下列指令都是每隔250ms执行一次
    MOV  R2, #5             ;重新设置
    INC  A                  ;计数器加一
    MOV  C, ACC.0
    MOV  P1.1, C            ;P1.1,每隔250ms,变化一次
    MOV  C, ACC.2
    MOV  P1.0, C            ;P1.0,每隔1s,变化一次
T0_END:
    RETI
;-------------------------------------
    END 
;-------------------------------------

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

后记:

题目要求输出两个波形的周期是个4倍的关系,这一点,被做而论道发现并巧妙的利用了。
程序中只使用了一个计数器ACC,它的相邻两位之间的变化时间,是呈2倍的关系;
而其第0位和第2位,就是4倍的关系,把它们输出,即可得到所需的周期波形。
呵呵,做而论道的程序,所使用的资源,是最低的;执行效率也最高,不知网友们认为如何?


推荐阅读

史海拾趣

ELNA(依娜)公司的发展小趣事

进入电子领域后,ELNA迅速在电子元件领域取得了突破。公司凭借其在材料科学和制造工艺方面的专长,成功开发出了一系列高性能的电子元件产品。这些产品广泛应用于通信、计算机、消费电子等领域,为ELNA赢得了广泛的客户群。

为了保持技术领先,ELNA不断投入研发资源,加强技术创新。公司积极引进国际先进的生产设备和检测手段,提升产品品质和可靠性。同时,ELNA还加强了与国内外科研机构和高校的合作,共同推动电子元件技术的发展。

DDK公司的发展小趣事

DDK公司在发展过程中,始终牢记社会责任,积极履行企业公民的义务。公司积极参与公益事业,关注环境保护和社会发展,为社会做出了积极贡献。同时,DDK公司还积极推动行业健康发展,与同行企业共同维护市场秩序和公平竞争环境。这种社会责任的担当,让DDK公司在电子行业中树立了良好的企业形象。

Boundary Devices公司的发展小趣事

作为一家有社会责任感的企业,Boundary Devices始终关注环境保护和可持续发展。公司在生产过程中积极采用环保材料和技术,减少对环境的影响。同时,公司还积极参与社会公益活动,为社会的发展贡献自己的力量。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

以上五个故事基于Boundary Devices公司的发展背景和电子行业的一般趋势进行创作,旨在展示该公司在不同阶段的成长与发展。然而,实际的公司发展历程可能更加复杂和丰富,需要更多的资料和信息来深入了解。

电连(ECT)公司的发展小趣事

为了进一步扩大市场份额,ECT积极推进国际化战略。截止2022年初,公司在全球共设立23个分支机构,覆盖了中国台湾、中国香港、韩国、日本、泰国、越南、美国等国家和地区。通过国际化战略的实施,ECT不仅成功将产品推向全球市场,也提升了公司的国际影响力和竞争力。

国芯佳品公司的发展小趣事

电连技术股份有限公司(ECT)于2006年在深圳成立,专注于微型电子连接器及互连系统相关产品的技术研究、设计、制造和销售服务。在成立初期,ECT便凭借其高可靠、高性能的产品设计制造能力,在通讯设备、智能消费电子等领域获得了初步的市场份额。公司团队通过不断的技术创新和产品优化,逐渐在行业内树立了良好的口碑。

amcc [applied micro circuits corp]公司的发展小趣事

为了提高公司治理能力和运营效率,ECT在2019年引入并升级了SAP信息化系统。这一系统的引入不仅实现了公司各部门之间的信息共享和协同工作,也提高了公司对市场变化的响应速度和决策效率。通过SAP信息化系统的支持,ECT在保持技术领先的同时,也实现了业务的稳健发展。

以上五个故事概述了电连(ECT)公司在电子行业中的发展历程和关键事实。这些故事展示了ECT在技术创新、市场拓展、国际化战略和信息化建设等方面的努力和成果。

问答坊 | AI 解惑

让人头大的屏蔽层问题......

使用了屏蔽层,结果不能正常使用, 请问如何正常使用屏蔽线的屏蔽层?…

查看全部问答>

调2440板子时遇到的SDRAM写数据错误问题

新做了一块2440板子,在调的过程中遇到个问题: 1. 2440+128M SDRAM(挂在BANK6和BANK7) 2. 2440的SDRAM,向0x30000001,0x30000005,0x30000009 0x3000000d等地址写数据,再读出来,发现最高位始终为1,这是怎么回事呀 比如向0x30000001写0x01,读回 ...…

查看全部问答>

请问WinCE5.0下可以编程读取XML数据吗?

如题,如果有,能不能给几个相关资料链接呢?谢谢…

查看全部问答>

wince下 sqlite 无法打开

     我在vs2008上建个了wince的智能设备,在使用sqlite的时候出现字符转换问题。 bool MySQLite::sqlite_connect( TCHAR filename) {         db=NULL;            zE ...…

查看全部问答>

WIFI链接程序

小弟不想用wince自带的WIFI配置链接程序 于是参考了 http://www.cnblogs.com/Jade2009/archive/2009/02/23/1368201.html 这里文章编写了一个程序 尝试进行链接:         WirelessConnect(g_FirstWirelessCard, L\"ABC\", ...…

查看全部问答>

请教stm32地址线复用问题?

                                 使用到FSMC总线控制16位LCD液晶,其中使用100Pin的STM32,A16连接到LCD的A0,那么在读写LCD的时候,A17,A18这些地 ...…

查看全部问答>

sw笨笨的STM32学前班教程之六:这些代码大家都用得到

注:下面是一些常用的代码,网上很多但是大多注释不全。高手看没问题,对于我们这些新手就费劲了……所以我把这些代码集中,进行了逐句注释,希望对新手们有价值。阅读flash: 芯片内部存储器flash操作函数我的理解——对芯片内部flash进 ...…

查看全部问答>

同学们,ST关于i2c-e2prom的例子,修改以下几点就可以了

1.之前有同学说发现I2C_EE_BufferWrite执行后,总线就被拉低了,使得后来的start位发不出去这是因为每个I2C_EE_BufferWrite都是以I2C_EE_WaitEepromStandbyState结尾的,而这个函数里并未发送stop位来释放总线所以第一个需要修改的地方就是在I ...…

查看全部问答>

HMI专题之五 HMI的灵魂——组态软件

通过前几个专题的分析,我们知道 HMI意味硬件+软件而这里面的软件,由于适应性的需求,可以说就是组态软件。那么到底组态软件是一个什么样的美女呢?怎么王八看绿豆,HMI就相中她了呢?组态软件组态软件在国内是一个约定俗成的概念,并没有明确的 ...…

查看全部问答>

基于GCCAVR的模拟SPI程序

AVR的SPI接口很多只有一个,如果驱动较多的以SPI接口的外设时就必须通过IO来模拟,实际上对于低速外设来说IO模拟的方式也很方便,网上关于模拟SPI的程序很多,我的程序是基于GCCAVR来写的,其他编译器的都类似,写的时候我尽量做到规范和方便后期使 ...…

查看全部问答>