电子琴模拟
一、实验目的
1、了解单片机系统发声原理
2、进一步熟悉定时器编程
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
二、实验说明
1、利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。
2、定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。由于定时参数不同,就发出了不同频率的脉冲。本实验中当有键按下,会发出连续脉冲,直到按键松开,才停止发音。发完后继续检测键盘,如果键还按下,继续发音。
各音阶标称频率值:
音 阶
1
2
3
4
5
6
7
频率(HZ)
261.1
293.7
329.6
349.2
392.0
440.0
493.9
三、实验内容及步骤
利用实验仪上提供的键盘,使数字键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
pop PSW
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
jz MLoop
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为符号位。
LS Byte:
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
23
22
21
20
2-1
2-2
2-3
2-4
MS Byte:
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
S
S
S
S
S
26
25
24
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
温度
数据输出(二进制)
数据输出(十六进制)
+125℃
0000 0111 1101 0000
07D0h
+85℃
0000 0101 0101 0000
0550h
+25.0625℃
0000 0001 1001 0001
0191h
+10.125℃
0000 0000 1010 0010
00A2h
+0.5℃
0000 0000 0000 1000
0008h
0℃
0000 0000 0000 0000
0000h
-0.5℃
1111 1111 1111 1000
FFF8h
-10.125℃
1111 1111 0101 1110
FF5Eh
-25.0625℃
1111 1110 0110 1111
FE6Fh
-55℃
1111 1100 1001 0000
FC90h
DS18B20温度传感器的存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。
该字节各位的意义如下:
TM
R1
R0
1
1
1
1
1
低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)
分辨率设置表:
R1
R0
分辨率
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
根据DS18B20的通讯
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
2、本实验在读取温度的基础上,完成类似空调恒温控制的实验。用加热电阻代替加热电机,制冷采用自然冷却。温度值通过LED显示电路以十进制形式显示出来,单片机发出指令信号,继电器吸合,红色LED点亮,加热电阻开始加热。
三、实验内容及步骤
1、把7279阵列式键盘的J9四只短路帽打在上方,J10打在VCC处,用8P排线将JD7和八位动态数码显示的JD11相连,JD8和JD12相连,DS18B20的CONTROL接P1.4,OUT接P1.0
2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。
3、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
4、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“DS18B20.C”源程序,进行编译,直到编译无误。
5、全速运行程序,程序正常运行后,数码LED数显为 “XX”为十进制温度测量值。按下自锁开关“控制”LED随之灯点亮加热源开始加热,温度也随着变化,当加热到设定的控制温度时如50度时,停止加热。
5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)
五、电路图
128×64点阵型液晶显示
一、实验目的
1、 了解点阵型液晶显示器的工作原理。
2、 了解点阵型液晶显示器控制方式。
二、实验说明
1、本实验箱采用内置控制器、不带字库的图形点阵液晶显示模块,点阵数为128×64。它主要由行驱动器/列驱动器及128×64 全点阵液晶显示器组成,可完成图形显示也可以显示8×4 个(16×16 点阵)汉字。
主要技术参数和性能:
1)电源VDD +5V 模块内自带-10V 负压用于LCD 的驱动电压
2)显示内容128(列) 64(行)点
3)全屏幕点阵
4)七种指令
5)与CPU 接口采用8 位数据总线并行输入输出和8 条控制线
6)占空比1/64
7)工作温度-10 +55 存储温度-20 +60
2、模块主要硬件构成说明(结构框图)
IC1、IC2 为列驱动器,IC1 控制模块的右半屏,IC2 控制模块的左半屏, IC3 为行驱动器。IC1、IC2、IC3 含有以下主要功能器件,了解如下器件有利于对LCD 模块的编程。
1)指令寄存器(IR)
IR 是用于寄存指令码,与数据寄存器数据相对应,当D/I=0 时在E 信号下降沿的作用下指令码写入IR
2)数据寄存器(DR)
DR 用于寄存数据,与指令寄存器寄存指令相对应,当D/I=1 时在下降沿作用下,图形显示数据写入DR,或在E 信号高电平作用下,由DR 读到DB7~DB0 数据总线,DR 和DDRAM 之间的数据传输是模块内部自动执行的。
3)忙标志BF
BF 标志提供内部工作情况,BF=1 表示模块在内部操作,此时模块不接受外部指令和数据;BF=0 时模块为准备状态,随时可接受外部指令和数据。利用STATUS READ 指令可以将BF 读到数据总线从而检验模块之工作状态。
4)显示控制触发器DFF
用于模块屏幕显示开和关的控制,DFF=1为开显示,DDRAM 的内容就显示在屏幕上;DFF=0为关显示。
DDF 的状态是指令DISPLAY ON/OFF 和RST 信号控制的。
5)XY 地址计数器
XY 地址计数器是一个9 位计数器高,3 位是X 地址计数器,低6 位为Y 地址计数器。XY 地址计数器实际上是作为DDRAM 的地址指针,X地址计数器为DDRAM 的页指针,Y地址计数器为DDRAM 的Y 地址指针。
X 地址计数器没有记数功能,只能用指令设置。
Y 地址计数器具有循环记数功能,各显示数据写入后 Y 地址自动加1, Y地址指针从0 到63。
6)显示数据RAM DDRAM
DDRAM是存储图形显示数据的,数据为1表示显示选择,数据为0表示显示非选择。
7)Z 地址计数器
Z 地址计数器是一个6 位计数器,此计数器具备循环记数功能,用于显示行扫描同步,当一行扫描完成此地址计数器自动加1,指向下一行扫描数据,RST 复位后Z 地址计数器为0。
Z 地址计数器可以用指令DISPLAY START LINE 预置,因此显示屏幕的起始行就由此指令控制,即DDRAM 的数据从哪一行开始显示在屏幕的第一行,此模块的DDRAM 共64 行,屏幕可以循环滚动显示64 行。
3、模块的外部接口
外部接口信号如下表所示
管脚号
管脚名称
LEVER
管脚功能描述
1
VSS
0
电源地
2
VDD
5.0V
电源电压
3
V0
5.0V -13V
液晶显示器驱动电压
4
D/I
H/L
D/I= H 表示DB7~DB0 为显示数据
D/I= L表示DB7~DB0 为显示指令数据
5
R/W
H/L
R/W= H E= H 数据被读到DB7~DB0
R/W= L E= H L 数据被写到IR 或DR
6
E
H/L
R/W= L E 信号下降沿锁存DB7~DB0
R/W= H E= H DDRAM 数据读到DB7~DB0
7
DB0
H/L
数据线
8
DB1
H/L
数据线
9
DB2
H/L
数据线
10
DB3
H/L
数据线
11
DB4
H/L
数据线
12
DB5
H/L
数据线
13
DB6
H/L
数据线
14
DB7
H/L
数据线
15
CS1
H/L
H:选择芯片(右半屏)信号
16
CS2
H/L
H:选择芯片(左半屏)信号
17
RET
H/L
复位信号,低电平复位
18
VEE
-10V
LCD 驱动负电压
19
EL
AC
背光板电源
20
EL
AC
背光板电源
4、指令说明
指令表:
1)显示开关控制(DISPLAY ON/OFF)
代码
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
形式
0
0
0
0
1
1
1
1
1
D
D=1:开显示(DISPLAY ON)意即显示器可以进行各种显示操作
D=0:关显示(DISPLAY OFF)意即不能对显示器可以进行各种显示操作
2)设置显示起始行
代码
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
形式
0
0
1
1
A5
A4
A3
A2
A1
A0
显示起始行是由Z 地址计数器控制的,A5~A0 的6 位地址自动送入Z 地址计数器起始行的地址可以是0~63 的任意一行。
例如选择A5~A0 是62 则起始行与DDRAM 行的对应关系如下
DDRAM 行 62 63 0 1 2 3 …… 28 29
屏幕显示行 1 2 3 4 5 6 …… 31 32
3)设置页地址
代码
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
形式
0
0
1
0
1
1
1
A2
A1
A0
所谓页地址就是DDRAM 的行地址,8 行为一页,模块共64 行即8 页, A2~A0 表示0~7 页读写数据对地址没有影响,页地址由本指令或RST 信号改变复位后页地址为0,页地址与DDRAM 的对应关系见DDRAM 地址表:
4)设置Y 地址(SET Y ADDRESS)
代码
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
形式
0
0
0
1
A5
A4
A3
A2
A1
A0
此指令的作用是将A5~A0 送入Y 地址计数器,作为DDRAM 的Y 地址指针,在对DDRAM 进行读写操作后,Y地址指针自动加1,指向下一个DDRAM 单元。
DDRAM 地址表:
5)读状态(STATUS READ)
代码
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
形式
0
0
BUSY
0
ON/OFF
RET
A3
A2
A1
A0
当R/W=1 D/I=0 时,在E信号为H 的作用下,状态分别输出到数据总线DB7~DB0的相应位。