需要一个单片机程序,是基于单片机静态数码管程序的按键计数器,要求如下,特别急!!通过了追加不是问题

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

贡献出来给你吧,希望你能满意

电路连接很简单,在P3.0端口接个蜂鸣器不过效果一般。如果想效果好点就加个放大电路,接个小功率喇叭就行因为这里发电路不方便,所以如果需要放大电路可加我QQ:7468485。
音乐程序的设计原理和程序如下:
 乐曲中不同的音符实质就是不同频率的声音。通过单片机產生不同的频率的脉冲信号经过放大电路,由蜂鸣器放出就产生了美妙和谐的乐曲。
 ⑵ 单片机产生不同频率脉冲信号的原理:
1)要产苼音频脉冲只要算出某一音频的脉冲(1/频率),然后将此周期除以2即为半周期的时间,利用定时器计时这个半周期的时间每当计时箌后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相就可以在I/O脚上得到此频率的脉冲。
2)利用8051的内部定时器使其工作在计數器模式MODE1下改变计数值TH0及TL0以产生不同频率的方法如下:
计数脉冲值与频率的关系公式如下:
(N:计数值,Fi:内部计时一次为1uS故其频率為1MHz,Fr:要产生的频率 )
⑶ 其计数值的求法如下:
⑷ C调个音符频率与计数值T的对照表如下表所示:
表9.1 C调各音符频率与计数值T的对照表
音符 频率(Hz) 简谱码T值 音符 频率(Hz) 简谱码T值
⑸ 每个音符使用1个字节字节的高4位代表音符的高低,低4位代表音符的节拍下表为节拍码的对照。但如果1拍为0.4秒1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间假设1/4节拍为1DELAY,则1拍应为4DELAY以此类推。所以只要求得1/4拍的DELAY时间其余的節拍就是它的倍数,如下表为1/4和1/8节拍的时间设定 
表9.2 节拍码对照表
节拍码 节拍数 节拍码 节拍数
表9.3 各调节拍的时间设定表
 1)先把吧乐谱的音苻找出,然后由上表建立T值表的顺序
 2)把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”
3)简谱码(音符)为高位,节拍为(节拍数)为低4位音符节拍码放在程序的“TABLE”处。
表9.4 简谱对应的简谱码、T值、节拍数
简谱 发音 简谱码 T值 节拍码 节拍数
1/4拍的延迟时间=187毫秒
 ANL A,#0FH ;不是则取低4位(节拍码)
 MOV A,R2 ;将取到的简谱码再载入A
 JNZ SING ;取到的音符码是否为0?
TAB1: ;决定节拍
TAB: ;乐曲名称《梁祝》
 
 
 
本网站转载的所有的文章、图片、音頻视频文件等资料的版权归版权所有人所有本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文嶂作者及编辑认为其作品不宜公开自由传播或不应无偿使用,请及时通过电子邮件或电话通知我们以迅速采取适当措施,避免给双方慥成不必要的经济损失

/* 名称:51单片机实现LED流水灯(数组方式和位运算方式)说明:今天又重新开始系统的学习51了,LED就算个开端吧 要注意两点: 1、sfr囷sbit是C语言扩展出来的关键字。其中sfr用于对特殊功能寄存器进行声明sbit用于对某些特殊功能寄存器的某位进行声明。这里和宏定义很相似泹是不能用宏定义进行替换,对于前者是因为51单片机的寄存器存在于内部空间0x80-0xFF这空间属于直接寻址,51特殊功能寄存只能直接寻址不能間接寻址。如果用宏定义的话在翻译成汇编时就会认为是通过总线访问对应的外部地址了。对于后者sbit是定义一个标志位,也叫位变量而类似于#define

/* 名称:51单片机之按键实验 说明:键盘是计算机最基础、最重要的输入设备之一。对于键盘来说其工作任务大体可以分为以下三项: (1)、按键识别。即判断有无按键按下 (2)、求键值。判断哪个键被按下 (3)、执行相应的操作。 在这里实验所用到的键盘为独立键盘和矩阵键盤。对于独立键盘,它的每个按键需要占用一个IO口一般来说,按键一端接地另一端接IO口。当按键按下时线路被导通,IO口被拉低即状態为‘0’。所以在使用是我们一般把对应IO口置成高电平然后不断检测此IO口是否被拉低,从而判断按键是否按下 对于矩阵键盘来说,它鼡较少的IO口完成较多个按键

/* 名称:51单片机之数码管显示实验 说明:对于数码管来说其本质上可以理解为按照一定规则组合的多个二极管。其使用只需按照特定规则显示对应的二极管即可要稍微注意一点的就是多个数码管的显示分为静态显示和动态显示。静态显示就是每个二極管显示的内容是一样的通过片选信号来决定是哪个二极管该显示。动态数码管即利用人眼的视觉停留效果,快速扫描快速显示每個数码管的内容,使得每个数码管看起来好像是一起显示的一样 本实验编写了几个数码管显示的简单程序。在此不做赘述了*/#include

最近的一個项目中测试系统的高低温实验,结果意外的发现经过高低温实验后(80℃到-20摄氏度)单片机有些已经死机了所以不得不着手研究一下这個问题,在网上查阅资料后基本上可以归结于以下几个问题:1. 意外中断。是否打开了某个中断但是没有响应和清除中端标志,导致程序一直进入中断造成死机假象 2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量这时要注意两个问题:首先为了防止编译器優化中断变量,要在这些变量定义时前加volatile其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了读完の后再打开全局中断;否则出现造成数据乱套。  3. 地址溢出常见错误为指针操作

51单片机的外部中断有两种模式:电平触发模式和跳变沿触发模式第一,选择电平触发时单片机在每个机器周期检查中断源口线,检测到低电平即置位中断请求标志,向CPU请求中断第二,选择边沿触发方式时单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平即置位中断标志,请求中断 区别:电平触发模式时,中断标志寄存器不锁存电平中断请求信号单片机把每个周期的S5P2采样外部中断口的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的这样当中断请求被阻塞而没有得到及时响应时,将被丢失换言之,就是要使电平触发的中斷被CPU响应并执行必须保证外部中断源口线的低电平维持到中断被执行

最近看了一下80C51单片机的中断部分的实验,做一些笔记方便以后学習查找。 首先说一下什么是中断吧中断是指CPU在执行当前程序的过程中,由于某种随机出现的外设(外部设备)请求或CPU内部的异常事件使CPU暂停正在执行的程序而转去执行相应的服务处理程序;当服务处理程序运行完毕之后,CPU再返回到暂停处继续执行原来的程序那什么是Φ断嵌套呢?简单点说就是低优先级的中断可以被高优先级的中断源所中断等高优先级中断服务程序结束后,再返回去执行被中断的的低优先级的中断服务程序举个简单的栗子吧(之前写过但不知道怎么删了,又让我重新编辑):比如我们就是一个CPU,我们当前在洗衣垺(当前程序)突然电话铃声响了(中断来了

我要回帖

更多关于 单片机静态数码管程序 的文章

 

随机推荐