单片机实验

  • 格式:docx
  • 大小:485.75 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子琴模拟

一、实验目的

1、了解单片机系统发声原理

2、进一步熟悉定时器编程方法 二、实验说明

1、利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。

2、定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。由于定时参数不同,就发出了不同频率的脉冲。本实验中当有键按下,会发出连续脉冲,直到按键松开,才停止发音。发完后继续检测键盘,如果键还按下,继续发音。

三、实验内容及步骤

利用实验仪上提供的键盘,使数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音调。用P3.2 口发出音频脉冲

,驱动喇叭。

1、单片机最小应用系统的 P1口接查询式键盘,单片机INT0口接扬声器的SP+,SP-接GND ,扬声器的J19打在23处,P1口接查询式键盘的JD3口

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“Organ.ASM ”源程序,进行编译,直到编译无误。

4、全速运行程序,按查询式键盘的1~7键,扬声器发出高低不同的声音。

5、也可以把源程序编译成可执行文件,把可执行文件用ISP 烧录器烧录到89S52/89S51芯片中运行。(ISP 烧录器的使用查看附录二) 四、流程图及源程序

1.流程图

定时中断程序框图

2.源程序:

PULSE BIT 10H ;脉冲

TONEHIGH EQU 30H ;高音调

TONELOW EQU 31H ;低音调

TONE EQU 32H ;音调

SPEAKER BIT P3.2

LJMP START

ORG 000BH

TIMER0INT: ;定时中断

PUSH PSW

CLR TR0

MOV TH0, TONEHIGH

MOV TL0, TONELOW

SETB TR0

MOV C, PULSE

MOV SPEAKER,C

CPL PULSE

RETI

TONETABLE:

DW 64578, 64686, 64778, 64821

DW 64898, 64968, 65029

TESTKEY:

MOV P1, #0FFH

MOV A, P1 ;读入键状态

RET

KEYTABLE:

DB 0FEH,0FDH,0FBH,0F7H ;键值表

DB 0EFH,0DFH,0BFH,07FH

GETKEY:

MOV R6,#10

ACALL DELAY

MOV A,P1

CJNE A,#0FFH,K01 ;确有键按下

LJMP MLOOP

K01: MOV R3, #8 ;8个键

MOV R2,#0 ;键码

MOV B,A ;暂存键值

MOV DPTR, #K0TAB

K02: MOV A,R2

MOVC A,@A+DPTR ;从键值表中取键值 CJNE A,B,K04 ;键值比较

MOV A,R2 ;得键码

RET

K04: INC R2 ;不相等,到继续访问键值表

MOV A,#0FFH ;键值不在键值中,即多键同时按下 LJMP MLOOP

DELAY: ;延时子程序

MOV R7,#0

DELAYLOOP:

DJNZ R7,DELAYLOOP

DJNZ R6,DELAY

RET

START:

MOV SP, #70H

MOV TMOD,#01 ;TIMER

MOV IE, #82H ;EA=1, IT0 = 1

MOV TONE,#0

MLOOP:

CALL TESTKEY

CALL GETKEY

MOV B,A

JZ MLOOP ;= 0, < 1 ANL A, #8

JNZ MLOOP ;> 7

DEC B

MOV A,B

RL A ;A = A*2 MOV B,A

MOV DPTR,#TONETABLE

MOVC A, @A+DPTR

MOV TONEHIGH,A

MOV TH0,A

MOV A,B

INC A

MOVC A,@A+DPTR

MOV TONELOW, A

MOV TL0, A

SETB TR0

MOV P1,#OFFH

WAIT: MOV A,P1

CJNE A,#OFFH,WAIT

MOV R6,#10

ACALL DELAY

CLR TR0

LJMP MLOOP

END

五、思考题

1、请思考实验是怎样在硬件与软件上实现发声的?

2、本程序中断子程序的调用是怎样进行的?

温度传感器温度控制

一、实验目的

1、了解温度传感器电路的工作原理

2、了解温度控制的基本原理

3、掌握一线总线接口的使用

二、实验说明

这是一个综合硬件实验,分两大功能:温度的测量和温度的控制。

1、DALLAS最新单线数字温度传感器DS18B20简介

Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。

DS18B20测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

DS18B20内部结构

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下:

DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接

着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验

码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样

就可以实现一根总线上挂接多个DS18B20的目的。

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。