奇幻城_奇幻城娱乐_奇幻城国际娱乐_奇幻城娱乐网站

搜索
 找回密码
 立即注册
查看: 43|回复: 4

基于MCU单片机在蜂鸣器系统中的应用设计

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 5 天前 | 显示全部楼层 |阅读模式
  程序时经常会用到延时函数,但是当系统逐步复杂以后(没有复杂到使用操作系统)延时会因为延时降低的系统中,如果要求按下按键发出不同的声音,每次发声时间在1秒-2秒之间, 如果用延时来做代码很简单:
  当这段代码执行时MCU不可能同时处理按键检查程序因为它大部分时间在执行Delayms()函数中的nop指令,这样就不可能去执行检查按键了(不使用中断时),如果把程序改成流程形式的写结果会大为不同,下面先介绍一下基本原理。
  我们都知道一般的定时器为16位或8位循环计数,例如对于16位的计数器当计数器数值从0增加到65535时再加一就会回到0那么我们来比较下面两种情况(不考虑计数器在记录当前时刻T后再次回到或超过T这种情况我暂且称它为“压圈”):
  则T1到T2 可以算出为65535到0的1个计数单位再加上 0到99的99个计数单位总共为100个计数单位。
  在C语言中如果使用两个无符号数作减得到如下结果:99-65535=100,这个很好理解就和10进制的借位一样只不过借位后不用管高位了也就相当于99+65536-65535结果是100了,当然这些前提条件都是计数器不会出现“压圈”。
  用这样的方法实现的蜂鸣程序在使用时也有不同的地方,因为使用的switch状态所有在主循环中要一直调用:
  用这种方法能充分利用MCU,在蜂鸣器发声或发声间隔的等待时间MCU可以处理别的函数,但是还要有几点需要注意
回复

使用道具 举报

0

主题

8

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 4 天前 | 显示全部楼层
我们是英属维京群岛政府认证的合法互联网络公司,是亚洲成长最快的在线娱乐游戏场之一。我们提供最广范围并最具竞争力的产品,并保证让每位会员在一个公平、公正的环境下进行游戏。我们提供各项行业热玩的主流游戏,无须下载、操作简单、功能齐全、画面精致,加入即玩。
回复 支持 反对

使用道具 举报

0

主题

9

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 3 天前 | 显示全部楼层
进入亚洲国际游戏平台为广大游戏玩家提供真人游戏美女在线视频交流,dafa888娱乐场真人网页游戏源码下载
回复 支持 反对

使用道具 举报

0

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 昨天 10:23 | 显示全部楼层
在市场上的众多线上娱乐网站中,提供腾博会亚洲娱乐平台最优惠,不计输赢,无限反水!腾博会国际娱乐给予合作伙伴和会员最优势的盈利回报!
回复 支持 反对

使用道具 举报

0

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2 小时前 | 显示全部楼层
老品牌网上娱乐,专业的游戏网站,娱乐信誉保证,免费注册会员!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver手机版小黑屋

Powered by  

奇幻城

    Copyright © 1996 - 2016

奇幻城

快速回复 返回顶部 返回列表