单片机实验板的设计.docx
- 文档编号:7378257
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:15
- 大小:214.92KB
单片机实验板的设计.docx
《单片机实验板的设计.docx》由会员分享,可在线阅读,更多相关《单片机实验板的设计.docx(15页珍藏版)》请在冰豆网上搜索。
单片机实验板的设计
项目2单片机实验板的设计
2.1实验板使用说明
2.1.1电源部分
(1)外电源供电,采用2.1电源座,可接入电源DC5V,经单向保护D1接入开关S1。
(2)USB供电,USB供电口输入电源也经D1单向保护,送到开关S1。
S1为板子工作电源开关,按下后接通电源,提供VCC给板子各功能电路。
电路采用两个滤波电容,给板子一个更加稳定的工作电源。
LED为电源的指示灯,通电后LED灯亮。
(3)扩展电源,这里是内部电路的5V电源引出接口,在电源开关之后可用于外扩展电路供电。
提供三组方面各种场合使用。
2.1.2复位电路
51单片机为高电平复位,AVR单片机为低电平复位,因此设计了插针J1来转换。
J1的下插针切换复位按键的连接方式VCC和GND,51单片机连接VCC,AVR单片机连接GND,J1的上插针是为了51单片机引入上电复位电路,电容和电阻组成简单的上电复位,而对于AVR单片机内部有上电复位电路且上电复位电平也不同就无需接入,因此J1的上插针有一个空脚。
2.1.3蜂鸣器
蜂鸣器分为有源,即两引脚有一个直流电源就可以长鸣,对于按键的提示音及报警蜂鸣使用有源来得方便。
当然用有源蜂鸣器作音乐发声会失真利害。
2.1.4继电器
单片机P14输出高低电平经R41连接三极管B极,控制三极管的导通与截止,从而控制继电器的的吸合与断开。
低电平时三极管导通,继电器得电吸合,电流还经过R42连接LED灯点亮(状态指示)。
高电平时三极管截止,继电器失电断开,指示灯灭,D4是续流二极管,起保护三极管的作用。
2.1.5发光二极管(LED灯)
板上8个发光二极管采用共阳接法。
要使LED灯点亮,P2口得输出低电平。
JLED是一个插针开关,拔出短接帽将VCC断开,LED电路将失去电源不工作。
如需P2口做其它扩展用途,可将此处断开而不影响P2口电流。
2.1.6数码管
电路使用一个四位共阳型数码管,四个公共阳级由三极管放大电流来驱动,三极管由P10-P13控制开与关。
例如,要十位的数码管工作,P12输出0,使三极管Q12导通,8脚得电,当P0口相应位有输出0时,点亮相应的LED灯组合各种字符数字。
2.1.7LCD液晶接口
(1)16脚LCD液晶接口:
可连接16脚兼容的液晶,比如LCD1602,图形点阵LCD12232等。
1、2两引脚是电源,1负2正,工作电压5V。
3脚是对比度控制,由可调电阻RW2调节3脚对地电阻值改变对比度。
4-6是控制引脚RS、R/W和E,接P10-P12。
7-14引脚是并行数据总线接P0口,这与数码管是共用脚。
15、16引脚是背光灯电源,15正16负,工作电压5V。
(2)20脚LCD接口:
这里多使用LCD12864,也可接其它LCD,只要20个引脚功能兼容就可以了。
1、2两引脚是电源,1负2正,工作电压5V。
3引脚是对比度控制,由可调电阻RW1调节从18脚引出与VCC的分压,适合早期驱动芯片的负压驱动,现有的液晶屏对比度调节直接集成在液晶驱动板背面,此种液晶屏对比度不受RW1控制。
4-6是控制引脚RS、R/W和E,接P10-P12。
7-14引脚是并行数据总线接P0口,这与数码管是共用脚。
15脚和16脚是功能选择,本板引入P16和P17,可根据自己的LCD来设置这两个脚位电平。
17引脚电路引入P13控制,对于LCD12864液晶屏是低电平复位功能。
19、20引脚是背光灯电源,19正20负,工作电压5V。
2.1.8独立键盘
由六个按键组成,每个按键的一端连接IO口,另一端直接连接GND。
六个按键分别接入P37-P32,只要按下按键,相应位的IO口位将被拉为低电平,程序可以判断相应位是否为0来确认按键已按下。
2.1.9中断按钮
IO口P32和P33经一个按钮接入GND,当按下按钮时,P32或P33口由高电平1转到低电平0,CPU产生中断做实验时使用。
2.1.10红外和温感模块
红外接口电路将数据引脚直接引入P33,可用遥控器做发射器,配合相应的解码例子进行接收,扩展无线遥控键盘。
温感接口可连接DS18B20温度传感芯片,温度控制及报警装置等。
2.1.11ISP下载接口
ISP是一种串行下载接口,AT89S或AVR单片机可使用此接口通过下载器烧写程序,接口比较简单,除电源外一条复位线和三条数据线直接连接P1相应接口。
2.1.12同步异步串行通讯
单片机的同步异步串行通信接口是P3.0和P3.1,接口输出的是TTL电平。
电脑上的COM口就是RS232接口了,STC单片机也是通过此COM口烧写程序的。
2.1.13扩展接口插针
P1、RST和P3组成17引脚的插针。
P0、PEA、ALE、PSEN、P2组成19引脚排针,此接口是以8051为原理设计,当使用STC或AVR单片机时PEA,ALE,PSEN也可作为其它IO口使用。
2.2 实验板设计原理图
2.2.1电源部分
2.2.2复位电路与扩展接口插针
2.2.3蜂鸣器
2.2.4继电器
2.2.5发光二极管(LED灯)
2.2.6数码管
2.2.7LCD液晶接口
2.2.8独立键盘
2.2.9红外和温感模块
2.2.10SP下载接口
2.2.11同步异步串行通讯
2.3 程序设计
效果:
自检1、LED灯轮流点阵,2、数友管轮流点亮,3、蜂鸣器自检,4、继电器自检,5、按键测试,数码管显示输入值
#include"reg51.h"
//变量定义:
codeunsignedchartable[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//表:
共阳数码管0-9
unsignedcharl_posit=0;//显示位置
unsignedcharoldkey=0xff;//保存按键接口状态
//引脚定义:
sbitSMG_q=P1^0;//定义数码管阳级控制脚(千位)
sbitSMG_b=P1^1;//定义数码管阳级控制脚(百位)
sbitSMG_s=P1^2;//定义数码管阳级控制脚(十位)
sbitSMG_g=P1^3;//定义数码管阳级控制脚(个位)
sbitSPK=P1^5;//定义蜂鸣器
sbitJDQ=P1^4;//定义蜂鸣器
sbitkey1=P3^7;//定义按键1
sbitkey2=P3^6;//定义按键2
sbitkey3=P3^5;//定义按键3
sbitkey4=P3^4;//定义按键4
sbitkey5=P3^3;//定义按键5
sbitkey6=P3^2;//定义按键6
/***************/
//参数范围0-65536
voiddelay(unsignedinttime)//参数time大小
{
unsignedinti;//决定延时时间长短
while(time--){
i=10;
while(i--);
}
}
//显示函数,参数为显示内容
voiddisplay(unsignedintda)
{
P0=0XFF;
da=da%10000;
switch(l_posit){
case0:
//选择千位数码管,关闭其它位
SMG_q=0;
SMG_b=1;
SMG_s=1;
SMG_g=1;
P0=table[da/1000];//输出显示内容
break;
case1:
//选择百位数码管,关闭其它位
SMG_q=1;
SMG_b=0;
SMG_s=1;
SMG_g=1;
P0=table[da%1000/100];
break;
case2:
//选择十位数码管,关闭其它位
SMG_q=1;
SMG_b=1;
SMG_s=0;
SMG_g=1;
P0=table[da%100/10];
break;
case3:
//选择个位数码管,关闭其它位
SMG_q=1;
SMG_b=1;
SMG_s=1;
SMG_g=0;
P0=table[da%10];
break;
}
l_posit++;//每调用一次将轮流显示一位
if(l_posit>3)
l_posit=0;
}
//扫描键盘
unsignedcharReadKey(void)
{
unsignedcharlkey=0;
if((P3&0xfc)!
=0xfc){
//检测所有按键是否有按键按下
SPK=0;//按键按下则蜂鸣器发声
delay(10);//有按键按下则延时一段时间,以消除按键拌动
if(oldkey!
=(P3&0xfc)){//检测按键未松开而且不是之前按下的按健就进入读键值,否则不作处理
oldkey=P3&0xfc;//保存当前状态,为下一次扫描做判断,请看上一行
if(key1==0)
lkey=1;//第一个键按下复值1
elseif(key2==0)
lkey=2;//第二个键按下复值2
elseif(key3==0)
lkey=3;//第三个键按下复值3
elseif(key4==0)
lkey=4;//第四个键按下复值4
elseif(key5==0)
lkey=5;//第五个键按下复值5
elseif(key6==0)
lkey=6;//第六个键按下复值6
}
}
else{
oldkey=0xfc;//如果都没有按键按下,将复值初始状态
SPK=1;//无按键按下则退出蜂鸣
}
returnlkey;
}
//主函数
voidmain(void)
{
unsignedintldata=0;//作为显示的数据
unsignedchari;
for(i=0;i<8;i++){
P2<<=1;//用移位法将1向高位移入一位
delay(50000);
}
P2=0xff;//LED灯测试完毕
P0=0;//数码管输出,准备测试每一位
SMG_g=0;//测试个位数码管
delay(50000);
SMG_g=1;//关闭数码管,测试个位完毕
SMG_s=0;//十位
delay(50000);
SMG_s=1;//
SMG_b=0;//百位
delay(50000);
SMG_b=1;//
SMG_q=0;//千位数码管
delay(50000);
SMG_q=1;//关闭数码管,测试个位完毕
SPK=0;//测试蜂鸣器
delay(50000);
SPK=1;//关闭蜂鸣器
JDQ=0;//测试继电器
delay(50000);
JDQ=1;//关闭继电器
while
(1){//循环扫描按键及显示
switch(ReadKey()){//读取键值做以下相应处理
case1:
ldata++;//1键显示内容加1
break;
case2:
ldata--;//2键显示内容减1
break;
case3:
ldata+=10;//3键显示内容加10
break;
case4:
ldata-=10;//4键显示内容减10
break;
case5:
ldata+=100;//5键显示内容清0
break;
case6:
ldata-=100;//6键显示内容最大
break;
}
display(ldata);//显示相应的数值,这里用函数的形式调用显示
delay(100);
}
}
2.4实验板调试与实现
布线图
实物图
总结
通过这两周的机课程设计,老师细致的讲解和自己课间查资料,了解直流稳压电路的基本构成部分,即变压部分、整流电路、滤波电路和稳压电路,以及5V直流稳压电源的制作。
了解了单片机开发板的制作原理和各部分功能的实现方法。
自己选择方案,计算有关数据,自己设计排版,最后制作电路板。
这样使我们能够主动自觉的去独立思考,主动学习相关的知识,能够很好的达到实习的效果,再动手的过程中也动了脑。
本次的课程设计,培养了我们综合应用课本理论解决实际问题的能力;我觉得课程设计对我们的帮助是很大的,它需要我们将学过的理论知识与实际系统地联系起来,加强我们对学过的知识的实际应用能力。
在设计的过程中还培养出了我们的团队精神,同学们共同协作,解决了许多个人无法解决的问题;在今后的学习过程中我们会更加努力和团结。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 设计