历史上的今天
返回首页

历史上的今天

今天是:2025年01月29日(星期三)

2018年01月29日 | 几种驱动蜂鸣器的编程示例

2018-01-29 来源:eefocus

以下介绍几种在S3F9454/9444下驱动蜂鸣器的编程示例,供参考 

            A.第一种,普通IO高低电平驱动法 
            ;运行环境: S3F9454,Fosc= 3.2MHz无分频 

 






            ;P2.0为蜂鸣输出端口 
            ;本例输出频率为4KHZ,即每250US一个周期,高低电平时间分别为125US 
            BEEP: 
            LD BTCON,#10100011B ;看门狗禁用 
            DI  
            PUSH R5 
            PUSH R6 
            ;首先配置P2.0为普通推挽输出端口 
            AND P2CONL,#0FEH 
            OR P2CONL,#02H 
            LD R6,#0FAH ;R6设置输出方波个数,本例为250个(计时62.5MS) 
            ONE_BEEP:  
            LD R5,#27H ;R5为频率发生计时器,本例为近似125US(4KHZ) 
            XOR P2,#01H 
            _LOOP:  
            DEC R5 
            JR NZ,_LOOP 

            DEC R6 
            JR NZ,ONE_BEEP 

            LD BTCON,#02H ;恢复看门狗运行 
            EI 
            POP R6 
            POP R5 
            RET 
            ;----------------------------------------------------------- 
            B.利用P2.0配置为T0定时器匹配输出方式产生 
            ;注: 该方式可用于带多位数码显示扫描的软件中,可有效避免因蜂鸣器 
            ;输出而造成的数码显示抖动闪烁 
            ;因定时器T0被分配作为T0匹配输出定时器,所以本例中利用看门狗定时器 
            ;的实时计时器BTCNT作为数码显示实时扫描计时器 
            ;R0为蜂鸣时间长短计时器,由主调用程序进行予设置 
            ;运行环境: S3F9454,Fosc= 3.2MHZ无分频 
            ;P2.0为蜂鸣输出端口 
            ;本例输出频率为4KHZ,即每250US一个周期,高低电平时间分别为125US 
            ;----------------------- 
            BEEP:  
            DI 
            PUSH R1 
            PUSH T0CON 
            PUSH T0DATA 
            ;在蜂鸣输出前首先扫描一次数码显示 
            CALL LED_SCAN 
            OR P2CONL,#03H ;set P2.0 as T0 match output/every 125us 
            LD T0CON,#10001000B ;set T0 input cLOCk=Fosc/8 
            LD T0DATA,#32H 
            LD BTCON,#10100011B ;DISAble Watch-dog run, 
            ;but btcnt clk input fxx/4096=1.280ms 
            NEXT_BEEP:  
            LD R1,#0AH 
            WAIT_CNT:  
            OR BTCON,#02H 
            _WAIT_CNT: 
            CP BTCNT,#02H 
            JR ULT,_WAIT_CNT 
            OR BTCON,#02H ;清看门狗定时器 

            CALL LED_SCAN ;每计时2.56MS,则转去实时扫描一次数码显示 
            DEC R1 
            JR NZ,WAIT_CNT 

            DEC R0 
            JR NZ,NEXT_BEEP 

            LD BTCON,#02H 
            AND P2CONL,#0FEH ;set T0 as push-pull output 
            AND P2,#0FEH 

            POP T0DATA 
            POP T0CON 
            POP R1 
            EI 
            RET 


推荐阅读

史海拾趣

静芯微电子(ElecSuper)公司的发展小趣事

静芯微电子深知产品质量对于企业的重要性,因此建立了完善的质量管理体系。公司从原材料采购、生产制造到产品检测等各个环节都实行严格的质量控制和管理,确保每一款产品都符合高标准的质量要求。同时,静芯微电子还引进了先进的检测设备和技术手段,对产品质量进行全面检测和评估。这些措施保证了静芯微电子产品的稳定性和可靠性,赢得了客户的信任和好评。

Corsair Electrical Connectors Inc公司的发展小趣事

随着市场的不断发展,Corsair意识到只有不断创新才能在竞争中立于不败之地。因此,公司加大了对研发的投入,积极引进先进技术和设备,不断提升产品的性能和质量。在一次次的尝试和失败后,Corsair的研发团队终于突破了行业技术瓶颈,成功开发出了一款具有高性能、高稳定性的连接器产品。这一创新成果不仅赢得了客户的青睐,也为公司在行业中树立了良好的口碑。

Diodes公司的发展小趣事

随着科技的快速发展和市场的不断变化,客户需求也在不断更新。为了满足客户不断变化的需求,Diodes公司始终保持敏锐的市场洞察力和创新力。公司不断推出新产品、新技术和新应用方案,以满足客户在性能、可靠性、成本等方面的需求。同时,Diodes还积极与客户沟通交流,了解客户的实际需求和反馈意见,不断优化产品和服务。这些努力使得Diodes能够紧跟市场步伐、满足客户需求,在激烈的市场竞争中保持领先地位。

Excelight Communications Inc公司的发展小趣事

随着5G技术的兴起,光通信行业迎来了新的发展机遇。Excelight紧跟时代步伐,投入大量资源进行技术研发。在李明和团队的共同努力下,公司成功研发出了一款具有自主知识产权的高速光通信芯片,这一成果不仅填补了国内空白,还使Excelight在国际市场上占据了有利地位。

技术突破后,Excelight的产品性能得到了显著提升,同时也带动了整个产业链的升级。公司开始与更多的国内外企业建立合作关系,共同推动光通信行业的发展。

Electric Imp Inc.公司的发展小趣事

在电子行业的浪潮中,Electric Imp Inc.公司以其独特的物联网(IoT)解决方案崭露头角。公司创始人是一位资深的电子工程师,他敏锐地捕捉到了物联网市场的巨大潜力。在创业初期,公司面临资金短缺、技术瓶颈等挑战,但创始人带领团队夜以继日地研发,终于推出了第一款基于云计算的物联网设备管理平台。这款产品凭借其易用性、稳定性和可扩展性,迅速获得了市场的认可。

Chiplus Semiconductor Corp公司的发展小趣事

Chiplus自成立以来,始终致力于技术创新和产品研发。公司团队不断深入研究SRAM和LED驱动IC的设计与开发,成功推出了多款高速度、低功率的产品。这些产品以其卓越的性能和稳定性,赢得了全球客户的广泛认可。同时,Chiplus还积极投入研发资源,探索新的应用领域,不断拓展产品线,为客户提供更多元化的解决方案。

问答坊 | AI 解惑

AD6智能PDF导出时,中文字符无显示

Altium Designer 6 中,制件的原理图文件中若有中文字,用自带的\"智能PDF\"导出时,则在产生的PDF中显示不了中文字符.本人用Altium Designer 6.3~Altium Designer 6.9都试过,均有此问题,不知能否解决,请哪位大侠指点,若不能人为修改,是否要等待A ...…

查看全部问答>

6个变态的C语言Hello World程序

下面的六个程序片段主要完成这些事情: 输出Hello, World混乱C语言的源代码下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。 hello1.c 01     #define _________ }   02 ...…

查看全部问答>

谈谈天线锡焊要点

锡焊要点可以简单归纳如下:   1.使用烙铁(包括火烙铁)前,必须使烙铁头表面蒙上一层锡(俗称“吃锡”),这样烙铁头才能拉住锡。上锡的方法是在烙铁未加热前,将烙铁头挫光,除去氧化物或污垢,然后对刮亮后的烙铁头加热,直到光亮部分变成紫 ...…

查看全部问答>

请教Modbus高手makesoft:实现Modbus协议一定需要超时检测吗?

首先声明,我对Modbus不熟悉,尤其是如何实现它,最近才从网上下载了协议研究了一下,特此向高手请教。搞清楚这些问题,才能有效地在芯片中实现相应的功能,满足大家的需要。此帖的目的是继续另一帖的讨论:建议STM32的芯片加上串口超时功能, ...…

查看全部问答>

向高手请教一个关于STM32的PF,PG口的问题

                                 在STM32的DS里面,管脚介绍的表格中Main function(after reset)一栏中,大部分的IO口都是如PA7样式的口 ...…

查看全部问答>

关于正弦余弦函数的问题

我用CCS编程调试时,出现了“error: identifier \\"sinwt\\" is undefined”的错误信息,请请教一下是怎么回事?是不是需要加入某个头文件?还是我的写法有问题啊?谢谢大家~~~…

查看全部问答>

关于CCS在软件延时上的探讨

      在使用CCS的过程中,我发现在有关于有软件延时的程序中会出现问题,感觉延时没起到作用,比如一个简单的例子,让灯闪烁,使用delay函数(函数体内用两个for循环嵌套那种),这种延时就不会有效果,而用i=50000;   while ...…

查看全部问答>

STM32F407学习板全部例程+原理图

全部代码都已测试通过,若发现有什么问题请和我联系。因为时间仓促,基本上都是一些硬件测试程序。记得要把例程和固件库放在同一目录下,全部工程共用一个库的。至于SD卡里的文件只是几个测试图片和音 ...…

查看全部问答>

Kernel - Common Problems Booting Linux中文手册改1

Kernel - Common Problems Booting Linux中文手册改1…

查看全部问答>

EK-LM4F120XL ADC参考电压问题

在EK-LM4F120XL Launchpad中, 我分别用 AIN0(PE3口)采样1.3V电压 AIN1(PE2口)采样0.65V电压, AIN8(PE5口)采样1.95V电压, AIN9(PE4口)采样2.6V电压, 假如以3.0V作为参考电压,那么在数据寄存器中采样结果应该是: 1775,对应1.3V电压 ...…

查看全部问答>