微型计算机课程设计声光报警器的设计与制作要点.docx
- 文档编号:4384059
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:24
- 大小:211.21KB
微型计算机课程设计声光报警器的设计与制作要点.docx
《微型计算机课程设计声光报警器的设计与制作要点.docx》由会员分享,可在线阅读,更多相关《微型计算机课程设计声光报警器的设计与制作要点.docx(24页珍藏版)》请在冰豆网上搜索。
微型计算机课程设计声光报警器的设计与制作要点
目录
1需求分析1
1.1开发背景1
1.2课程设计目的1
1.3课程设计要求1
1.4资源配置1
1.5开发环境介绍1
2概要设计2
2.1硬件介绍2
2.1.1可编程并行接口8255A2
2.1.2发光二极管LED4
2.1.3低电压音频功率放大器LM3864
2.1.474LS045
2.1.5LM336-2.5V基准二极管5
2.2实现原理6
2.3设计步骤6
3详细设计7
3.1绘制电路图7
3.1.1电路原理图7
3.1.2电路PCB图7
3.2搭建电路板8
3.2.1元器件清单8
3.2.2硬件连线8
3.3流程图8
3.4程序设计9
4调试与操作说明10
4.1调试要求10
4.2调试与操作10
5总结体会11
致谢12
附录13
参考文献18
1需求分析
1.1开发背景
现代生活中,报警器的应用随处可见,银行装有防盗报警器,医院、学校装有安全报警器,普通家庭中也装有报警器,启动报警器,生命和财产安全都得到了保障。
随着科技的进步,报警器的制作也越来越先进,发展也越来越快。
各式各样的报警器,也将应用于更多领域,深入到人们生活的各个方面。
1.2课程设计目的
熟悉可编程并行接口芯片8255的使用,学习开关量接口电路及其控制程序的设计方法。
1.3课程设计要求
1、产生8种彩灯(8位LED)的走马灯花样。
2、产生8种不同的声音。
3、产生声音的同时,伴有彩灯闪亮。
4、键控发声:
在键盘上定义8个数字键(0~7),每按1个数字键,喇叭发一种频率的声音,按ESC键,停止发声。
5、键控发光:
在键盘上定义8个数字键(0~7),每按1个数字键,LED的1位发光,按Q或q键,停止发光。
1.4资源配置
1.电源:
机内供电
2.电缆线:
采用单线/26芯扁平电缆
3.I/O端口地址:
8255A的4个端口地址为300H-303H,其中A口=300H,B口=301H,C口=302H,命令口=303H
4.软件资源:
C语言集成开发环境软件
1.5开发环境介绍
1、PC兼容机
2、Windows2000
3、MFID多功能微机实验平台(含PCI总线驱动板)
4、MF2KI集成开发环境,提供了丰富的汇编语言和C/C++语言程序开发工具
2概要设计
2.1硬件介绍
2.1.1可编程并行接口8255A
8255A是一个具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口的接口芯片;它为Intel系列CPU与外部设备之间提供TTL电平兼容的接口,如打印机,A/D,D/A转换器,键盘,步进电机以及需要同时两位以上信息传送的一切形式的并行接口。
一、可编程并行接口I8255A,其内部结构如图2.1所示,由以下4个部分组成:
图2.18255A内部结构图
1数据总线缓冲器
②读/写控制逻辑
③输入/输出端口A、B、C
④A组和B组控制电路
二、8255A外部引脚如图2.2所示
图2.28255A引脚图
1.和外设一边相连的:
PA7-PA0:
A组数据信号
PB7-PB0:
B组数据信号
PC7-PC0:
C组数据信号
2.和CPU一边相连的:
RESET:
复位信号,低电平有效。
当RESET信号来到时,所有内部寄存器就被清除,同时,3个数据端口被自动设为输入端口。
D7-D0:
它们是8255A的数据线,和系统数据总线相连。
:
芯片选择信号,低电平有效。
在一个系统中,一般根据全部接口芯片来分配若干较低位地址(比如A5、A4、A3)来组成各种芯片选择码,当这几位地址组成某一个代码时,译码器便往8255A的端
输出一个低电平,于是8255A被选中。
只有当
有效时,读信号
和写信号
才对8255A有效。
:
芯片读出信号低电平有效。
:
芯片写入信号低电平有效。
A1、A0:
端口选择信号。
8255A内部有3个数据端口和一个控制端口,共四个端口。
规定当A1、A0为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。
三、8255A的PC口
8255APC口的使用比较特殊,它的作用与8255A的工作方式有关,它除了作数据口以外,还作状态口、专用(固定)联络(握手)信号线、按位控制用。
在3种不同工作方式下,8255A的C口的功能有比较大的变化。
具体变化如下:
1)0方式下,C口有两种功能:
作数据口(4位并行数据口,分高/低4位);作按位控制,按位输出逻辑1或逻辑0。
2)1方式下,C口有4种功能:
作A口和B口的固定联络信号线;作A口和B口的状态口;作位控,按拉输出逻辑1和逻辑0;作数据口,未分配作固定联络信号的引脚,可作数据线用。
3)2方式下,C口有4种功能,与1方式类似。
它的PC口具有按位置位/复位功能,为按位控制提供了强有力的支持。
利用PC口的按位控制特性还可以产生正、负脉冲或方波输出,对外设进行控制。
按位置位/复位命令产生的输出信号,可作为控制开关的通/断,继电器的吸合/释放,电机的启/停等操作的选通信号。
8255A的编程命令包括工作方式命令和对PC口的按位操作命令按位置位/复位命令字
作用:
指定PC口的某一位(某一个引脚)输出高电平或低电平。
格式:
8位,其中最高位是特征位,一定要写0
2.1.2发光二极管LED
发光二极管的核心部分是由p型半导体和n型半导体组成的晶片,在p型半导体和n型半导体之间有一个过渡层,称为p-n结。
在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。
PN结加反向电压,少数载流子难以注入,故不发光。
它的制作利用注入式电致发光原理,通称LED。
2.1.3低电压音频功率放大器LM386
LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。
LM386的外形和引脚的排列如图2.3所示。
引脚2为反相输入端,3为同相输入端;引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10μF。
图2.3LM386外形和引脚排列图
LM386典型应用电路如图2.3所示:
图2.3LM386应用电路图
2.1.474LS04
非门的一种常见类型,可以用来把高电平转换为低电平,其内部结构图如图2.4,其引脚排列图如图2.5。
图2.474LS04内部结构图图2.574LS04引脚排列图
2.1.5LM336-2.5V基准二极管
LM336的管脚及电路符号如图2.4所示:
图2.5LM336管脚及电路符号图
2.2实现原理
利用8255A的PC6,产生方波,经滤波和功放后,送到喇叭,能产生不同频率的声音,其程序段为:
do{
for(j=0;j<=100;j++)
{
outportb(0x303,0x0d);//令PC6=1,发高频音
delay(k);
outportb(0x303,0x0c);//令PC6=0,关闭SPK
delay(k);
}
for(j=0;j<=10;j++)
{
outportb(0x303,0x0d);
delay(k*10);//令PC6=1,发低频音
outportb(0x303,0x0c);//令PC6=0,消音
delay(k*10);
}
}while(!
kbhit());//按任意键退出
若改变DELAY1的延时时间,即可改变喇叭发声的频率。
2.3设计步骤
1、进行声—光效果(报警器)系统电路硬件设计,画出电路原理图、PCB图或元器件布线图
2、安装或焊接元器件
3、进行声—光效果控制程序设计
4、调试、编译连接运行
3详细设计
3.1绘制电路图
3.1.1电路原理图
利用Protel绘出的电路原理图如图3.1所示
图3.1电路原理图
3.1.2电路PCB图
原理图生成PCB图如图3.2所示
图3.2电路PCB图
3.2搭建电路板
3.2.1元器件清单
发光二极管(LED)、双列直插封装八路开关(SW-DIP8)、按键开关(SW-PB)、
扬声器(SPEAKER)、完整的八单元内封装集成电阻器之一(RESPACK3)、
有极性电容器(ELECTR01)、色环电阻、非门74LS04
3.2.2硬件连线
一、根据电路图准备所需的元器件及若干导线。
二、观察面包板,弄清其内部结构、线路应注意,在连线时+和-对应的竖条为相互连通的,而在abcde对应的这一横排为相互连通的。
三、搭建电路,我们具体的步骤如下:
(1)将8个二极管放在适当位置。
(2)通过74LS04将8个二极管和8255的PA连接起来。
(3)将8个电阻和开关SW-DIP8放在实验平台适当位置。
(4)通过8个电阻将开关SW-DIP8和8255的PB连接起来。
(5)将排阻放在适当位置。
(6)将两个排阻分别与二极管和8个电阻连接起来。
(7)将LM386放在适当位置。
(8)将LM386通过电容,电阻,开关与8255的PC连接起来。
(9)通过电容将喇叭与LM386A连接起来。
注意:
74LS04在引脚连接时应注意引脚顺序为逆时针方向,依次为1、2……14,其中7应接地,14接电源正极。
二极管两个引脚中长的引脚为阳极,短的为阴极。
LM386A的8个引脚的顺序也为逆时针方向。
四、在微机平台上测试电路是否搭建正确,用万用表和示波器进行测试。
3.3流程图
整个设计的流程图如图3.3所示,实现了设计要求的五种形式。
图3.3声光报警设计流程图
3.4程序设计
见附录,其中inportb、outportb为提供端口读写函数,其头文件为dos.h
outportb即是数据写到端口,inportb即是将数据从端口读出。
4调试与操作说明
4.1调试要求
一、硬件要求:
MFID多功能微机实验平台(含PCI总线驱动板);PC兼容机;面包板或外设功能模块板。
二、软件要求:
Windows2000;MF2KI集成开发环境,程序采用C开发。
4.2调试与操作
一、由于SW-DIP8开关引脚有问题,故在程序调试过程中将用一根导线代替开关,如当电阻为1时,原本为开关1合上去时表示接电阻1接通,此时用一根导线将电阻1两脚连接起来接通,依次类推2,3,。
。
。
8。
二、运行前先接好所有硬件设施:
启动电脑,将搭建的电路板与实验平台通过数据线连接起来。
打开实验平台电源开关。
三、编译,运行。
运行时将操作界面将会有提示:
按数字间1,2,3,4,5分别进入5种功能状态进行选择,按Q或q键退出。
具体操作如下:
1.编译运行进入主界面:
2.选择选项“1”:
此时,选择8码开关,用来选择灯亮的方式,按SW开关,控制开始。
如需停止,按0键返回。
3.选择选项“2”:
此时,选择一种8码开关,用来选择声音的方式。
然后按SW开关,控制开始。
如需停止,按0键返回。
4.选择选项“3”:
此时,直接按SW键产生声音的同时,伴有灯闪亮,按0键退出。
5.选择选项“4”:
此时,可以通过按1到8键,选择一盏灯亮。
例如:
按2键:
此时,电路板上就会有一盏灯亮,按ESC键返回主界面。
6.选择选项“5”:
此时,可以通过按1到8键,选择一种频率的声音。
例如:
按4键:
此时,就会发出一种频率的声音,按Q或q键返回。
四、在程序编译运行后要同时按电路板上单刀双掷开关键才进入工作状态,如果不按下开关,即使程序运行也不会看到实验效果。
5总结体会
我所在的组做的是声光报警实验。
刚拿到课题的时候,感觉什么都不知道,对硬件的基础知识都一概不知,所以感觉难度好大。
于是决定先静下心来,先学习再来做实验。
我们组明确分工,我主要负责画图和编程工作,工作量相当大。
不过经过努力,学到知识的感觉很不错哦。
第一步——看书,首先我把刚学过的微机接口书找出来,由于我们这个实验中要用到8255芯片,所以我对着电路图研究了一下它的端口。
这样就为编程打下了基础。
第二步——画图,首先是听老师讲课,学会了PROTEL软件的基本操作方法。
然后课下我就根据需要,对着我们的电路图来画原理图。
这个过程不太复杂。
可是接下来要转化成PCB图,设计到封装引脚的问题。
对物理原器件一点都不了解的我,到处查找资料,终于把每种引脚的封状方式都找了出来。
然后一一添加进去,可是调试的时候又会出现很多的错误。
由于软件本身的原因,那些错误都看不懂,只能在图里面慢慢的找。
那天画图就画到了一点钟,不过当调试通过以后,自动生成PCB图的时候,那份喜悦真是难以形容。
第三步——编程,由于实验指导书上写着,声光报警器要达到5种要求,分别是:
1.只有灯亮,八码开关控制8种灯光闪烁的形式。
2.只有声音,八码开关控制8种发出的声音。
3.灯光闪烁的同时伴有声音
4.键控发声,每按一个数字键(1~8)则控制一种声音。
5.键控发光,每按一个数字间(1~8)则控制一种灯光的闪烁。
起初我的设计只能实现上述一种要求,即第3种,声音和灯光一起。
可是后来,为了使功能更完善,我参考了《C语言实训教程》这本书后面的图书馆实例,决定做成有界面的,可以实现5种功能的交互。
1、分析。
我采用的是printf语句打印出主菜单界面。
然后用switch语句做功能的选择。
其次,在每个功能上都采用函数调用的形式,有的功能里面还有子功能调用。
2、画流程图
3、采用C语言编写,实现上述功能。
在实现的过程中也碰到了很多问题,比如说菜单的选择与返回,以及在键控发声与发光时对按键的控制上都还是有点问题,希望以后在老师的帮助下能够将它做得更好。
致谢
整个课题的设计制作完成得比较成功,设计的任务要求都达到了,这里要感谢孙延维老师
给我们提出宝贵的意见,给予有效的指导工作,帮助我们解决了很多问题,同时设计的
顺利完成也得益于小组成员的分工合作,协同作战,从刚开始的毫无头绪到最后一项一项
任务的顺利解决,大家都发挥了各自特长,付出了劳动。
在此对大家的努力表示衷心的感谢。
附录
#include
#include
#include
#include
intf1();//函数声明
intf2();
intf3();
intf4();
intf5();
intsound(ints);
voidDisplayMenu()//打印主菜单
{
system("cls");
printf("\n\n\n");
printf("[sound-lightalarm]\n");
printf("+----------------------------------------------------------------------------+\n");
printf("|1.produce8kindsoflight|\n");
printf("|2.produce8kindsofsound|\n");
printf("|3.producelightandsound|\n");
printf("|4.pressnumber1to8,controldifferentkindsofsound(stopwhenpressESC)|\n");
printf("|5.pressnumber1to8,controldifferentkindsoflight(stopwhenpressq)|\n");
printf("+----------------------------------------------------------------------------+\n");
}
voidmain()//主函数
{
chart;
intquit=0;
do{
DisplayMenu();//显示主菜单
t=getch();
switch(t)//菜单选择
{
case'1':
f1();break;
case'2':
f2();break;
case'3':
f3();break;
case'4':
f4();break;
case'5':
f5();break;
case'0':
quit=1;break;
}
}while(!
quit);
outportb(0x300,0x00);//LED全灭
outportb(0x303,0x0c);//关闭SPK
}
intf1()//发出8种不同的灯光
{
intu1[8][8]={0x81,0x42,0x24,0x18,0x81,0x42,0x24,0x18,
0x88,0x44,0x22,0x11,0x88,0x44,0x22,0x11,
0xc0,0x66,0x38,0x18,0xc0,0x66,0x36,0x18,
0xa0,0x90,0x88,0x84,0xa0,0x90,0x88,0x84,
0xd0,0x07,0xd0,0x07,0xd0,0x07,0xd0,0x07,
0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,
0xf0,0x0f,0xf0,0x0f,0xf0,0x0f,0xf0,0x0f,
0x3c,0xc3,0x3c,0xc3,0x3c,0xc3,0x3c,0xc3};//LED按顺序发光
unsignedlonginti=0,m=0;
unsignedcharPortValue;
printf("\nPressoneofswdip-8tostart!
\n");
PortValue=inportb(0x301);//存放PB口的值
for(intk=0;k<8;k++)//判断八码开关哪一个按下
{
if((PortValue&0x01)==0x00)
{
m=k;
printf("itisthenumber%d",m+1);
break;
}
else
{
PortValue>>=1;
}
}//FOR语句结束
printf("\nPressswtostart!
\n");
printf("youwanttoquit,pleasehitAnyKey!
");
do{
}while((0x04&inportb(0x302))!
=0);//查SW按下
outportb(0x303,0x83);//初始化
outportb(0x300,0x00);//LED全灭
outportb(0x303,0x0c);//关闭SPK
do{
outportb(0x300,u1[m][i]);//按顺序送发光信号
delay(100);
i++;
if(i==8)i=0;
}while(!
kbhit());
return0;//0键返回
}//F1()结束
intf2()//发出8种不同的声音
{
unsignedlongintj=0;
unsignedcharPortValue;
printf("\nPressoneofswdip-8tostart!
\n");
PortValue=inportb(0x301);//存放PB口的值
for(intk=0;k<8;k++)//判断八码开关哪一个按下
{
if((PortValue&0x01)==0x00)
{
printf("itisthenumber%d",k+1);
break;
}
else
{
PortValue>>=1;
}
}
printf("\nPressswtostart!
\n");
printf("youwanttoquit,pleasehitAnyKey!
");
do{
}while((0x04&inportb(0x302))!
=0);//查SW按下
outportb(0x303,0x83);//初始化
outportb(0x300,0x00);//LED全灭
outportb(0x303,0x0c);//关闭SPK
do{
for(j=0;j<=100;j++)
{
outportb(0x303,0x0d);//令PC6=1,发高频音
delay(k);
outportb(0x303,0x0c);//令PC6=0,关闭SPK
delay(k);
}
for(j=0;j<=10;j++)
{
outportb(0x303,0x0d);
delay(k*10);//令PC6=1,发低频音
outportb(0x303,0x0c);//令PC6=0,消音
delay(k*10);
}
}while(!
kbhit());//按任意键退出
return0;//0键返回
}
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 课程设计 声光 报警器 设计 制作 要点