单片机奏乐

单片机奏乐
单片机奏乐

单片机奏乐

摘要:本设计以At89c2051为核心,主要由电源电路、复位电路、音频放大电路、时钟电路和集成数码管电路,LED位码驱动电路和喇叭电路构成单片机奏乐附加时钟的一个小系统。电路中I/O口采用分时复用的借口技术,使AT89c2051单片机的引脚资源得以充分利用,本系统的电路简单,实现的功能强大,所用芯片比较便宜,性价比较高。

关键词:At89c2051,集成数码管,单片机奏乐,分时复用

第一节:设计要求

一、设计任务

使用at89c2051为核心器件组成一个音乐盒。

1、基本要求

演奏一首乐曲:有一个按键,按下时奏曲,再按一下时停止演奏。曲子播完自动停止。

2、发挥部分

(1)可以播放多首歌曲,通过通过按键进行上一首下一首的歌曲切换

(2)加一个24小时制的时钟,在时钟中包括闹钟功能,整点报时功能,

时间,闹钟可调功能。

二、硬件电路的设计方案及流程图

下图为该系统设计方案的硬件设计框图。硬件电路由7部分组成,及按键输入电路、时钟电路、复位电路、单片机、4位LED显示器电路、LED显示器位码驱动电路、音频放大电路。

硬件电路设计框图

各模块流程图如下所示

总流程图

数码管闪烁流程图

24小时时钟流程图

音乐模块流程

:读键状态及去抖等处理子程

序流图

LED数码管动态显示子程序

流图

第二节、单片机奏乐的设计原理

一、⑴总体原理:

乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。

⑵单片机产生不同频率脉冲信号的原理:

1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。

2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:

例如,频率为523Hz,其周期天/523 S=1912uS,定时/计数器0的定时时间为:T/2=1912/2=956us 因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。计数脉冲值与频率的关系公式如下:

N=Fi/2/Fr

(N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率)

⑶其计数值的求法如下:

T=65536-N=65536-Fi/2/Fr

计算举例:

设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr

低音DO的T=65536-500000/262=63627

中音DO的T=65536-500000/523=64580

高音DO的T=65536-500000/1047=65059

音符,音符编码及定时器初值对应表:

节拍与节拍编码对照表:

第三节、硬件电路设计与器件选择

一、 单片机的选择

由于At89c20511芯片的功能与MC —51系列单片机完全兼容,并且还具有程序加密等功能,物美价廉,经济实用,所以我们这次的课程设计是是以at89c2051单片机为核心的做一个单片机奏乐系统。 At89c2051的引脚配置图如下所示

At89c2051

At89c2051的20 个引脚的功能为: VCC\GND :电源电压,接地引脚

XTAL1、XTAL2:反向震荡放大器内部时钟工作电路的输入、反向震荡放大器内部时钟工作电路的输出引脚。

RST :复位信号输入引脚。当RST 编为高电平并保持2个机器周期,所有I/O 引脚复位至“1”电平。 P1.0—P1.7:P1口的8位双向I/O 引脚。

P3.0—P3.5与P3.7:为7个带内部上拉的双向I/O 口

89C2051

二、时钟复位电路设计与器件选择

1、时钟电路的设计

单片机工作的时间基准是由时钟电路提供的。在单片机的XTAL1与XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如下图所示。

89C2051

时钟电路

电容器C1和C2对振荡频率有微调的作用,通常的取值范围是10pF至40pF;石英晶体选择6M或则12M]都可以,其结果只是机器周期时间不同,影响计数器的技术初值。

2、复位电路的设计

单片机的RST引脚为主机提供一个外部信号输入端口。信号时高电平有效,高电平有效的持续时间应为2个机器周期以上。

复位以后,单片机内各个部件恢复到初始状态,单片机从ROM的0000H开始执行程序。

单片机的复位方式有上电复位和手工复位两种,在这边我们采用的死是上电复位方式,只要VCC上升时间不超过1ms,它们都能很好的工作。该单元的电路图如图所示。

阻容器件的参考值如图中所示,即R2=1k,C4=22u

22U

C4

VCC

三、LED显示电路设计与器件选择

1、LED显示器的选择

在本次的课程设计中,我选用的是4-LED,也就是集成数码管,其中a、b、c、d、e、f、g为集成数码管的公共引出端。Ⅰ、Ⅱ、Ⅲ、Ⅳ分别是每一位共阳数码管的输入端。Dp是小数点控制端,集成数码管的结构如图所示。

集成数码管结构图

由于集成数码管的体积和结构都符合本次课程设计的要求,所以我选择集成数码管作为现实器,由于集成数码管阳极的各段已经在内部连接在一起了,所以必须选择动态扫描方式。

下图给出了单片机与集成数码管的接线方法

U?U?U?U?

图为集成数码管与At89c2051的接线方法

其中,限流电阻这边用470欧姆就可以满足要求。 下表为LED 段码表

四、按键电路设计与器件选择

单片机奏乐与电子时钟系统工作应具备三项基本功能,一是能够实现对音乐的开始暂停播放,而是能

够随时对时间和闹钟的调整,三是调整的幅度。

1、键盘结构的选择

在本次的设计中为了资源的合理利用,我灵活的对单片机的接口分时复用,其中p3.0至p3.3既控制四个按键,也控制集成数码管的公共端,4个按键的名称分别为ek0、ek1、ek2、ek3,按键采用普通按键。

2、按键与单片机的接口电路设计 图为按键与单片机的接口设计

其中4个I/O 口都作为普通I/O 使用,4个按键的设计思路如下:

Ek0:在时钟走时的状态下能够随时的播放音乐,能够随时的暂停播放,在闹钟响的时候能够随时暂停。 Ek1:当时钟有误差时,能够随时对其进行调整,配合ek3来完成这一功能,第二功能是能够上一首播

Ek2:当想要设置闹钟时,配合ek3来完成这一功能,第二功能是能够下一首播放。

Ek3::分别对小时十位,小时个位,分钟十位,分钟个位进行+1调整,即每按一次,对应的时间调整位

+1.

89C2051

五、喇叭电路设计

设计要求定时(闹钟)时间到的时候有声音提取信号产生,可以选择一只蜂鸣器来完成这一功能。电路设计如下图所示,喇叭作为三极管的集电极负载,当VT1导通是,喇叭发出声音,当截止时,喇叭,不发声。R5是限流电阻,22u 是滤除高频,9013作为放大信号。

六、闪烁灯电路设计

由于两只发光二极管实现的功能简单,单纯的亮与灭,所以我采用用一个9012控制, 当p1.7输出低电平时导通,输出高电平时截止。其接法如下图所示。由于LED 工作是只需

图为LED 闪烁电路

10至15mA 电流,故可以串联一个470欧姆的电阻可以满足要求。

U?

BUF

470

七、电源电路的设计

从市电经过一个变压器,输出一个9V的交流电,然后经过整流桥的作用形成脉冲直流信号,然后在经过C1的滤波,输出较稳定的高电平信号。最后经过7805稳压后输出稳定的+5V电源。

整流桥用4个4007构成,由于7805的1脚和3脚的电亚要大于3V,故变压器的副端接9V交流电,形成脉动直流信号后,需要比较大的电容进行滤波,考虑到性价比,在这采用470uF的电容滤波,而C2是消除地面给输出的纹波的作用,在这采用470uF/25v。

其电路图如下:

+5v

至此,我已经设计了电子时钟与单片机奏乐这个小系统的硬件电路设计,要使以上功能得以实现,还需配合相应的软件,才能达到设计要求。

第四节、系统调试

在这个小系统刚刚焊接完成之后,马上用万用表进行短路测试,结果发现并没有地方时虚焊,在烧如程序之后,发现集成数码管都不亮,经过百般调试验证,发现我电路板上的数码管是共阴集成数码管,记过分析,因为我用的是9012驱动数码管,所以公共端无论是高电平还是低电平数码管都不会亮的,次日送到库房去领个共阳的,焊接上去之后,时钟电路显示正常,但是喇叭电路异常,声音极其的小,甚至无法听到,后来发现原来是9013的驱动不够,所以我在喇叭电路的上面上拉一个3k3的电阻,声音马上洪亮起来。

经测试,7805输出的电压为4.98V,符合基本要求。

第五节、设计总结

在本设计中,各个设计基本要求均得到满足,发挥部分也可行。说明这个设计合理。

第六节心得体会

这是一个系统的设计,也是对学习单片机一年来的总结,在本次的课程设计中,我比以往付出的要多的多,因为之前我的单片机知识也不是很好,所以在本次课程设计之前我花了整整两个礼拜的时间在单片机上,把其它的专业课全部先放下,我不知道这样学习是对是错,不过我依然选择我的做法,大学来我最感兴趣的课程就是单片机,因为它可以按自己的意愿实现某些功能。在这次课程设计中,各个单元的设计和系统的总体设计均不错,但我也在这次设计中暴露出自己的不足之处:PCB设计线路不够简洁,参数设计还不够完美。我会吸取这些经验和教训,多多注意细节问题。为以后的设计甚至工作中打下良好的基础。最后还要感谢我的指导老师,郭海燕老师,他为我们分析电路,pcb图等等。

第七节、参考文献

[1]韩志军、沈晋元、王振波编著.单片机应该系统设计———入门向导与设计实例[M].机械工业出版社

[2]张义和,陈敌北编著.例说8051[M].人民邮电出版社

[3]倪云峰主编.单片机原理与应用[M].西安电子科技大学出版社

附录

1、原理图

+5v p3.0p3.1p3.2p3.3

2、PCB图

附录三、元器件清单列表

附录四实物正反面图实物正面图

实物反面图

附录五:源程序清单

MAIN.ASM

;====变量及常数定义段====

INCLUDE "V ARDFN.ASM";添加变量等定义模块

;===============

ORG 0000H

LJMP MAIN

ORG 001BH

LJMP TIM1

ORG 0030H

MAIN:INCLUDE"INITIAL.ASM ";添加初始化模块

MLOOP: LCALL DELAY1

LCALL ADD1

LCALL RDKEY ;调用读键状态及去抖处理

LCALL SDISP ;调用数码管动态显示

MOV A,STA ;根据状态值散转相应模块

ANL A,#07H

RL A

MOV DPTR,#MTAB

JMP @A+DPTR

MTAB: AJMP WORK0 ;走时模块

AJMP WORK1 ;转移到时间设定模块

AJMP WORK2 ;转移到闹钟设定模块

AJMP

WORK3 ;转移到音乐模块

AJMP WORK4 ;转移到一分钟闹钟响铃模块

AJMP

WORK5 ;转移到整点报时模块

;***********走时模块**************************** ***

快速入门单片机汇编语言

快速入门单片机汇编语言 简要: 单片机有通用型和专用型之分。专用型是厂家为固定程序的执行专门开发研制的一种单片机,其程序不可更改。通用型单片机是常用的一种供学习或自主编制程序的单片机,其程序需要自己写入,可更改。单片机根据其基本操作处理位数不同可以分为:1位、4位、8位、16、32位单片机。 正文: 在此我们主要讲解美国ATMEL公司的89C51单片机。 一、89C51单片机PDIP(双列直插式)封装引脚图: 其引脚功能如下: P0口(p0.0—p0.7):为双向三态口,可以作为输入/输出口。但在实际应用中通常作为地址/数据总线口,即为低8位地址/数据总线分时复用。低8位地址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。 P1口(p1.0—p1.7):其每一位都能作为可编程的输入或输出线。 P2口(p2.0—p2.7):每一位也都可作为输入或输出线用,当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线。对89c51单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。 P3口(p3.0—p3.7):其为双功能口,作为第一功能使用时,其功能与P1口相同。当

作为第二功能使用时,每一位功能如下表所示。 P3口第二功能 Rst\Vpd:上电复位端和掉电保护端。 XTAL1(xtal2):外接晶振一脚,分别接晶振的一端。 Gnd:电源地。 Vcc:电源正级,接+5V。

PROG\ALE:地址锁存控制端 PSEN:片外程序存储器读选通信号输出端,低电平有效。 EA\vpp:访问外部程序储存器控制信号,低电平有效。当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器。当EA为低电平时只访问外部程序存储器。 二、常用指令及其格式介绍: 1、指令格式: [标号:]操作码 [ 目的操作数][,操作源][;注释] 例如:LOOP:ADD A,#0FFH ;(A)←(A)+FFH 2、常用符号: Ri和Rn:R表示工作寄存器,i表示1和0,n表示0~7。 rel:相对地址、地址偏移量,主要用于无条件相对短转移指令和条件转移指令。 #data:包含于指令中的8位立即数。 #data16:包含于指令中的16位立即数。 addr16:16位目的地址。 direct:直接寻址的地址。

基于51单片机的音乐播放器

基于51单片机的音乐播放器 余子健、刘胤、宋亮 摘要:本大作业是基于sst89e52rd2单片机制作的wav音乐播放器。该播放器可以播放存在sd卡中的音乐,通过对sd卡的读取并将数字信号送入单片机中,借助8位DA转换器TLC5620 变成模拟信号,经过放大器TDA2822放大交给扬声器发出最初读取的音频信号,实现音乐播放的功能。 关键词:SD卡,WAV文件,DA,音频放大 1背景 音乐随身听产品经过几年的发展,已经变得相当成熟。市场上可以购买到各类不同的音乐播放器,产品线涵盖了高中低不同档次。作为学习与研究,本作品尝试利用STI51开发板板载资源以及外搭的功率放大电路制作一台音乐播放器,能够播放通过计算机拷贝在SD卡(或MMC卡、TF卡)的根目录中的某一个WAV 文件。 2硬件设计 该音乐播放器硬件组成如下 本音乐播放器使用容量为2G的SD作为外部存储器 主控制器采用SST公司生产的SST89E58RDA,其40引脚封装的芯片功能模块如图1所示。芯片主要特想如下: ?兼容80C51系列,内置超级FLASH存储器的单片机 ?工作电压VDD=4.5~5V,5V工作电压时0-40MHz频率范围 ?1KB的内部RAM ?两块超级FLASH EEPROM,32KB的基本存储卡和8KB的二级存储块(扇区大小为128字节),二级存储块可用于存放掉电后要保存的数据,放在内部具有极强的抗干扰性?最大片外程序/数据地址空间为64KB ?全双工增强型UART,帧错误检测,自动地址识别 ?9个中断源,4个中端优先级 ?降低EMI模式(通过AUXR SFR不允许ALE输出时钟),确保了单片机的高抗干扰性?双DPTR指针(查表,寻址更方便)

单片机音乐频谱..

题目:单片机LED音乐频谱的设计院(系): 专业: 学生姓名: 学号: 指导教师: 2011年07月07日

摘要 该系统采用增强型8051单片机STC12C5A60S2为主控制器,通过单片机内置的ADC对音频信号进行采样、量化,然后通过快速傅里叶变换运算,在频域计算出音频信号各个频率分量的功率,最后通过双基色LED单元板进行显示。该方案具有电路结构简洁,开发、生产成本低的优点。 关键词:单片机;傅里叶;LED;

目录 1. 引言 (1) 2. 方案设计 (2) 2.1设计要求 (2) 2.2总体方案设计 (3) 2.3总体方案组成 (6) 3. 系统电路设计 (6) 3.1单片机主控电路设计主控制器 (6) 3.2LED显示模块电路设计 (7) 4. 软件设计 (8) 4.1软件设计流程图 (8) 5.系统的测试 (8) 6.结论 (9) 7.参考文献 (11) 8. 附录 (14)

1. 引言 本文介绍的音乐频谱显示器可对mp3、手机、计算机输出的音乐信号进行实时的频谱显示。系统采用增强型8051单片机STC12C5A60S2为主控制芯片,通过单片机内置的ADC对音频信号进行采样,把连续信号离散化,然后通过快速傅里叶变换(FFT)运算,在频域计算出音频信号各个频率分量的功率,最后通过双基色LED单元板进行显示。在显示的频率点不多的情况下,本系统比采用DSP或ARM作为主控制芯片的设计方案具有电路结构简洁,开发、生产成本低的优点。

2. 方案设计 2.1设计要求 1. 单片机自带AD 转换,这样省去外围AD 电路。 2. 控制LED 随着音乐跳动,需要理解傅里叶原理。 2.2总体方案设计 经分析,将系统分为两个部分,一个是由单片机组成的主控。另一部分是LED 显示部分,单片机对接收到的音频进行处理经过傅里叶换算后在LED 显示,5V 稳压电源给各个部分供电。 该系统实现的方法有很多种,下面将列出大家最经常用到的实现方案。系统框图如图1所示 图1 音乐频谱总体系统框图 该系统由音频信号预处理电路、单片机STC12C5A60S2控制电路、LED 频谱显示电路等部分组成。图l 为系统整体设计原理框图。 图1 系统整体设计原理框图 系统各组部分的功能:(1)音频信号预处理电路主要对输入的音频进行电压放大和电平提升。(2)单片机STC12C5A60S2控制电路采用内置的ADC 对音频信号进行采样量化,然后对量化后的音频数据采用FFT 算法计算其频谱值,再将各频谱值进行32级量化。(3)LED 频谱显示电路在单片机的控制下,负责将FFT 计算得到的音频信号的各个频点的大小进行直观显示。 1.音频信号预处理电路 图2 音频信号预处理电路 音频信号预处理电路见图2所示,对输入的音频进行电压放大和电平提升。手机、计算机输出的音频信号Vin 经过RP1进行电压调节后,经集成运放LMV358反相放大10倍(Av=-R3/R2=-10),提高系统的灵敏度。选用单电源供电的运放LMV358,一方面可以简化系统电源电路的设计,直接采用系统的+5V 供电即可;另一方面其输出端静态电压为VCC/2,即2.5V 。放大后的音频信号和这2.5V 叠加后变为直流电压信号,满足后面单片机内置的ADC 对输入电压量程的要求。另外,LMV358为轨到轨输出运放,它可在+5V 单电源供电条件下仍具有较大的动态输出范围。 2.单片机STC12C5A60S2控制电路 显示电路 音频信号 单片机 电源

快速入门单片机汇编语言

快速入门单片机汇编语 言 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

快速入门单片机汇编语言 简要: 单片机有通用型和专用型之分。专用型是厂家为固定程序的执行专门开发研制的一种单片机,其程序不可更改。通用型单片机是常用的一种供学习或自主编制程序的单片机,其程序需要自己写入,可更改。单片机根据其基本操作处理位数不同可以分为:1位、4位、8位、16、32位单片机。 正文: 在此我们主要讲解美国ATMEL公司的89C51单片机。 一、89C51单片机PDIP(双列直插式)封装引脚图: 其引脚功能如下: P0口(—):为双向三态口,可以作为输入/输出口。但在实际应用中通常作为地址/数据总线口,即为低8位地址/数据总线分时复用。低8位地址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。 P1口(—):其每一位都能作为可编程的输入或输出线。 P2口(—):每一位也都可作为输入或输出线用,当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线。对89c51单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。 P3口(—):其为双功能口,作为第一功能使用时,其功能与P1口相同。当作为第二功能使用时,每一位功能如下表所示。 P3口第二功能

Rst\Vpd:上电复位端和掉电保护端。 XTAL1(xtal2):外接晶振一脚,分别接晶振的一端。 Gnd:电源地。 Vcc:电源正级,接+5V。 PROG\ALE:地址锁存控制端 PSEN:片外程序存储器读选通信号输出端,低电平有效。 EA\vpp:访问外部程序储存器控制信号,低电平有效。当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器。当EA为低电平时只访问外部程序存储器。 二、常用指令及其格式介绍: 1、指令格式: [标号:]操作码 [ 目的操作数][,操作源][;注释] 例如:LOOP:ADD A,#0FFH ;(A)←(A)+FFH 2、常用符号: Ri和Rn:R表示工作寄存器,i表示1和0,n表示0~7。 rel:相对地址、地址偏移量,主要用于无条件相对短转移指令和条件转移指令。 #data:包含于指令中的8位立即数。 #data16:包含于指令中的16位立即数。

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

单片机35个实例1(汇编)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。

4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此, 我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太 大,所以我们在执行某一指令时,插入延时程序,来达到我们 的要求,但这样的延时程序是如何设计呢?下面具体介绍其原 理: 如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒 机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248 =498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002

因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7 =248时,延时10ms,以此为基本的计时单位。如本实验要求 0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如 下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据 发光二极管的单向导电性可知,这时发光二极管L1熄灭;当 P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我 们可以使用SETB P1.0指令使P1.0端口输出高电平,使用 CLR P1.0指令使P1.0端口输出低电平。 5.程序框图

单片机C语言快速入门学

单片机c语言入门学 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没 什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什 么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机, 但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片 机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候, 我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出, 或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看 我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具 体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似, 编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲 的全是C方面的,完全在浪费你的时间! 呵呵 ^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使 你每天捧着本书,把那本书翻烂,也永远学不会单片机的!刚接触单片机的朋友,看了资料,

STM32单片机快速入门V1.0概要

STM32 单片机快速入门 王志杰 2010年 5月 15日 目录 1 集成开发环境 (IDE ...................................................................................................................3 1.1 IAR 集成开发环境 ...............................................................................................................3 1.2 KEIL集成开发环 境 (20) 1.3 TrueSTUDIO集成开发环 境 (41) 2 附 录 ...........................................................................................................................................

.....54 2.1 源代码 main.c (54) 1集成开发环境(IDE 1.1IAR 集成开发环境 1.1.1安装 IAR 可从 IAR 网站上下载软件。 https://www.360docs.net/doc/3415721240.html, 下载安装,如下图所示:运行 IAR ,界面如下所示:

STM32

单片机快速入门 1.1.2创建一个工程 选择 File>New>Workspace STM32单片机快速入门新建一个 project ,选择

基于51单片机的音乐程序

基于51单片机的按键切换播放音乐 原理图: 引脚说明:共5个按键,分别接51单片机的P0~P4引脚,前4个按键控制播放设置好的四首音乐,第5个按键用来关闭音乐。按键采用中断方式,任意时刻按下任意按键则立即进入所按按键的功能;蜂鸣器接单片机的P3.6口。 仿真说明:使用proteus仿真,晶振:12MHZ。 程序代码如下: /*12Mhz晶振工作*/ #include #define uint unsigned int #define uchar unsigned char sbit voice=P3^6; uchar code sound1[]={0xff, 0x40,0x80,0x30,0x40,0x2b,0x40,0x26,0x80,0x24,0x10,0x26,0x40,0x30,0x40, 0x2b,0x80,0x30,0x40,0x39,0x40,0x30,0xc0,0x40,0x80,0x30,0x40,0x2b,0x40, 0x26,0x40,0x26,0x20,0x24,0x20,0x20,0x40,0x30,0x40,0x24,0x80,0x26,0x10,

0x20,0x40,0x19,0x40,0x19,0x80,0x1c,0x10,0x1c,0x80,0x20,0x40,0x20,0x20, 0x1c,0x20,0x19,0x40,0x1c,0x20,0x20,0x20,0x26,0xc0,0x24,0x80,0x24,0x10, 0x20,0x40,0x1c,0x40,0x20,0x40,0x24,0x20,0x26,0x20,0x2b,0x80,0x33,0x40, 0x33,0x20,0x39,0x20,0x40,0x40,0x39,0x40,0x30,0xc0,0x18,0x80,0x1c,0x80, 0x24,0x80,0x20,0x10,0x1c,0x80,0x19,0x40,0x19,0x20,0x19,0x20,0x19,0x40, 0x1c,0x20,0x20,0x20,0x26,0xc0,0x18,0x80,0x1c,0x80,0x24,0x80,0x20,0x10, 0x1c,0x80,0x1c,0x40,0x1c,0x20,0x1c,0x20,0x1c,0x40,0x24,0x20,0x26,0x20, 0xff,0x20,0x00};//同一首歌*/ uchar code sound2[]={0xff, 0x18,0x40,0x1c,0x20,0x18,0x20,0x13,0x40,0x13,0x20,0x15,0x20,0x13,0x20, 0x15,0x20,0x13,0x20,0x15,0x20,0x18,0x20,0x19,0x20,0x1c,0x20,0x20,0x20, 0x1c,0x40,0x19,0x20,0x18,0x20,0x15,0x40,0x10,0x80, 0x13,0x10,0x10,0x40,0x15,0x10,0x13,0x10,0x18,0x10,0x1c,0x10,0x26,0x10, 0x13,0x10,0x18,0x10,0x1c,0x10,0x26,0x10,0x13,0x10,0x18,0x10,0x1c,0x10, 0x26,0x10,0x13,0x10,0x18,0x10,0x1c,0x10,0x26,0x10,0x15,0x10,0x19,0x10, 0x20,0x10,0x2b,0x10,0x15,0x10,0x19,0x10,0x20,0x10,0x2b,0x10,0x15,0x10, 0x19,0x10,0x20,0x10,0x2b,0x10,0x15,0x10,0x19,0x10,0x20,0x10,0x2b,0x10, 0x18,0x10,0x1c,0x10,0x24,0x10,0x30,0x10,0x18,0x10,0x1c,0x10,0x24,0x10, 0x30,0x10,0x19,0x10,0x20,0x10,0x2b,0x10,0x19,0x10,0x19,0x10,0x20,0x10, 0x2b,0x10,0x19,0x10,0x18,0xc0,0xff,0x40,0x40,0x10,0x39,0x20,0x30,0x20, 0x2b,0x20,0x30,0x20,0x2b,0x20,0x26,0x20,0x26,0x20,0x26,0x20,0x26,0x20, 0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x20,0x26,0x20,0x26,0x20,0x26,0x20, 0x26,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x30,0x10,0x30,0x20, 0x39,0x20,0x30,0x40,0x2b,0x10,0x2b,0x20,0x26,0x20,0x26,0x80,0x40,0x10, 0x39,0x20,0x30,0x20,0x2b,0x20,0x30,0x20,0x2b,0x20,0x30,0x20,0x30,0x20, 0x20,0x20,0x20,0x20,0x26,0x20,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20, 0x30,0x20,0x26,0x20,0x26,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40, 0x2b,0x10,0x2b,0x20,0x2b,0x20,0x2b,0x40,0x30,0x10,0x30,0x20,0x39,0x20,

基于protuse的单片机模拟的实例

本人对单片机的一些了解,在这里和大家分享。 (1)基于AT89C52的同步串口通信 ①单片机1程序 (程序在Kile C51上运行通过。) /******************************************************************** * 文件名:液晶1602显示.c * 描述: 该程序实现了对液晶1602的控制。 * 创建人:东流,2009年4月10日 * 版本号:2.0 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int //这三个引脚参考资料 sbit E=P3^5; //1602使能引脚 sbit RW=P3^6; //1602读写引脚 sbit RS=P3^7; //1602数据/命令选择引脚 sbit aaa=P1^0; sbit bbb=P1^1; sbit aa=P3^0; sbit bb=P3^1; /******************************************************************** * 名称: delay() * 功能: 延时,延时时间大概为140US。 * 输入: 无 * 输出: 无

***********************************************************************/ void delay() { int i,j; for(i=0; i<=100; i++) for(j=0; j<=20; j++) ; } /******************************************************************** * 名称: enable(uchar del) * 功能: 1602命令函数 * 输入: 输入的命令值 * 输出: 无 ***********************************************************************/ void enable(uchar del) { P2 = del; RS = 0; RW = 0; E = 0; delay(); E = 1; delay(); } /******************************************************************** * 名称: write(uchar del) * 功能: 1602写数据函数 * 输入: 需要写入1602的数据 * 输出: 无 ***********************************************************************/ void write(uchar del) { P2 = del; RS = 1; RW = 0; E = 0; delay(); E = 1; delay();

STM8单片机入门快速教程

STM8单片机入门快速教程 一、前言 因个人在学习STM8时遇到许多困惑,所以编译一个 STM8快速入门教程,望能为初学者提供一些帮助。二、STM8使用的编译软件和下载软件 STM8有对应库函数,但我用的是IAR编译软件,是直 接操作寄存器,所以就不对库函数多少什么。IAR是最 近一两年才支持STM8编译的,所以软件嘚找好,注册 机嘚选对。下载软件我是用现成的“轩微科技STM8编 程下载器”淘宝要60多一个。因操作寄存器所以要具 备几个文档,具体我配带在文件里面了。编程用的头文 件是#include 或#include , 根据型号而定,有的型号不一样定义的地址会不一样 的。 三、IO的输出、输入 每个单片机我想最重要懂的应该是它怎么输出高低电平还怎么输入。STM8管脚分三级流水控制。分别有方向寄存器、控制寄存器、还有输出/输入寄存器。 方向寄存器:是控制IO口成输出还是输入状态 控制寄存器:有两个,是控制IO口以什么模式输出或输入 因为高级单片机有很多种输出模式,比如上拉 输入,推挽输出等....。

输出/输入寄存器:其分别有单独的输出寄存器和输入寄存器,输出寄存器给其高低电平就输出高低电平 (条件是配置为输出状态时)。输入寄存器无 论是在输出还是输入模式都可读取IO的高低 电平状态。 其具体设置可下面: DDR CR1 CR2 引脚设置 0 0 0 悬浮输入 0 0 1 上拉输入 0 1 0 中断悬浮输入 0 1 1 中断上拉输入 1 0 0 开漏输出 1 1 0 推挽输出 1 X 1 输出(最快速度为10MHZ)

第04讲:MCS-51单片机的并行IO口M

单片机技术 电气学院:易先军第02章:MCS-51单片机结构原理 RE: ●硬件编程结构及引脚[已介绍] ●CPU主要部件与特殊功能寄存器(SFR)[已介绍] ●片内外存储器的组织结构和编址[已介绍] ●并行I/O口【本次课内容!】 ●中断及中断系统 ●定时/计数器、串行口(外设) 4、MCS51单片机的并行I/O口 所谓并行I/O口,即各位的数据同时被输入或输出,它的最大特点是速度快。 (1)结构特点 MCS-51系列单片机的32根I/O线分为四个双向并行口P0~P3,每根I/O 线由一个锁存器(相当于特殊功能寄存器中的一位),一个输出驱动器(场效应管FET)和一个输入缓冲器(三态门)组成。由于功能的不同,P0~P3各口的结构有所区别。各锁存器由D触发器构成,在CPU“写锁存器” 信号的作用下,内部总线的数据写入D触发器。两个三态门分别用来读锁存器或读引脚的信息。 P1、P2、P3口均有内部上拉电阻,而P0口的引脚是通过场效应管接到VCC。显然,当P0口的上、下两只场效应管均关断时,引脚相当于“浮空”状态,即可作为高阻抗的输入端口(∴P0口为真正的双向口)。P0、P2口的驱动器的输出与多路转换器MUX的状态有关,P3口的驱动器也与输出功能的类型有关,这些均为这些端口的多重作用创造了条件。(2)输入功能 单片机有两种读一个端口的方法:读锁存器和读引脚。 ①读锁存器:在CPU“读锁存器”信号的作用下,锁存器的 状态通过三态门送到内部总线,然后读到CPU中进行处理,而处理后的值将被重新写入锁存器。能实现这种功能的指令称为“读—修改—写”指令,它们有: ANL(逻辑与指令) 例如:ANL P1,A ORL(逻辑或指令) 例如:ORL P2,A XRL(逻辑异或指令) 例如:XRL P3,A INC(增量指令) 例如:INC P2 DEC(减量指令) 例如:DEC P1 DJNZ(循环判跳指令)例如:DJNZ P2,LOOP JBC(位测试转移指令)例如:JBC P1. 1, LOOP MOV(位传送指令) 例如:MOV P1.3, C CPL(位取反指令) 例如:CPL P1.0 CLR (位清“0”指令) 例如:CLR P1.0 SETB(位置位指令) 例如:SETB P3.3 !读锁存器操作的共同点(特征):先读入并行I/O口锁存器中的内容,作一定的修改,然后再写入该口的锁存器中(读出—修改—写回)。 上述的后五条指令,属于位操作指令,实际上也是先要将8位锁存器的内容一起读入,再按指定位进行修改,然后再一起写入锁存器中。②CPU“读引脚”信号时,接在该端口引脚的外部信号通过三态门读到内部总线,并送CPU处理,因而实现了数据的输入。 但必须注意,在读引脚时,该端口的锁存储器必须事先写“1”。这是因为该端口既是输出端同时也是外部信号的输入端。比如:假设该端口的状态此时为0,则驱动器的下方场效应管会导通,此时相当于输出“0”;如果有一外部输入信号是高电平且加到该引脚上,则该引脚会被强行箝拉到低电平,故造成读到CPU中的数据为“0”,同时也可能造成器件损坏! 而事先给锁存器写“1”,对于P0口,此时上、下两只场效应管均夹断,则构成高阻输入;对于P1、P2和P3口,此时的输出给拉成高电平,故其电平状态取决于外部信号。(在复位时,各端口的锁存器均置成“1”!)

1小时单片机c语言快速入门1

1小时c语言入门 (一) 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚,更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机(Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机,但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着

书在埋头复习的时候,我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出,或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似,编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲的全是C方面的,完全在浪费你的时间! 呵呵^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使你每天捧着本书,把那本书翻烂,也永远学不会单片机的!

基于单片机控制音乐播放

硅湖职业技术学院毕业论文(设计)题目基于单片机控制的音乐播放器 年级08级 专业机电一体化 姓名李耘 学号080202128 指导老师李巧红 2011 年 5 月 1 日

基于单片机控制的音乐播放 李耘 【摘要】在电子技术日月更新、不断换代,计算机程序设计语言应用广泛,特别是单片机技术日趋发达的情况下,为了培养并增强设计自主性和动手能力强的人才,了解单片机强大的设计功能。在此次设计中主要采用单片机AT89C52和一个SOUNDER(喇叭)来实现音乐的播放。 【关键词】单片机音乐播放器控制 一、绪论 现在各种各样的音乐播放器呈现在我们面前,外观越来越精美,功能越来越多,体积越来越小,重量也越来越小、价格越来越便宜。同时,随着当代手机行业的快速发展,许多手机厂商为了能够吸引广大的客户受到消费者的青睐,致此他们开始研究在手机上实现音乐和视频的播放,因此现在的手机都能够轻松的播放音乐了。这样人们就更很容易携带,随时随地都可以听,以便来缓解人们的疲劳、压抑、愉快人们的心情等,甚至有时还可以借着音乐来抒发自己的感情,传达我们对朋友的祝福。因此,在不知不觉中它成为了人们生活的一样必需品,无论到哪里、无论什么时候都可以听到我们想听的音乐。 在实际中参照单片机相关资料,就可容易的利用单片机设计出一个音乐发生器。在设计过程中人们还可考虑用多种方法进行实现,这样不但很好的发挥了人们的创新精神,还提高了动手能力、综合分析能力及专业知识运用能力。 二、音乐基础知识

音作为一种物理现象,是由于物体振动而产生的,振动产生的声波作用于人耳,听觉系统将神经冲动传达给大脑,进而产生听觉。人耳能听到的声音频率大约在11—20000Hz,而音乐使用的音一般在27—4100Hz。 一首音乐就是由许多不同的音符组成的,而每一个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以拍数对应的延时来构成不同的音乐。 音乐的产生需要不同频率的音频脉冲,对于单片机而言,可以利用它的定时/计数器产生这样的方波频率信号。在本设计中,单片机工作在12MHz时钟频率下,其时钟周期为1us,因此可以利用AT89C52的内部定时/计数器T0,使其工作模式为1,根据对应音符的不同频率求出计数器的初值T(即是TH0和TL0的值),则TH0=T/256,TL0=T%256。 三、系统方案设计 3.1设计任务 设计一音乐发生器: (1)用单片机作为开发工具,至少能储存3首乐曲; (2)能按键选择乐曲序号,每按一次加1键乐曲序号加1,每按一次减1键乐曲序号减1; (3)能进行仿真音乐发生器。 3.2设计过程 在毕业设计题目选择后,我积极的查阅相关资料。经过分析、思考及其指导老师的悉心的指导,我最终设计出了二种方案,并对每一种方案进行分析与考虑及各个方案的比较,选择了第一种方案——用

单片机入门常用知识

概述: 所谓单片机就是能在一个芯片上完成计算机处理功能的设备,在芯片的内部有计算单元、数据处理单元、程序存储以及常用的外部接口管理单元。在软件程序的管理控制下可实现设计者所需要的功能。 最初的单片机受芯片设计密度的限制,功能和性能不强,随着技术的发展,目前的单片机可实现大多数的常用接口功能,软件的存储空间也越来越大,处理能力大幅增加。 单片机常用功能: 普通端口功能:单片机都带有多个逻辑端口,可作为逻辑状态的输入输出使用,可用于控制或读取外部状态。 定时功能:单片机内部包含有定时器,通过对定时时钟进行计数来产生需要的延时,延时的长短可通过设置定时器的计数值来设置。 中断功能:单片机内部设定有多个中断入口,每当产生中断条件后,程序自动跳入到中断入口,通过中断入口的跳转指令转到中断处理程序,执行完后返回到产生中断跳转程序处的下一个指令地址。在单片机接口上,有专用的中断管脚,可设置为电平中断或边沿中断,当管脚出现条件时,设置对应的中断标志,触发相应中断。除了管脚中断,串口、定时、A/D等几乎都可产生中断。同时,中断的响应还需要设置对应的寄存器到要求的状态才可。 串口功能:串口相对于并口来说,数据是通过一个管脚送出或读入,数据长度一般为8位,按顺序移位送出。串口特点具有实用管脚少,应用方式灵活的特点,通过RS232电平转换可直接和计算机的串

口进行通讯。 A/D功能:可直接输入模拟信号,软件发出转换信号后,信号的幅值可通过转换变换为数值信号送对应的寄存器上。 D/A功能:可直接输出模拟信号,信号的幅值可通过D/A端口的设置数值来设定。 以上为常用功能,有些单片机还有SPI、USB、CAN等多种接口外部常用设备: 显示和输入:单片机的处理信息一般通过液晶屏或数码管来显示处理内容,液晶屏或数码管可直接连接到单片机管脚上,按照显示需求设置软件即可,输入多用按键输入,也可直接连接到单片机管脚上,软件通过监测管脚状态可获得按键信息。 串口应用:单片机串口信号一般为TTL电平,外部常用RS232或RS485,在应用中需要加对用的转换芯片或模块。 开发环境: 单片机储存的程序为二进制格式,把程序写入到单片机需要专用的设备,早期完成这个功能采用编程器来完成,编程器通过打印机口或串口以及USB口和计算机连接,单片机则通过可锁插座装入到编程器上,通过计算机上的软件选择好单片机型号,读入要下载的二进制软件,然后运行编程,则完成下载。目前,则是通过仿真器(下载线)来完成,一般是通过USB口连接计算机,计算机上下载功能和仿真功能集合到一起。通过编译软件把软件编译成二进制文件,然后直接下载即可。下载后的软件可通过仿真运行进行调试。

51单片机50个实例代码

51单片机50个例程代码程序里有中断,串口等驱动,直接复制即可使用1-IO输出-点亮1个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.360docs.net/doc/3415721240.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 sbit LED=P1^0;// 用sbit 关键字定义LED到P1.0端口, //LED是自己任意定义且容易记忆的符号 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用bit位对单个端口赋值 LED=1; //将P1.0口赋值1,对外输出高电平 LED=0; //将P1.0口赋值0,对外输出低电平 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 2-IO输出-点亮1个LED灯方法2 /*-----------------------------------------------

名称:IO口高低电平控制 论坛:https://www.360docs.net/doc/3415721240.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用1个字节对单个端口赋值 P1 = 0xFF; //P1口全部为高电平,对应的LED灯全灭掉, //ff换算成二进制是1111 1111 P1 = 0xfe; //P1口的最低位点亮,可以更改数值是其他的灯点亮 //0xfe是16进制,0x开头表示16进制数, //fe换算成二进制是1111 1110 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 3-IO输出-点亮多个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.360docs.net/doc/3415721240.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的多个LED灯

相关文档
最新文档