单片机最小系统

单片机最小系统

单片机最小系统说明:

时钟信号的产生:在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟振荡电路。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

一般地,电容C2和C3取30pF左右,晶体的振荡频率范围是1.2-12MHz。如果晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。

单片机复位使CPU和系统中的其他功能部件都处在一个确定的初始状态下,并从这个状态开始工作。单片机复位条件:必须使9脚加上持续两个机器周期(即24个振荡周期)的高电平。

数码管显示系统显示系统采用2位数码管来显示,LED显示屏作为大型显示设备的一种,具有亮度高、价格低、寿命长、维护简便等优点。LED数码管的结构简单,分为七段和八段两种形式,也有共阳和共阴之分。以八段共阳管为例,它有8个发光二极管(比七段多一个发光二极管,用来显示sP,即点),每个发光二极管的阳极连在一起,如图(图3-3)所示。这样,一个LED数码管就有I根位选线和8根段选线,要想显示一个数值,就要分别对它们的高低电平来加以控制。为方便起见,本文主要讨论共阴八段LED数码显示管,其他类形的显示管与其类似。

LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如 H,G,F,E,D,C,B,A全亮显示为8,采用共阴极连接驱动代码,代码表如下表所示。

驱动代码表

数码管显示电路

按键输入模块

蜂鸣器电路模块

软件设计与分析该系统由延时子函数、初始化子函数、数码管显示子函数、高低音选择子函数、播放音乐子函数、演奏模式子函数、定时器0中断子函数、外部0中断子函数、定时器1中断子函数、主函数和数据定义这几部分组成。

各部分软件分析延时子函数//延时子函数

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=340;y>0;y--);

}

初始化子函数//初始化子函数

void init()

{

beep=0;

D1=1;

D2=0;

EA=1;//开总中断

TCON=0x01;//外部中断0设置为边沿触发

EX0=1;//开外部中断0

ET0=1;

ET1=1;

TMOD=0x11;//定时器0,1工作在定时状态,均为方式1

}

数码管显示子函数//数码管显示子函数

void display1()

{

in(table1[aa]); //再传段码

out();

W1=0;;

delay(1); //延迟时间2ms以内

W1=1;

in(table1[cc+1]); //再传段码

out();

W2=0;

delay(1); //延迟时间2ms以内

W2=1;

}

高低音选择子函数//高低音选择子函数

void yinjie()

{

if(k10==0)

{

delay(5);

if(k10==0)

{

aa=10;

bb=0;//返回10为seg[10]显示C

}

}

if(k9==0)

{

delay(5);

if(k9==0)

{

aa=11;

bb=1;//返回11为seg[11]显示L

}

}

if(k11==0)

{

delay(5);

if(k11==0)

{

aa=12;

bb=2;//返回12为seg[12]显示H

}

}

if(aa==0)

{

aa=13;

}

}

播放音乐子函数//播放音乐子函数

void display_music()

{

TH0=table2[table4[i]-1];

TL0=table3[table4[i]-1];

while(flag==0)

{

if(i<32)

{

TR0=1;

delay(57*table5[i]);

i++;

}

if(i==32)

{

i=0;

}

}

}

演奏模式子函数//演奏模式子函数

void display_play()

{

TR0=0;

TR1=0;

yinjie();

WE2=1;//关数码管2

WE1=0;//开数码管1

P0=table1[aa];

if(aa!=13&&flag==1)

{

if(k1==0)

{

TH1=table2[7*bb+cc];

TL1=table3[7*bb+cc];

TR1=1;

while(k1==0)

{

cc=0;

display1();

}

}

if(k2==0)

{

TH1=table2[7*bb+cc];

TL1=table3[7*bb+cc];

TR1=1;

while(k2==0)

{

cc=1;

display1();

}

}

if(k3==0)

{

TH1=table2[7*bb+cc];

TL1=table3[7*bb+cc];

TR1=1;

while(k3==0)

{

cc=2;

display1();

}

}

if(k4==0)

{

TH1=table2[7*bb+cc];

TL1=table3[7*bb+cc];

TR1=1;

while(k4==0)

{

cc=3;

display1();

}

}

if(k5==0)

{

TH1=table2[7*bb+cc];

TL1=table3[7*bb+cc];

TR1=1;

while(k5==0)

{

cc=4;

display1();

}

}

if(k6==0)

{

TH1=table2[7*bb+cc];

TL1=table3[7*bb+cc];

TR1=1;

while(k6==0)

{

cc=5;

display1();

}

}

if(k7==0)

{

TH1=table2[7*bb+cc];

TL1=table3[7*bb+cc];

TR1=1;

while(k7==0)

{

cc=6;

display1();

}

}

}

}

外部0中断子函数//外部0中断子函数

void wb0() interrupt 0

{

if(k8==0)

{

delay(5);

while(k8==0);

flag=~flag;

D1=~D1;

D2=~D2;

}

}

定时器0中断子函数//定时器0中断子函数

void t0() interrupt 1

{

TR0=0;

TH0=table2[table4[i]-1];

TL0=table3[table4[i]-1];

beep=~beep;

TR0=1;

}

3.2.9 定时器1中断子函数

//定时器1中断子函数

void t1() interrupt 3

{

TR1=0;

TH1=table2[7*bb+cc];

TL1=table3[7*bb+cc];

beep=~beep;

TR1=1;

}

3.2.10 主函数

//主函数

void main()

{

init();

while(1)

{

if(flag==0)

display_music();

else

display_play();

}

}

示例图:

下载:%77%77%77%2e%6c%61%6e%7a%6f%75%73%2e%63%6f%6d/%69%32%62%72%75%38%64

单片机多功能电子琴课设_基于51单片机电子琴的设计(附源码及论文)相关推荐

  1. 单片机多功能电子琴课设_基于51单片机的多功能电子琴设计.doc

    基于51单片机的多功能电子琴设计 基于51单片机的多功能电子琴的设计 摘要 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器.它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编 ...

  2. 单片机多功能电子琴课设_基于51单片机设计的简易电子琴

    基于51单片机设计的简易电子琴 下面直接给出proteus仿真电路 代码如下:#include #define uint unsigned int #define uchar unsigned cha ...

  3. 单片机多功能电子琴课设_基于51单片机的简易电子琴课程设计

    1.本设计采用51单片机作为主控制器 2.外部加上放音设备如喇叭等,来实现音乐演奏控制器的硬件电路 3.用8个手工的按键发出八个音阶 制作出来的电子琴实物图如下: 仿真原理图如下(proteus仿真工 ...

  4. 单片机多功能电子琴课设_基于51单片机的电子琴设计

    此设计键盘用于弹奏音乐,八个按键8种音符.单片机通过输出各种电脉冲信号开驱动控制各部分正常工作.单片机要产生音频脉冲,主要处理过程是在CPU中完成的,CPU会随时对音符输入信号进行读取数据的操作.在读 ...

  5. 单片机多功能电子琴课设_基于单片机的多功能电子琴设计

    基于单片机的多功能电子琴设计 程家勤 ; 刘强强 ; 张阳熠 ; 周海军 ; 欧美英 ; 董可秀 [期刊名称] <电子制作> [年 ( 卷 ), 期] 2017(000)011 [摘要] ...

  6. 单片机多功能电子琴课设_基于单片机的简易电子琴课程设计.doc

    基于单片机的简易电子琴课程设计.doc 还剩 16页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 15 14可在实际的应用时这些是不能被忽略的,我们不 ...

  7. 单片机多功能电子琴课设_基于单片机的电子琴设计(最终版)最新版

    <基于单片机的电子琴设计.doc>由会员分享,可免费在线阅读全文,更多与<基于单片机的电子琴设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里 ...

  8. 单片机多功能电子琴课设_单片机电子琴课程设计

    单片机技术及系统设计 题 目 : 基于单片机的电子琴制作 专 业 : 自动化 班 级 : 姓 名 : 学 号 摘要 : 随着电子技术的发展,尤其是大规模集成电路的出现,给人类生活带来 了根本性的改变. ...

  9. 单片机c语言篮球比分_基于51单片机的篮球记分牌设计

    1 摘 要 单片机,亦称单片微电脑或单片微型计算机.它是把中央处理器( CPU ).随机存 取存储器( RAM ).只读存储器( ROM ).输入 / 输出端口( I/0 )等主要计算机功能部件 都集 ...

最新文章

  1. 4.21 IP通信原理
  2. 2021-09-23对图像深入研究
  3. 将assembly包添加到自己的maven仓库
  4. mysql数据库有触发器吗_MySQL数据库之MySQL 触发器实现
  5. HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-ISAPI-4.0_32bit”在其模块...
  6. 自动配置jdk_JDK 15中自动自动发送更好的NullPointerException消息
  7. 机器学习模型 非线性模型_调试机器学习模型的终极指南
  8. 区块链技术的发展趋势
  9. 【译】Node.js 日志打印指南
  10. mariadb数据库服务
  11. c++ set用法详解
  12. wireshark TCP协议首选项配置详解
  13. 从技术问题变成RPWT
  14. Gitee码云使用与Git安装、基本使用介绍
  15. 第一型曲线积分与第一型曲面积分、第二型曲线积分与格林公式
  16. Codeforces Round #571 (Div. 2)
  17. d^3CTF web部分wp
  18. python 自动化数据提取之正则表达式
  19. Hello,你好JAVA
  20. 计算机电脑显示器都有多大的,电脑显示器买多大的合适

热门文章

  1. 浅谈砍价拼团活动策划与效果 零起步引流
  2. 如何成为人工智能训练师的一员
  3. 嵌入式软件开发常用的3种架构
  4. 小丑机器人乐高_试听课程《小丑机器人》教案
  5. ElasticSearch~ES文档操作~对文档的增删改查
  6. 直播协议服务器,p2p直播服务器和流媒体协议有关系吗?
  7. Win系统软件闪屏/Edge闪屏/Office闪屏 - 解决方案
  8. AlarmManager定时开关业务
  9. 微信小程序蓝牙对接热敏打印机
  10. python生成字符图形_【Python AsciiArt】利用命令行打印出字符图案