课程实验报告
课 程 名 称: STC实验板综合设计
实验项目名称: 改进电子音乐
专 业 班 级:
姓 名:
学 号:
指 导 教 师:
完 成 时 间: 2020 年 9 月 16 日
一、 设计背景
二、实验硬件说明
1.STC实验板的概况
2. STC实验板的组成结构
3. STC实验板相关电路的原理图
三、设计目标与功能
四、 软件功能模块设计
1. 初始化模块
2. 延时模块
3. 音乐转化功能模块
4. 切歌模块
5. 暂停模块
五、 综合调试
1. 软件测试
2. 硬件测试
六、 总结
一、 设计背景
单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。单片机由于集成度高,存储容量大,外部扩展能力强,控制功能强,广泛应用于节能控制,智能语音设备,报警控制,医疗设备等仪器设备。
此外,单片机可以应用在CPU开发,程序开发,存储器开发,计算机开发及C语言程序开发,使用C语言进行编程,然后采用软硬件仿真的工作方式。生活中随处可见单片机的身影,航空的导航装值,飞行仪上各种仪表盘控制,广泛使用的IC卡,手机,摄像机,全自动洗衣机,电动玩具,电子宠物,智能手表等。
二.实验硬件说明
1.STC实验板的概况
单片机是一种集成电路芯片(single-chip microcomputer),集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。它采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
-
STC实验板的组成结构
在工训中心完成了实验板的焊接工作,使用加热焊台,焊头,锡条,将各个器件焊接到学习板上。学习板由一根USB数据线与计算机连接,可以向实验板供电,也可以下载编程代码进行仿真与调试。实验板包含的器件:8位3.6寸LED数码显示、8个LED灯、3个普通按键、1个五键导航按键、1个无源蜂鸣器、1个温度测量(热敏电阻)、1个光照测量(光敏电阻)、1个步进电机驱动接口(需外接5线四相式步进电机)、一个倒置(或振动检测)传感器、DS1302实时时钟、AT24C02非易失、EEPROM存储器、1个红外发送器、1个红外接收器、1个MEMS三轴加速度传感器(ADXL345)、FM收音机(数字调台、立体声、数字调音量):外接耳机或音箱、一个UART通信口(USB转UART)、一个485接口、2个通用扩展IO接口。
此外学习板的外接接口可以接入外接模块,用于超声波测距,电子尺,电子秤,外接电机等。
3. STC实验板相关电路的原理图
(1)芯片引脚电路图
TC系列芯片有5组8位输入口,分别为P0到P5,其中P5口仅P5.0~P5.5用于输入输出。STC芯片的所有I/O口都可以配置为四种工作模式之一:准双向口/弱上拉、推挽/强上拉、输入/高阻和开漏模式。STC15系列单片机上电复位后为准双向口/弱上拉工作模式。
每个I/O口的工作模式由2个控制寄存器中的相应位控制(PnM0和PnM1,n=0、1、2、3、4、5)。也就是说P0口的具体工作模式由P0M0和P0M1控制。
(2)四种工作模式说明
① 准双向口。真正的双向口指的是具有输入和输出两种模式的端口,在不同模式之间需要进行转换;如果从输入改为输出,需要对某些控制寄存器进行设定,才能完成。而51系列单片机的I/O口线在输入和输出之间没有明确的模式区别。相应端口在同样模式下,既可以作为输入,又可以作为输出。P3口除外,因为它需要连接外设。51单片机的I/O口如果要读必须先写1才可以,因此称为“准”双向口。需要大电流高电平输出能力的场合和高速场合不能使用该模式。
② 推挽电路输入输出(push-pull)模式。推挽电路的输出端好像有两个“臂”(两组放大元件),一个“臂”的电流增加时,另一个“臂”的电流则减小,二者的状态轮流转换。对负载而言,好象是一个“臂”在推,一个“臂”在拉,共同完成电流输出任务。该电路模式的主要作用是增强驱动能力,为外部设备提供大电流,可以直接输出高电平电压。
③ 输入/高阻模式。仅用于输入。
④ 开漏电路。I/O口的开漏就是没有连接上拉电阻。
(3)无源蜂鸣器
蜂鸣器分为有源蜂鸣器和无源蜂鸣器,这里的源特指振荡源;有源蜂鸣器直接加电就可以响起,无源蜂鸣器需要我们给提供振荡源。理想的振荡源为一定频率的方波。
本实验板采用的是无源蜂鸣器,相比与有源蜂鸣器,无源蜂鸣器的优点在于价格便宜,可以通过控制其振动频率来改变发出的声音,因此,无源蜂鸣器可以用于音乐的播放。而有源蜂鸣器的优点在于使用简单,不需要编写“乐谱”。本实验板使用的无源蜂鸣器是电磁式蜂鸣器,电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,接收到的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
无源蜂鸣器只需改变Beep端口的电平,产生一个周期性的方波即可使蜂鸣器发生声音,不同的频率发出的声音不同。其中,ULN2003是一个功放,用于放大电流。电阻R14和电容C21是用来保护电路的。若人为将Beep端口的电平一直置为高电平,在没有保护电路的情况下,容易烧毁电路,但即使有保护电路也应该注意不要将Beep端口长时间置于高电平,这对器件也是有一定损害的。
相关电路原理图
(4)发光二极管与原理图
STC系列芯片有5组8位输入口,分别为P0到P5,其中P5口仅P5.0~P5.5用于输入输出。STC芯片的所有I/O口都可以配置为四种工作模式之一:准双向口/弱上拉、推挽/强上拉、输入/高阻和开漏模式。STC15系列单片机上电复位后为准双向口/弱上拉工作模式。
P0口的8位输出分别连接了8个发光二极管L0~L7的阳极, P2.3经过一个反相器连接到8个发光二极管L0~L7的阴极(共阴极)。根据二极管的单向导通性(当阳极为高(对应P0口位为1)、阴极为低时,二极管导通,否则不导通),若P2.3输出信号为低电平“0”,则二极管的阴极都为高电平,此时无论P0输出的是“1”还是“0”,二极管都不会导通,也就不会发光。因此想要发光二极管导通,必须先设置P2.3输出信号为“1”,再通过设置P0,点亮想要点亮的发光二极管。
原理图:
三.设计目标与功能
根据电子音乐得到启发,网站上没有可切换电子音乐的代码,所以设计一个可切换和播放暂停的简易播放器。
1.通过外部中断Key1来实现播放功能,同时对应的发光二极管LED0会发光;
2.通过外部中断Key2来实现暂停功能,对应的LED1发光;
3.通过外部中断Key3来实现切换功能,对应的LED2发光。
四.软件功能模块设计
1.初始化模块
系统初始化,配置I/O口。
2. 延时模块
通过一个二重循环来实现延时功能。
3. 音乐转化功能模块
识别歌曲数组中的对应位置,判断音调的高低。
4. 切歌模块
通过一个标志位sKey3来决定播放的歌曲,为1播放歌曲2,为0播放歌曲1。
5. 暂停模块
主函数中,使用sbtKey2来检测按键2是否被按下,被按下的话L1发光,同时把正在播放的歌曲暂停。
五.综合调试
1.软件测试
使用keil4软件完成工程后,调试无错误产生,debug仿真通过。
2.硬件测试
使用STC-ISP进行硬件仿真,设置端口和类型后,把生成的hex文件下载到学习板后,实现了对应的功能。Key1实现播放歌曲的功能,Key2实现暂停功能,Key3实现歌曲切换功能,同时可以看到对应的LED灯光闪烁。
六.收获与总结
通过软件和硬件地结合,我们可以更加清楚仿真的作用和效果,通过编码来实现自己需要的功能,实现自己的创新的项目。同时通过这段的学习明白了如何使用仿真软件,keil和STC-ISP的使用,可以得到自己的仿真结果。最后,阅读老师网站给出的代码可以更好地提升自己的代码理解。
更改选题后,就问题的研究,依次查看网站上给出的参考的代码的各个函数,慢慢明白如何一步步实现特定的功能,也发现了自己的不足。现阶段下,我们还没有达到那个阶段,可以独立自主地完成类似地代码和功能,这很有挑战,后续也留给我们更大的学习空间。
明确自己的创新项目目标之后,不能一蹴而就,一下达到目标,相反,可以静下心来,分部件,分功能地弄明白具体的原理,实现。逐个清楚以后,再结合在一起,这样才可以更好地达到自己的目标,实现一个总的功能。查看网站上的代码,也让我进步了许多,懂得了如何利用软件来编程下载到单片机,再落实一个具体的功能,解决人们的需求。
遇到新的问题时候,不要急着放弃,自己摸索尝试,也会得到较大的成长,如果自己不能解决,与同学交流讨论,解决问题的效率可以提升。同时,发现问题的过程中你会得到极大的成长与收获,问题不是阻碍我们进步的方式,而是促进我们成长的最好途径。