电子设计培训设计报告.docx
《电子设计培训设计报告.docx》由会员分享,可在线阅读,更多相关《电子设计培训设计报告.docx(35页珍藏版)》请在冰豆网上搜索。
电子设计培训设计报告
电子设计培训设计报告
学院:
启新学院
班级:
09电信实验班
学号:
Q09610137
姓名:
虞鸿鸣
指导老师:
张琪君、张国萍
日期:
2011/6/3
电子设计培训课程设计任务书
一、课程设计目的
1、加强学生理论联系实际的能力,提高学生的动手能力;
2、学会基本电子元器件的识别和检测;
3、学会应用EDA软件Proteus进行电路的设计和仿真;
4、基本掌握单片机的基本原理,并能将其应用于系统的设计。
5、通过实训,提高学生的学习兴趣,激发自主学习能力,培养创新意识。
二、设计任务与要求
先焊制一个单片机最小系统,并以制作的单片机最小系统为核心,设计并制作一个应用系统。
要求以两个学生为一组,每组学员可以根据自身的兴趣爱好自选题或从下提供的几个选题中任选一个设计任务。
1、多功能密码锁
用单片机控制密码锁,当输入密码正确的条件下,输出开锁电平,表示电控锁的指示灯亮,当输入密码错误时,发出错误警告声音,即蜂鸣器报警,同时电控锁指示灯灭。
当连续输入三次错误密码时,密码锁报警灯和蜂鸣器同时报警。
另外,该密码锁还可以实现对密码的修改。
在锁开状态下,可输入新密码。
2、智能交通灯
东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。
要求用单片机控制交通灯,实现以下功能:
(1)A道和B道上均有车辆要求通过时,A、B道轮流放行。
A道放行5分钟(调试时改为5秒钟),B道放行4分钟(调试时改为4秒钟)。
(2)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。
(3)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟,有紧急车时紧急灯亮。
(4)绿灯转换为红灯时黄灯亮1秒钟。
3、电子秒表
用单片机实现电子秒表,要求具有以下功能:
(1)基本时、分、秒、100ms计时;
(2)单击启动计时;
(3)单击锁定计时;
(4)具有时、分、秒显示切换按键,启动计时键、清除计时键;
(5)可以同时显示4位数据;
4、数字温度计
用单片机实现数字式温度计,要求具有以下功能:
(1)采用DS18B20作为温度传感器进行温度检测;
(2)对采集温度进行显示(显示温度分辨率0.1℃);
(3)采集温度数值应采用数字滤波措施,保证显示数据稳定;
(4)显示数据,无数据位必须消隐。
三、设计步骤
1、用Proteus绘制单片机最小系统电路图,并进行简单应用;
2、焊接单片机最小系统,并进行调试;
3、在最小系统的基础上,根据所选题使用Proteus绘制应用系统;
4、使用keil编写程序;
5、使用Proteus的联调和仿真功能,对程序进行调试;
6、根据设计制作应用的扩展电路部分,并进行简单的通路测试;
7、扩展电路与最小系统连接,进行系统的整体调试;
8、撰写课程设计报告。
四、设计报告要求
课程设计报告需包含以下内容:
1、设计题目;
2、设计内容及要求;
3、设计原理,说明系统方案并画出系统框图;
4、给出完整的硬件电路图,并说明电路的工作原理及主要芯片的性能;
5、给出软件流程框图,在附录内给出程序清单并加必要的注释;
6、说明调试结果;
7、总结所设计电路的特点和方案的优缺点;
8、收获、体会;
9、列出参考文献。
书写课程设计报告时要求结构合理、层次分明,在分析时注意语言的流畅。
五、成绩考核
课程设计成绩按优、良、中、及格、不及格评定,最终考核成绩由三部分组成:
1.现场验收:
50%
主要考察设计方案、程序质量、演示效果、创新程度、答辩情况等。
2.平时成绩:
30%
主要考察出勤和学习态度等。
3.报告:
20%;
目录
1.设计原理5
1.1.键盘接口介绍5
1.2.1602LCD液晶显示器原理6
1.3.单片机小系统基本组成6
1.4.硬件电路图9
1.5.相关运行原理和性能说明10
1.6.程序设计流程图11
2.实际操作11
2.1.仿真和烧写芯片异同11
2.2.不同芯片仿真、烧写的区别12
2.3.仿真和实际电路区别12
3.调试过程12
3.1.调试结果12
3.2.调试出现的问题13
4.电路特点及方案优缺点13
5.收获与体会13
6.参考文献14
7.附录14
1.设计原理
电子密码锁内部的单片机是核心处理设备,它负责获取由键盘输入的密码,将输入的密码和预设定的密码进行比较,如果相同则产生相应的输出;如果输入的密码与预设值不同,则提示重新输入,并且记录用户输入错误密码的次数,若输入的错误次数超过预设的限制次数,则采用相应的保护措施,防止他人反复试探密码。
此外,还应具有修改相应密码的功能,以提高密码锁的安全系数。
图-0设计流程图
在产品的设计过程中,实现人机交互越来越重要,所以键盘与显示器是必不可少的配置,接下来介绍一下键盘接口电路。
1.1.键盘接口介绍
本案例采用矩阵式键盘。
矩阵式键盘适用于按键较多的场合,按键位于行列的交叉点上,行列线分别接到按键的两端,列线接到+5V,无按键动作时,列线处于高电平状态,有按键按下时,列线电平将由于此列线相连的行线电平决定。
如果行线为低电平,则列线为低电平,若行线为高电平,则列线为高电平。
一个4×4行列结构可以构成16个按键的键盘。
本例中的4×4的矩阵式键盘如图-1所示。
图-14×4的矩阵式键盘示意图
下面介绍4×4的矩阵式键盘的识别过程。
①假定这16个按键各代表十六进制的0~F,按键被按下时,与此线相连的列电平将由与线相连的行电平决定。
列电平在无按键按下的时候处于高电平,让所有的行线处于低电平,当有按键按下时,按键所在的列线就会被拉成低电平。
②为了进一步判断到底哪一行的按键被按下,可以在某一时候只让一条行线处于低电平,其余所有行线处于高电平。
③当第一行为低电平,其余各行为高电平,假定第一行与第一列交叉点的按键被按下,第一列为低电平,其余各列为高电平。
这样就可以确定是第一行和第一列交叉点处的按键被按下。
④要识别一个按键,最少从单片机的I/0口低4位输出一次数据,据从I/0口高4位读回一次数据,这称为一次扫描。
当按下第二行的按键时,需要两遍扫描;第三行需要三遍扫描;第四行需要四次扫描。
1.2.1602LCD液晶显示器原理
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下:
第1脚:
VSS为地电源。
第2脚:
VDD接+5V正电源。
图-2LCD引脚连接方式
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读出信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
在设计中将第3脚VL与一个滑动变阻器相连,通过改变滑动变阻器相应阻值来实现对LCD的对比度调节。
此外,还将第15脚接+5V正电源,第16脚接地电源。
相应的引脚连接方式如图-2
1.3.单片机小系统基本组成
在本例中,单片机小系统主要由AT89S52芯片、晶振电路、复位电路、ISP下载线接口电路、供电电路等组成。
(1)AT89S52芯片
图-3AT89S52
AT89S52为低功耗高性能CMOS8位单片机,其器件以ATMEL公司的高密度、非易失性存储技术为前提而制造,兼容标准MCS-51指令系统及80C51引脚结构,片上Flash允许程序存储器在系统进行编程,同时也适于常规编程器。
单芯片上,拥有8位CPU及在系统可编程FLASH。
AT89S52的特点:
a)与MCS-51单片机产品兼容;
b)8K字节在系统可编程Flash存储器;
c)1000次擦写周期;
d)全静态操作:
0Hz-33MHz;
e)三级加密程序存储器;
f)32个可编程I/O口线;
g)三个16位定时器/计数器;
h)六个中断源;
i)全双工UART串行通道;
j)低功耗空闲和掉电模式;
k)掉电后中断可唤醒;
l)看门狗定时器;
m)双数据指针;
n)掉电标识符 。
AT89S52引脚分布情况如图-3所示。
(2)供电电路
AT89S52单片机的工作电压范围:
4.0V—5.5V,所以通常给单片机外接5V直流电源。
连接方式为VCC(40脚):
接电源+5V端VSS(20脚):
接电源地端
供电电路如图-4所示
(3)晶振电路
单片机工作的时间基准,决定单片机工作速度。
时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。
晶振电路如图-5示
(4)复位电路
图-4供电电路
图-5晶振电路
复位电路用以确定单片机工作的起始状态,完成单片机的启动过程。
其原理图如图-6所示
(5)
图-6复位电路
串口通讯口
图-8MAX232
图-7串口通讯口
串口通讯口如图-7所示,在这里重点介绍MAX232芯。
MAX232芯片是美信公司专门为电脑的RS-232标准
串口设计的单电源电平转换芯片,使用+5v单电源供电,如图-8所示。
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚GND、16脚VCC(+5v)。
其主要特点为:
a)符合所有的RS-232C技术标准;
b)只需要单一+5V电源供电;
c)片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-;
d)功耗低,典型供电电流5mA;
e)内部集成2个RS-232C驱动器;
f)内部集成两个RS-232C接收器;
g)高集成度,片外最低只需4个电容即可工作。
1.4.
图-9小系统整体图
图-10整体电路图
硬件电路图
整体电路图如图-10所示
1.5.相关运行原理和性能说明
(一)复位电路的运行原理
复位电路由电容串联电阻构成,由图并结合“电容两端电压不能突变”的性质可以知道,当系统接通电源,RST脚将会出现高电平,并且这个高电平持续的时间由电路的RC值来决定。
典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。
在电路图中,电容的大小是10uF,电阻的大小是10k。
所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V)所需要的时间是0.1S。
也就是说在电脑启动的0.1S内,电容两端的电压时在0~3.5V增加。
这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。
所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。
在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。
所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。
在单片机启动0.1S后,电容C两端的电压持续充电为5V,这时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。
当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。
随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。
根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平,单片机系统自动复位。
总之,复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。
此外,按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。
(二)单片机系统的性能说明
单片机最小系统复位电路的极性电容C的大小直接影响单片机的复位时间,一般采用10~30uF,单片机最小系统容值越大,其需要的复位时间越短。
单片机最小系统晶振也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振。
单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大,其处理速度越快。
单片机最小系统起振电容一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好。
P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
1.6.
程序设计流程图
图-11软件设计流程图
2.实际操作
2.1.仿真和烧写芯片异同
烧写器是用来将特定格式的程序文件(比如*.hex*.bin等格式)烧进单片机的内部EEPROM,使其上电后能运行烧入的程序。
其在每次修改程序需验证时都要烧一次芯片,再上电运行。
此外,它不支持多种调试方式。
而仿真器是通过硬件和相应的软件对单片机进行仿真,可以直接接在用户板上运行程序,还可以进行程序调试(单步、断点等),它不需要每次修改程序都要烧写芯片,更没有来回拆、装芯片的麻烦。
2.2.不同芯片仿真、烧写的区别
AT89S51、AT89S52具备ISP下载功能,可以使用USBASP程序下载线或者并口下载;STC89C51、STC89C52使用串口线+MAX232烧写程序;AT89C51、AT89C52可以在最小系统板上使用,但需要另外用编程器烧写程序。
由于不同芯片的引脚分布不同,仿真时要分情况进行,根据引脚对应端口进行连接。
2.3.仿真和实际电路区别
仿真过程中芯片与实际的芯片在引脚分布上出现了许多不同,虽然对应的端口是一样的,但是在分布上是不同的,所以在连接实际电路的时候要看清楚端口,再进行连接。
此外,由于仿真图中20引脚默认为接地电源,40引脚接+5V电源,所以仿真图中并未有这两个引脚出现。
但在实际情况中并不是这样,因此需要将这两个芯片引脚分别接相应位置。
3.调试过程
3.1.调试结果
接通电源,LCD液晶屏显示(如图-12)“'PASSWORD:
ASET”
BOPEN
若选择A,则进入重置密码状态。
LED黄灯闪烁提示输入,输入初始密码“123456”,LCD显示(如图-13)“INPUTPASSWROD:
”。
如果输入错误的密码,则无法解锁,LED提示(如图-15)“PASSWORDERROR!
”,蜂鸣器警报,LED灯灭,重新回到输入密码界面,LCD显示“'INPUTPASSWROD:
”,如果连续输入三次错误密码,则无法输入,密码锁自锁。
如果输入正确密码,则进入修改密码阶段。
LED提示“SETPASSWORD:
”,输入新密码后,提示“INPUTAGAIN!
”和“'INPUTPASSWROD:
”。
假如操作均正确则输出提示(如图-14)“'PASSWORDOK!
!
!
”。
若选择B,则进入开锁状态,LCD显示“INPUTPASSWROD:
”。
如果输入错误的密码,则无法解锁,LED提示“PASSWORDERROR!
”,蜂鸣器警报,LED灯灭,重新回到输入密码界面,LCD显示“'INPUTPASSWROD:
”,如果连续输入三次错误密码,则无法输入,密码锁自锁。
如果输入正确密码,则提示“'PASSWORDOK!
!
!
”。
如果发现输入密码错误,可以通过C键(即清除键)清除。
图-15
图-14
图-13
图-12
复原键F用于开锁成功后重新上锁用。
3.2.调试出现的问题
由于刚接触单片机,对于单片机芯片引脚的接线布局和连接都不是很熟悉,这就导致在测试小系统性能的时候,出现了比较多的问题。
由于仿真图中的40引脚并未出现,所以导致我们在第一次测试中,将连接39脚的线接到了40脚,致使系统无法正常工作。
经改正后,小系统正常运作。
在烧代码的环节上面,由于所用环境为Windows7,驱动安装环节出现了一点问题,USB下载线的驱动安装不正确,经过一些技术上的处理,电脑系统能正常运行,烧制代码也完成了。
但是在测试自己设计的系统时,由于LCD第3脚VL直接接地,导致LCD对比度最强。
再经过一番讨论后,我们采用串联一个5.1K的电阻,再与+5V电压相连,但结果却是无字符显示。
为此,我们再进行讨论,决定用一滑动变阻器来实现分压功能,结果取得了良好的效果。
通过对滑动变阻器的调节来实现对VL的电压调节,以达到调节LCD液晶屏对比度的要求。
4.电路特点及方案优缺点
本电路基本上符合了任务书对于密码锁的要求,电路简单清楚,可操作性强。
此外,模式多样,可供选择的余地比较大,体现了设计的严密性、科学性。
但次方案并不是完美,同样存在着很多的不足。
由于机械触点的弹性振动,按键在按下时不会马上稳定地接通,而在弹起时也不能马上完全断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰。
按键抖动会造成按一次按键产生的开关状态被CPU误读几次,为了使CPU能正确地按读取按键的状态,必须在按键闭合或断开时,消除产生的前沿抖动或者后延抖动,消除抖动的方法有硬件方法和软件方法两种。
硬件方是设计一个滤波延时电路或单稳态电路等硬件电路来避开按键的抖动时间。
软件方法则是编写一段大于100ms的延时程序。
除此之外,电路设计中,按键与芯片间没有上拉电阻,这就给系统的带来了很多不确定因素。
5.收获与体会
像这样一次电子设计给我们带来的收获是显而易见的。
不光光在程序设计与编程上面,还是对硬件电路的认识,特别是对于51单片机。
它让我们对于单片机处理环节也有了进一步的认识,不仅考验了我们的自学能力,更让我们巩固了以往所学的知识,特别是对于模电、电路、C程序设计等课程。
在理论联系实际的过程中,我们更好地掌握了基础性知识,熟练了焊接、检测等试验基本技能,更好地发挥了团队协作优势,更好地提高了自学与钻研能力。
虽然,在设计和检测过程中出现了不少问题,但都得到了解决,这让我们很欣慰,同时也让我们更加清晰地认识到学习的必要性和自己不足与欠缺。
不管怎样,这是一次比较成功的设计,我们会在它的基础上,更加努力学习,争取取得更优异的成绩。
6.参考文献
[1]常喜茂,孔英会,付小宝.C51基础与应用实例[J].电子工业出版社.2009.1
[2]李学海.经典80C51单片机轻松入门与上手[J].清华大学出版社.2009.2
7.附录
源代码及注释
enbitp3.0;
rwbitp3.1;
rsbitp3.2;
displayequp0;
speakerbitp1.0;
ledbitp1.2;
openbitp1.1;
returnbitbit20h.1;
ORG0000h;
LJMPstart;
ORG000bh;
LJMPintermit_t0;
ORG001bh;
LJMPintermit_t1;
ORG0030h;
start:
MOVsp,#60h;
lcallsys_initialization;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序
main0:
lcallstrat_display;
main:
MOV52h,#0;52h判断输入错误次数储存地址
setbled;
setbtr0;
lcallkey;
cjnea,#'A',next1;
LJMPset_password;
next1:
cjnea,#'B',next2;
LJMPinput_password;
next2:
ajmpmain;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;系统初始化
sys_initialization:
clrled;
clropen;
clrspeaker;
MOV34h,#'1';
MOV35h,#'2';
MOV36h,#'3';
MOV37h,#'4';
MOV38h,#'5';
MOV39h,#'6';
;存放初始密码
MOVr7,#12;
MOVr0,#40h;
loop:
MOV@r0,#10h;
incr0;
djnzr7,loop;
;密码键值存放区清零完毕
lcalldelay0_1s;
MOVp0,#03h;
callwrite_instruction;液晶软复位
MOVp0,#01h;
callwrite_instruction;
MOVp0,#3fh;
callwrite_instruction;
MOVp0,#0fh;
callwrite_instruction;
MOVp0,#06h;
callwrite_instruction;
;液晶初始化完毕
MOVr4,#10;
MOVtmod,#11h;
MOVth0,#3ch;
MOVtl0,#0b0h;
setbea;
setbet0;
;定时器T0,0.5S定时中断初始化完毕
ret;
;系统初始化完毕
;;;;;;;;;;;;;;;;;;;;;;中断服务程序
intermit_t0:
pushacc;
pushpsw;
MOVth0,#3ch;
MOVtl0,#0b0h;
djnzr4,return;
cplled;
MOVr4,#10;
return:
poppsw;
popacc;
reti;
intermit_t1:
pushacc;
pushpsw;
MOVth1,#9eh;
MOVtl1,#58h;
djnzr4,return_t1;
cplled;
cplsp