第一篇:电子综合设计与制作报告封面及任务要求
电子综合设计与制作报告
——基于QuartusⅡ的抢答器的设计与仿真
姓 名 学 号 专业班级 电子07-
基于QuartusⅡ的抢答器的设计与仿真任务书
一、设计目的
1、掌握基于QuartusⅡ的数字系统设计流程;
2、熟练掌握VHDL文本和原理图的输入方式,加深理解自顶向下的编程思想;
3、掌握抢答器电路的工作原理,结构组成和设计思路。
二、设计内容
设计一个基于FPGA器件的抢答器。该抢答器具有总控制允许、复位、优先抢答判决、倒计时抢答、参赛选手编号显示等功能;完成抢答器设计方案的分析和选择,并在QuartusⅡ软件中进行电路设计和仿真等。
三、设计要求
1、系统组成可分为FPGA内部电路和外部电路两大部分。设计的主要任务是FPGA内部各个模块的设计、仿真和验证等;
2、可同时进行6路抢答并按动开始键后,选手才能抢答,否则禁止抢答;
3、当主持人宣布开始抢答并按动开始键后,选手才能进行抢答;主持人具有总允许开始答题和复位按键;
4、判决最先抢到答题的选手,该路报警并显示选手的编号;
5、当主持人宣布开始答题时,选手必须在5S倒计时时间内完成抢答动作,答题时间为15S(倒计时显示,该时间不包括5S抢答时间);当在规定的时间内有选手答题,或在规定的时间内无人抢答,或开始答题后未在规定的时间内完成答题时,倒计时立即停止并显示抢答时间,同时禁止其他人抢答;
6、倒计时时间和选手编号采用数码管显示;
7、FPGA内部包括底层模块和顶层电路模块的设计。底层模块大致包括:判决模块、倒计时模块、报警模块、译码模块等;
8、FPGA外部端口包括按键和数码管等。按键分为主持人控制的开始和复位按键以及选手的抢答按键等。
四、设计步骤
1、设计步骤根据每个小组的具体实现过程独立完成,步骤中应对各模块的功能和实现方法具体说明;
2、设计步骤中应包括系统组成框图及简要说明。注意:严谨互相抄袭,独立完成。
五、结果分析
应对所完成的系统的功能、性能、运行情况、设计方法和方案以及存在的不足等方面客观地进行说明和分析,并给出真实而准确的评价。注意:严谨互相抄袭,独立完成。
六、设计心得
应具体、客观,真实地简述设计过程中的心得体会。
七、程序清单及仿真截图
程序和截图打印即可。将程序汇总在一起,每个设计模块应用数字和文字表明模块的顺序和名称;将截图集中打印,每个截图下方用“五号宋体”注明截图的名称。
需要打印的截图包括: 1、5S倒计时模块仿真波形; 2、15S倒计时模块仿真波形;
3、抢答判决模块仿真波形;
4、顶层原理图。
设计报告要求
1、任务书中前6项内容均采用山东轻工业学院课程设计报告专用纸书写,字迹工整,作图规范;
2、程序代码由于太长,截图难以手工绘制,因此程序和截图按要求打印即可;
3、设计步骤、结果分析、设计心得、编写程序以及截图等应独立完成,不可相互抄袭,雷同者按0分处理;
4、设计报告一律在左侧用两个订书针装订;装订的顺序,从上往下依次为:(1)封面;(2)手工抄写内容(设计任务中一到六项);(3)程序清单;(4)截图。
第二篇:电子制作报告封面
北方民族大学
电子制作报告
制作名称: 小组成员: 院、系、部: 专业: 组长:
北方民族大学教务处制
第三篇:电子综合设计与制作实践教学大纲
电子综合设计与制作实践教学大纲
一、课程名称: 电子综合设计与制作实践
The electronic synthesis designs and manufactures practices 课程负责人:何 伟
二、学时与学分:三周, 3学分
三、适用专业: 工科本科电类专业
四、课程教材:通信工程学院自编.电子综合设计课题汇编, 2003年
五、参考教材:丘关源编.电路分析基础.高等教育出版社.1999年
谢嘉奎编.低频电子线路.高等教育出版社.1999年 童诗白编.模拟电子技术基础.高等教育出版社.1999年 阎 石编.数字电子技术基础.高等教育出版社.1997年 姚燕南等编.微型计算机原理.西安电子科技大学出版社.1999年 丁元杰编.单片微机原理及运用.机械工业出版社.2002年
赵曙光等编.可编程逻辑器件的原理、开发与应用.西安电子科技大学出版社.2000年
六、开课单位:通信工程学院
七、面向开课对象:电子工程、通信工程、自动化、计算机应用、生物医电等专业本科生
八、课程的性质、目的和任务:
电子综合课程设计是一门综合性极强的电子技术应用型设计课程,是通信学院为电类专业本科生开设的一门极具特色的设计性课程。
电子综合课程设计的任务在于:训练学生综合应用各种电子技术知识,掌握一些小型电子系统的设计方法和制作过程的能力;培养学生们的科学性、系统性、及全面性的设计素质;在于开拓学生的设计思路,增强他们把理论知识与实践相结合的能力;还在于训练学生的小组组织能力和团队的分工合作精神(电子综合课程设计的教学特点是分小组进行,一般每四人一组)。
电子综合课程设计的目的是∶使学生在单元电路设计、系统电路分析、整机联调、计算机辅助设计和信息处理等方面的能力都有一个质的飞跃。培养和提高学生的科研素质、工程意识和创新精神。真正实现了理论和实际动手能力相结合的教学改革要求。通过本课程的实施,要求学生利用计算机进行理论设计(使用PSPICE、MC3和PROTEL等软件工具),并进行逻辑分析、仿真分析、交流分析、直流分析和瞬态分析及印制板图的热分析。从而设计出实用的电路,最后利用单片机开发装置、示波器、逻辑分析仪,频谱分析仪,PAL,GAL和EPGA等(现场可编程逻辑门陈列)编程器,信号源和布线板进行实际制做和调试,最后提供出样机和计算机WORD编辑的理论设计报告。
九、课程的基本要求:
1.教学的学时安排:三周内软件仿真60机时,硬件制作实验36学时。
2.电子综合课程设计对指导教师选题的要求:
基于这门课程的特点要求指导教师能开发一些综合性、实用性、趣味性强的小型课题,使大四的本科生能在四周内完成其作品,课题类型最好是具有自动控制、数字显示、声光报警、数据传输、数据转换等方面知识的模拟、数字综合系统。指导教师最好能先开发出成品,以便在教学过程中起演示和参考作用,给学生以硬件布局、制作工艺及完成功能等方面的感性认识。同时教师在课题中应设置基本要求、提高要求等针对不同程度学生的教学进度要求。
3.电子综合课程设计对学生的要求:
电子综合课程设计的特点是训练学生综合应用各种电子技术知识的能力,因此要求学生至少应有在电路分析基础、模拟电子、数字电子技术、微机原理、汇编语言、接口技术、c语言、甚至单片机技术、高频电子技术等方面的先修知识。因此最好设置在三年级或四年级上期的实践教学环节中。
《电子综合设计与实践》是实验性很强的一门电类专业必修课程。通过该课程的学习和实验,使学生掌握如何用CAD软件对电子线路进行分析和设计。在实验过程中,学生根据自己所选定的题目要求,拟定设计方案,并在计算机上完成原理分析、电路设计和模拟仿真。在仿真通过的基础上,经过选定元器件、制板、组装、焊接、调试等环节,最终完成实验样机。电子综合设计的题目,实际上都是一些小型的电子产品开发,题目都来自指导老师的教学、科研以及生产实践。通过该实验,使学生对所学知识融汇贯通,综合运用;培养他们的科研能力和工程意识,使他们的专业素质产生质的飞跃;为他们即将从事的工作打下扎实的基础。
按学分制的教学安排,电子综合实验课程设计和实作,必须按年级和专业集中在实践环节的短学期内进行(3--4周),学生四人为一设计组,在老师的指导和学生组长的带领下,独立的完成设计任务。
九、课程的主要内容:
⒈ 电子综合设计的具体任务是: ①学生分组选定课题。
②用PSPICE V5.10和PROTEL等电子线路辅助设计和分析工具软件完成课题的低频、高频和数字电路的单元设计和混合电路设计。
③用上述软件进一步完成系统的仿真分析、噪声分析、极限分析和频谱分析。(下一步采用Mentor的EDA系统软件实现TOP—DOWN设计)。
④用PROTEL印制板工具软件完成电路的布局、布线工作。
⑤在实验室用布线板实际完成各单元电路的焊接制作和系统的联调工作。
⑥用微机、单片机开发系统和逻辑电路实现系统的在线控制,最终实现样机的脱机运行。
⑦学生提交用WORD编辑的设计报告和制做的实物。⑧优秀学生提交经过工艺设计和造型设计的实物。⒉ 课程内容及实验项目: 课题一 语音处理系统
基本要求:采用MCS-51单片机开发系统仿真调试,实现EPROM分段存储语音信息,并能分段重放。
2提高要求:在达到基本要求的基础上,建立语音库,实现任意组合语音库数据信息的放音功能。
课题二 多路放大与巡回测量电路
基本要求:用多路放大器对若干个不同的被测信号进行放大,然后通过一路A/D转换器和数字显示器按照一定顺序轮流显示这若干个被测量,这样既可以减小测试仪器的功耗和体积,又能降低成本。
课题三 数字式电容分档测量
基本要求:数字式电容分档测量,被测电容的范围:100pf~99μf,系统响应时间∠1s,测量的相对误差∠5%,用数码管显示被测的电容值。
课题四 LED汉字点阵显示系统设计
基本要求:采用8031单片和LED点阵显示模块设计实现组合点阵信息显示。提高要求:具有显示内容自动更新的功能以完成对任意存储的信息内容进行完整的显示。
课题五 数控直流电源
基本要求:设计出有一定输出电压范围和功能的数控电源。课题六 程控测量放大器
基本要求:设计一可用51单片机分档控制的程控放大器并显示设定放大倍数。提高要求:在达到基本要求的基础上,实现可连续控制的程控测量放大器并最终实现自动增益。
课题七 直流小电机调速系统
基本要求:采用单片机开发系统对直流电机调速系统进行理论设计和仿真实验,并采用光电对管实时在线检测直流电机转速及使用PWM技术调节控制电机的转速。提高要求:用键盘设定初值,用数码管显示电机转速。课题八
乐曲播放电路CPLD实现
基本要求:采用ispDesignExpert EDA开发系统进行乐曲播放电路的设计、仿真调试和实现。ISP芯片采用美国Lattice半导体公司的ispLSI 1032E。要求能进行流畅的乐曲播放。
提高要求:在达到基本要求的基础上,实现播放的同时用简谱的形式同步显示播放的乐曲。
课题九
多功能数字电子表
基本要求:计时功能:显示时、分、秒,定闹功能,秒表功能,倒计时功能。提高要求:增加“语音报时”功能,增加“电子日历”功能。课题十 数字温度计
基本要求:可测量温度范围:000.0℃-102.0℃,温度分辨力:0.4℃
测量相对误差:≤2%,用数码管实时显示被测量的温度。
提高要求:实现多个温度点的实时测量,实现温度的分档测量(102℃、51℃、25.5℃)。课题十一
主从式监测报警系统
基本要求:以单片机为从机对目标状态进行监测,将结果通过标准串行口传送通信给微机主机,由微机跟踪显示目标状态; 提高要求:从机目标状态以某种现场变化为提示,主机则以某种直观警方式为提示。自选要求;从机目标状态以某种传感器方式为改变 课题十二 用单片机控制的乒乓球游戏机
基本要求:用单片机控制乒乓球的运动、左右拍击球动作并显示比分。
提高要求:除基本要求外,用单片机控制乒乓球的运动速度,另行设计表现击球动作、得分、失误的声响电路。
课题十三 简易频率计
技术指标: 频率(F)为:1Hz~100MHz,周期(T)为:1S~10E-7S,精度为:10% 课题十四 低频函数波形发生器
技术指标:波形:三角波、正弦波、方波、锯齿波,频率:0.1Hz~1KHz 控制方式:能选择不同的波形,并且能显示出当前产生的波形的频率值。输入电压:-5V~+5V 课题十五 汽车转弯灯控制系统
基本要求:应用8031单片机强大的布尔处理功能,设计实现汽车转弯信号灯的自动控制系统。
提高要求:具有亮度可调的停靠灯低亮发光功能。课题十六 计数式数字频率计的CPLD实现
基本要求:测量频率范围:100Hz~100MHz,测量相对误差:≤1% 测量信号:方波峰峰值3~5V(与TTL兼容),闸门时间:1s 显示控制:静态8位七段LED显示,且要求显示稳定,刷新时间与闸门时间相同。
提高要求:测量频率范围:100Hz~100MHz和1Hz~1MHz两档,相应的闸门时间为1s和100s,用一开关量选择控制。显示控制:动态扫描8位七段LED显示,且要求显示无闪烁,内容刷新时间与闸门时间相同。
课题十七 89C51单片机与PC机双向串行通信系统
基本要求:以89C51(MCS-51系列)单片机和PC机为核心设计并制作一个简易的双向串行通信系统;以LED数码管为显示元件显示89C51单片机发送和接收到的数据及出错信息,用压电小喇叭为电声元件发出声音报警;设计一个数据输入小建盘,能输入0~9十个数字符号及所必须的命令键;设计一个简单可靠的89C51单片机和PC机双向串行通信接口;电源用5V直流电源供电;在保证功能实现的前提下,尽可能降低功耗,提高性价比;编写出单片机与PC机之间的通信程序;写出设计报告及详细使用说明。提高要求:具有字符串收发的功能。课题十八 电子福特表的设计
基本要求: 可测电压为直流,电压幅度范围0----5伏,测量值用3位LED显示,误差小于0.01伏,测量值可以通过喇叭自动播报。
提高要求:可测电压可以是交流信号,电压幅度可以扩大到20伏。课题十九 单片机双机通信系统
基本要求:设计两个单片机最小系统,能实现有线通信,一方为发射,另一方为接收。
提高要求:两个单片机最小系统能相互通信,并能实现校验。
十、先修课程:电路分析基础.低频电子线路.模拟电子技术基础.数字电子技术基础.微型计算机原理.单片微机原理及运用.可编程逻辑器件的原理、开发与应用。
十一、考核方式:
指导教师对学生的设计结果进行实际验收(按最后完成的功能给定成绩),而优秀作品则由学院组织专家小组统一评定,十二、学时分配:
⒈ 电子综合课程设计的学时安排:
根据电子综合课程设计的课题难度和深度一般要求学生在三周内完成其全部设计和制作,教学和学习都须集中在这三周内,因此建议该设计课程安排在实验场地比较空闲的每学期的前三周或最后三周。
⒉ 电子综合课程设计的教学进度安排:(软件仿真60机时,硬件制作实验36学时)第一周:第一天:开动员大会指导教师与学生见面布置设计任务讲解课题内容给学生两到三天时间查资料并制定方案;
第三天:待学生方案确定后开始发放制作工具和元器件,并对部分学生进行仿真软件及仿真调试的培训;
第四天起:开始软、硬件的实做,这期间学生必须在指定场地进行设计,而指导教师则必须在辅导时间内前往指导(指导教师每周应指导12学时以上)。
第二周:继续软、硬件的实做,这期间学生必须在指定场地进行设计,而指导教师则必须在辅导时间内前往指导(指导教师每周应指导12学时以上)。
第三周:继续软、硬件的实做,这期间学生必须在指定场地进行设计,而指导教师则必须在辅导时间内前往指导(指导教师每周应指导12学时以上)。
第三周:最后一天:各指导教师对学生的设计结果进行验收(按最后完成的功能给定成绩),对优秀作品由所有教师统一评定,之后各指导教师应督促学生交设计报告、归还作品或元器件及工具。
大纲制定者:谢礼莹 大纲审定者:何 伟 2004年4月
第四篇:电子综合设计报告(推荐)
电子综合设计报告
课题:数字定时器
组号:06
组员:蔡德森(20092201)09通信2班
蒙文川(20092205)09通信2班 指导老师:叶文霞
2011年7月30日 西南交通大学
一、方案设计
1、方案论证与设计
设计任务:用CPLD(EMP570T100C5)设计制作一个数字定时器电路。论证:本课题主要需要对数字电路有过学习,同时对编程技术尤其是数字电路的编程要求较
高,对电子工艺基础有足够的了解,能够规范实现测试、电路安装及焊接,对基本的元器件会使用及测试。能够遵守实验室准则,满足课题老师要求。设计要求(1)基本功能
具有定时时间设置功能,定时调整步长有30秒、1分钟、10分钟和30分钟四种,最大定时时间是60分钟;具有启动、取消/停止、暂停功能,启动后以倒计时方式显示剩余时间,定时结束提示(声/光 提示)。
(2)提高部分:计时功能;提供预约功能,可设置预约时间(60分钟以内),预约时间到则执行某项操作;其他扩展功能。
2、系统原理框图(含工作原理介绍)
工作原理介绍:
功能键包括【开始停止】、【暂停继续】、【预约取消】;按键包括【定时增加】(30s,1min,10min,30min)和【清零】。其中【定时增加】(30s,1min,10min,30min)和【预置清零】由不带锁按键控制,【开始停止】、【暂停继续】和【预约取消】由带锁按键控制。
·停止时计数器默认为预置状态,此时通过四个【定时增加】可以设置初始时间。·开始后,开始减计数;连续计数过程中通过【暂停继续】暂停或继续。·计数结果输出后先通过译码对应数码管,再输入数码管显示。·分频电路由5.56MHz分出几个频率,作用分别如下:
Cp1:提供时间预置时【定时增加】(30s,1min,10min,30min)的高电平响应频率,从而可通过长按【定时增加】快速设置初始时间; Cp2:1Hz,提供计数器以每1s计数一次,从而实现倒计时功能; Cp3:提供四位数码管进行动态扫描,扫描频率为200Hz左右。
·定时结束处理包括显示及后续任务。具体为指示灯亮及另一段计数开始(扩展功能)。
3、主要电路设计与参数计算(各单元电路)CPLD内部程序电路:
①CPLD内部时钟
②分频电路
内部程序
module divide(cp,vcc3_3,cp0,cp1,cp2,cp3);input cp;output reg cp1,cp2,cp3,cp0;output vcc3_3;parameter N=5500,M=1000,K=5,P=200;integer i=0,j=0,y=0,x=0;assign vcc3_3=1;always@(posedge cp)//cp0:1000HZ begin if(i endmodule ③时间设置电路 内部程序 module set(point,cpset,nrst,t1,t2,t3,t4,t5,q3,q2,q1,q0);input nrst,t1,t2,t3,t4,t5,cpset,point;output[3:0] q3,q2,q1,q0;reg[3:0] q3,q2,q1,q0;always@(negedge cpset)begin if((~nrst)&& point)begin if(t5) {q3,q2,q1,q0}<=16'h0000;//m30 else if(t4) begin if(q3>=4'h7)q3<=4'h0;else q3<=q3+4'h3; end //m10 else if(t3) begin if(q3>=4'h9)q3<=4'h0;else q3<=q3+4'h1; end //m1 else if(t2) begin if(q2>=4'h9)q2<=4'h0;else q2<=q2+4'h1; end //s30 else if(t1) begin if(q1>=4'h3)q1<=4'h0;else q1<=q1+4'h3; end end end endmodule ④非预约下计数 内部程序 module timer_unpoint(minh,minl,sech,secl,alarm,nrst,npause,cp,q3,q2,q1,q0);input nrst,npause,cp,q3,q2,q1,q0;wire [3:0]q3,q2,q1,q0;output[3:0] secl,sech,minl,minh;reg[3:0] secl,sech,minl,minh;output alarm;assign alarm=({minh,minl,sech,secl}==16'h0000)&(nrst==1'b1);always@(posedge cp)begin if(~nrst){minh,minl,sech,secl}={q3,q2,q1,q0};else begin if(~npause){minh,minl,sech,secl}<={minh,minl,sech,secl};else if({minh,minl,sech,secl}==16'h0000){minh,minl,sech,secl}<={minh,minl,sech,secl};else if(secl==4'h0)begin secl<=4'h9;if(sech==4'h0)begin sech<=4'h5;if(minl==4'h0)begin minl<=4'h9;minh<=minh-1'b1; end else minl<=minl-1'b1;end else sech<=sech-1'b1;end else secl<=secl-1'b1;end end endmodule ⑤预约下计数 内部程序 module timer(point,minh,minl,sech,secl,alarm,alarm1,nrst,npause,cp,q7,q6,q5,q4);input point,nrst,npause,cp,q7,q6,q5,q4,alarm;wire [3:0]q7,q6,q5,q4;output[3:0] secl,sech,minl,minh;reg[3:0] secl,sech,minl,minh;output alarm1;assign alarm1=({minh,minl,sech,secl}==16'h0000)&(nrst==1'b1);always@(posedge cp)begin if(~nrst){minh,minl,sech,secl}={q7,q6,q5,q4};else if(alarm && point)begin if(~npause) {minh,minl,sech,secl}<={minh,minl,sech,secl}; else if({minh,minl,sech,secl}==16'h0000) {minh,minl,sech,secl}<={minh,minl,sech,secl}; else if(secl==4'h0)begin secl<=4'h9;if(sech==4'h0)begin sech<=4'h5;if(minl==4'h0)begin minl<=4'h9;minh<=minh-1'b1; end else minl<=minl-1'b1;end else sech<=sech-1'b1;end else secl<=secl-1'b1;end end endmodule ⑥显示电路 内部程序 module display(nrst,alarm,point,minh,minl,sech,secl,pminh,pminl,psech,psecl,cp1,dis1,dis2);input cp1,point,alarm,nrst;wire cp1;input[3:0] minh,minl,sech,secl,pminh,pminl,psech,psecl;output[7:0] dis1;output[3:0] dis2;reg[7:0] dis1;reg[3:0] dis2;integer n=0;function[7:0] dis;input[3:0] data;begin case(data)4'h0:dis=8'h02;4'h1:dis=8'hF2;4'h2:dis=8'h48;4'h3:dis=8'h60;4'h4:dis=8'hB0;4'h5:dis=8'h24;4'h6:dis=8'h04;4'h7:dis=8'h72;4'h8:dis=8'h00;4'h9:dis=8'h20;endcase end endfunction always @(posedge cp1)begin if(~point)begin if(n==3)n=0;else n=n+1;case(n)0:begin dis2<=4'h8;dis1=dis(minh);end 1:begin dis2<=4'h4;dis1=dis(minl);end 2:begin dis2<=4'h2;dis1=dis(sech);end 3:begin dis2<=4'h1;dis1=dis(secl);end endcase end else if((point&&alarm)||(point&&~nrst))begin if(n==3)n=0;else n=n+1;case(n)0:begin dis2<=4'h8;dis1=dis(pminh);end 1:begin dis2<=4'h4;dis1=dis(pminl);end 2:begin dis2<=4'h2;dis1=dis(psech);end 3:begin dis2<=4'h1;dis1=dis(psecl);end endcase end else begin if(n==3)n=0;else n=n+1;case(n)0:begin dis2<=4'h8;dis1=dis(minh);end 1:begin dis2<=4'h4;dis1=dis(minl);end 2:begin dis2<=4'h2;dis1=dis(sech);end 3:begin dis2<=4'h1;dis1=dis(secl);end endcase end end endmodule 4、总体电路图 限流电阻:Rs=1KΩ。发光二极管:绿,10mA。 数码管使用四位七段数码管(共阳)。 二、测试步骤 设计阶段: 数码管引脚位、段测试。测试4位数码管选定位、段的引脚及所需的高低电平; 各单元电路仿真及下载测试。编程结束后下载测试单元电路功能,修改,完善; 功能模块组合测试。组合单元电路成为功能模块,下载后测试,修改,完善; 总功能测试。整合各功能模块,测试功能,修改,完善。 要点: 1、注意分配引脚,分清数据的低位和高位。 2、稳扎稳打,化整为零,分部测试,及时记录。 难点:要求在对整体思路把握明确下测试,避免出现模块之间不相容、相似模块混淆的的情况。焊接阶段: 测试开关引脚。首先用万用表测出按下开关前后哪几个引脚是相连的,初步标记;其次需要将开关放置于面包板上,将发光二极管连入电路,看开关是否能点亮和熄灭二极管,并记下开关的各引脚。 测试各焊点是否短接、虚焊。用万用表调制电阻挡,测各接地点、接3.3V电源点是否相连,并且测两相邻焊点是否短接。 要点: 1.、实验所用开关的两端分别接电源和地,中间引脚接芯片IO口 2.、二极管的单向导电性以及考虑限流电阻 难点:保证发光二极管在测试过程中尽量不烧坏。 三、测试数据及实验结果 设计阶段 数码管引脚位段测试结果: 供高电平不大于3.3v 整合后的模块测试结果 取消预约时 ①停止且暂停,测试【定时增加】四键有效。结果:可置数; ②开始且继续,数码管显示倒计时,时间到指示灯亮。结果:可正常计时(倒); ③开始且继续,之后暂停,再继续。结果:计时中可暂停(恢复); ④停止且继续。结果:计时可停止。开启预约时 重复①-④步。结果:③步中不可暂停,预约功能实现,且预约时不可暂停。焊接阶段 限流电阻Rs>5/0.01x1000Ω=500Ω,选1k; 开关引脚测试:略。EPM570引脚图: 四、结论 1、本方案特点及存在的问题 特点:可通过长按【定时增加】键快速设置时间;实现了提高部分中的预约功能(分段定时)。缺陷:【定时增加】键可能会出现不灵敏的状况;冒号有时显示不完全。 2、功能扩展方案 I、预约(已实现):通过分段定时实现,及一段计数结束后开始另一段计数。 方案: 一个计数器工作结束后提示另一个计数器开始工作。用【预约/取消预约】来控制是否选择此功能,同时控制内部电路的工作。 设计问题解决: 显示电路囊括预约开始前和开始后的计数,需要多个控制其控制其输出。II、计时功能(未实现):由零开始加计时,停止后显示经过时间; 方案: 通过一个加法计数器实现计时功能(因与基本功能有所重复,未设计); 设计过程中可能遇到的问题: 需要通过另设按键选择定时或计时功能;基本功能键的共享实现。III、计时结束显示流水灯(未实现) 方案: 通过在显示模块,由计数器通知是否结束计时,若是,在数码管显示流水灯; 设计过程中可能遇到的问题: 流水灯的频率控制;需要另外编译和测试流水灯译码电路。 五、【数字定时器】使用说明 基本功能键 【开始停止】 开始(按下):由设置的时间开始倒计时; 停止(弹起):停止计时,回到开始前设置的时间;可设置新初始时间 【暂停继续】 暂停(弹起):暂停计时;预约功能下二段计时暂停无效; 继续(按下):继续计时; 扩展功能键 【预约取消】 预约(按下):开启预约功能,同时可设置第二段计时; 取消(弹起):关闭预约功能,同时可设置第一段计时初始时间; 按键【定时增加】加30秒钟:初始时间加30秒。超过60秒不进位,十秒位置零; 【定时增加】加1分钟:初始时间加1分钟。超过10分不进位,一分位置零; 【定时增加】加10分钟:初始时间加10分。超过100分不进位,十分位置零; 【定时增加】加30分钟:初始时间加30分。超过100分不进位,十分位置零; 以上四键可通过长按实现连续加时; 【清零】在停止状态下可将预置的时间清零;开始状态下无效。 六、实物图(电路) 电子综合设计 红外传输设计 指导老师 : 红外传输设计总结报告 一.系统功能描述 1.1实现的基本功能 原设计主要研究并设计一个基于单片机的红外传输系统,并实现对八路开关的控制。控制系统主要是由51和52系列单片机、红外发射电路、红外接收电路、等部分组成,单片机编码发射遥控信号经红外接收处理传送给单片机,单片机根据不同的信息码控制八路LED发光二极管各个状态,并完成相应的状态指示 修改后设计有电脑软件设置发送字符,红外发送接收后显示在LCD屏幕上。 1.2系统的工作原理 红外通信是利用 950nm近红外波段的红外线作为传递信息的媒体, 即通信信道。发送端采用脉时调制(PPM)方式, 将二进制数字信号调制成某一频率的脉冲序列, 并驱动红外发射管以光脉冲的形式发送出去, 接收端将收到的光脉冲转换成电信号, 再经过放大、滤波处理后送给解调电路进行解调, 还原为二进制数字信号后输出。换句话说, 红外通信的实质就是对二进制数字信号进行调制和解调, 以便利用红外进行传输。 1.3系统组成 原设计系统硬件由以下几部分组成:键盘采用矩阵键盘,4×4矩阵键盘中P1.0-P1.3为采集数据入口,P1.4-P1.7采集数据出口,红外数据发射电路,红外接收电路,继电器电路。 软件部分包括AT89S52单片机,STC89C52单片机 修改后设计硬件包括发射电路,接收电路,LCD 二.实际各部分电路的电路图和设计方案 2.1硬件电路 2.1.1 AT89S52单片机介绍 原设计采用了AT89C2051,它是由ATMEL公司推出的一种小型单片机。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,其程序的电可擦写特性,使得开发与试验比较容易。但此芯片需要独特的下载方法,不便使用,故本设计换为AT89S52。 AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.1.2 STC89C52RC单片机介绍 STC89C52RC系列单片机是有超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟机器周期和6时钟机器周期可任意选择,最新的D版本内部集成MAX810专用复位电路。 2.1.3 时钟电路及RC复位电路 STC89C52RC芯片内部有一高增益反相放大器,用于构成振荡器.反相放大器的输入端为XTAL1,输出端为XTAL2。在XTAL1、XTAL2(第19、18引脚)两端跨接一个石英晶体振荡器,和两个电容就构成了稳定自激谐振电路。晶振频率为11.0592MHz。C12,C13是两个瓷片电容,与晶振Y2构成了自激谐振电路。其电容的作用主要是对频率进行微调,一般取30-45PF左右。使用该电路可产生稳定的11.0592MHZ频率,受外界的环境的干扰影响非常小。其接法如图3-2所示: 图2-2 晶振电路 图2-3复位电路图 2.2 单片机红外发射器的电路设计 原设计 2.2.1 矩阵键盘电路(1)4×4矩阵键盘的工作原理: 矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。行线接P1.4-P1.7,列线接P1.0-P1.3,如图2-4所示。 图2-4 矩阵键盘电路图 (2)按键功能说明: 设备1-3是用电器件的选择按键,按下时则相应的用电器件被选中,如果长按下超过5秒钟,则会关断对应的用电器件;S1-12是用电器件的功能选择按键;OFF是LED指示灯和所有用电器件的总关断按键,OFF按键按下时会使LED指示灭二达到节能的目的,如果长按超过5秒钟,则会关掉所有的用电器件。修改后设计采用电脑发送字符。 2.2.2 红外发射电路 (1)红外线遥控制系统的原理: 将指令脉冲编码信号调制在载波振荡器产生的载波上(也称脉码调制),然后用这脉码调制信号去驱动红外发光二极管,以发出经过调制的红外光波。 (2)红外编码原理: 通常,红外遥控器将遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去。二进制脉冲码的形式有多种,其中最为常用的是PWM码(脉冲宽度调制码)和PPM码(脉冲位置调制码)。本课题是以PPM码(脉冲位置调制码及遥控编码中的NEC码)对红外数据的发送进行论证。如图2-5示 图2-5 指令脉冲图 编码脉冲信号由引导码、系统码、系统反码、功能码、功能反码等信号组成。引导码也叫起始码,由宽度为9ms的高电平和宽度为4.5ms的低电平组成,用来标志遥控编码脉冲信号的开始。如图2-6所示 图2-6 信号引导码图 脉冲位置表示的“0”和“1”组成的32位二进制码前16位控制指令,控制不同的红外遥控设备。而不同的红外家用电器又有不同的脉冲调控方式,后16位分别是8位的功能码和8位的功能反码。串行数据码时序图如2-7所示 图2-7 串行数据码时序图 将要发送的指令脉冲编码信号调制在38KHz的载波上,可以增加信号的抗干扰能力,提高信号传输效率。 (3)红外数据发射电路的设计: 在红外数据发射过程中,由于发送信号时的最大平均电流需几十mA,所以需要三极管放大后去驱动红外光发射二极管。软件编程将数据从P30将数据输出。T0定时产生38KHz载波信号,与门采用了74LS08。红外数据射发射电路图如2-8所示。 图2-8 红外数据发射电路 2.3 单片机红外接收器的电路设计 2.3.1 红外接收电路 LT0038是用于红外遥控接收的小型一体化接收头,集成红外线的接收、放大、解调,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输,中心频率38.0kHz。红外接收电路连接图如图2-9所示。 图2-9红外接收电路图 原设计采用八路LED显示 2.3.2八路LED开关电路 八路开关电路的实现是本次设计的重点,通过八路开关的功能演示来体现本次多功能红外遥控器的设计思想,其电路图2-10所示。 图2-10 八路LED开关电路 修改后采用LCD屏幕显示发射的字符电路如图2-11 图2-11 接收及显示电路 三.实际各部分电路的调试过程 遇到的问题及解决方案 原设计首先对矩阵键盘进行了测试,发现出现了短路,及按键损坏,下载程序后测量晶振正常起振频率为11.0592正弦波,按下按键测量发射脚P30为38K正常,P37脚发射波形持续时间不对,对程序中的时间进行调整,仍得不到正确波形,检查后发现线性关系错误,修改后得到了正确的波形,紧接着测量与门输出正确为38K和发射波形相乘结果。 接收电路经测量复位电路并联电容出现了短路,修改后得到了正确的结果。 四.测试结果 原设计实物图 修改后设计实物图 原设计虽未在硬件上实现但得到了正确的仿真结果如下 五.成功经验和失败原因:收获和不足 初次设计发送采用了AT89C51,此单片机是精简的AT89C51,但程序下载较困难,需要特殊下载电路,因此耽误了设计的进度。修改后设计发送采用较常用的AT89S系列,晶振为24M,采用电脑做为发射信号源消除了键盘发射的复杂性,但在显示上采用了LCD12864液晶屏使设计更加有意义。在这次设计中因为中途更换了题目了解了很多种芯片包括AT89C2051 AT89S52 STC89C52以及矩阵键盘、红外发射管、红外一体化接收头、LCD等的构造原理及使用方法。此次设计起初因为芯片选择出现问题,程序无法下载,之后因为元器件放置不当而损坏以及程序错误得不到理想波形,经过查询资料请教老师并对电路进行各级排查,在各测试点检测波形得到了正确的发射码字。 通过本次设计对单片机有了更深的了解,锻炼了编程能力以及硬件检错能力,加强了我们动手、思考和解决问题的能力,出现差错的随机应变能力,和与人合作的能力,今后的制作应该会更加更轻松。在整个设计过程中,我们通过这个方案包括设计了一套电路原理和PCB连接图,和芯片上的选择。由于粗心出现了很多基础性错误,也因此耗费了很多时间。做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。在制作PCB时,发现细心耐心,恒心一定要有才能做好事情,首先是线的布局上既要美观又要实用和走线简单,兼顾到方方面面去考虑是很需要的,否则只是一纸空话。其次我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。设计的过程可以说是困难重重,过程中发现了自己很多的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固遇到的很多专业知识问题,最后在老师的专业指导下,终于迎刃而解。对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! 1、《单片机原理及接口技术》[M],高等教育出版社 2、《C语言控制与应用》[M],清华大学出版社 3、《高频电子线路》[M],高等教育出版社 4、《实用声光及无线电遥控电路300例》[M],中国电力出版社出版 5、《单片机典型模块设计实例导航》[M],人民邮电出版社 附录 键盘及发送程序 #include static bit OP;//红外发射管的亮灭 static unsigned int count;//延时计数器 static volatile unsigned int endcount;//终止延时计数 char iraddr1;//十六位地址的第一个字 节 char iraddr2;//十六位地址的第二个字节 typedef unsigned char uchar; unsigned char datau,flagu=0; uchar kbscan(void); void SendIRdata(char p_irdata);void delay();void delays(unsigned char c);uchar kbscan(void){ uchar sccode,recode;P1=0x0f;//置所有行为低电平,列扫描,列线输入 if((P1&0xf0)!=0xf0)//判断是否有有键按下,有往下执行 { delay();//延时去抖动(10ms)if((P1&0xf0)!=0xf0)//再次判断列中是否是干扰信号,不是则向下执行 { sccode=0xFE;//逐行扫描初值(即先扫描第1行)while((sccode&0x10)!=0)//行扫描完成时停止while程序 { P1=sccode;//输出行扫描码 if((P1&0xf0)!=0xf0)//本行有键按下 { recode=(P1&0xf0)|0x0f;//列 return(sccode&recode);//返回行和列 } else //所扫描的行没有键按下,则扫描下一行 { //sccode=(~sccode);//sccode=(sccode<<1);//sccode=(~sccode);//sccode=(~((~sccode)<<1));//行扫描码左移一位 sccode=(sccode<<1)|0x01;} } } } else { return 0;//无键按下,返回0 } } void main(void){ volatile unsigned char key;volatile unsigned char mod;count = 0;OP = 0;P3_7 = 0;P3_0 = 1;P3_1 = 1;P3_3 = 1;EA = 1;//允许CPU中断 TMOD = 0x21;//设定时器0和1为16位模式1 ET0 = 1;//定时器0中断允许 TH0 = 0xFF;TL0 = 0xE8;//设定时值0为38K 也就是每隔26us中断一次 TR0 = 1;//开始计数 SCON=0X50;TH1 = 230;TL1 = 230;TR1=1;IE|=0X90; iraddr1=0xff;iraddr2=0xff; init_lcd();qingping(); do{ key=kbscan();delays(2); if(key==0xed){ mod=1;} else if(key==0xdd){ mod=0;} if(mod==0){ if(flagu){ SendIRdata(datau); flagu=0;} write_com(0x80);write_data(0x43); } else { switch(key){ case 0xed: SendIRdata(0x00);//0 break;case 0xDD: SendIRdata(0x01);//1 break;case 0xBD: SendIRdata(0x02);//2 P3_1=~P3_1; break;case 0x7D: SendIRdata(0x03);//3 break;case 0xEB: SendIRdata(0x04);//4 break;case 0xDB: SendIRdata(0x05);//5 break;case 0xBB: SendIRdata(0x06);//6 break;case 0xE7: P3_0=1; break;case 0xD7: P3_1=1; break;case 0xB7: P3_2=1; break;default: break;} } }while(1);} //定时器0中断处理 void timeint(void)interrupt 1 { TH0=0xFF;TL0=241;//设定时值为38K 也就是每隔26us中断一次 count++;P3_3=~P3_3;} void serial()interrupt 4 using 3 { if(RI){ RI=0;datau=SBUF;flagu=1;} } void SendIRdata(unsigned char p_irdata){ char i;volatile unsigned char irdata;//发送4.5ms的起始码 endcount=351;count=0;P3_7=1;do{}while(count for(i=0;i<8;i++){ irdata=(0X80>>i);if(p_irdata&irdata){ //先发送0.56ms的38KHZ红外波(即编码中0.56ms的低电平)endcount=123;count=0;P3_7=1;do{}while(count void delay(){ unsigned int i,j;for(i=0;i<26;i++){ for(j=0;j<20;j++){ _nop_();} } } void delays(unsigned char c){ unsigned int i;for(i=0;i #include sfr p0=0x80;sfr p3=0xb0; sbit p10=P1^0; sbit p32=P3^2;sbit p00=P0^0;sbit p01=P0^1;sbit p02=P0^2;sbit p03=P0^3;sbit p04=P0^4;sbit p05=P0^5;sbit p06=P0^6;sbit p07=P0^7; unsigned char led,dm,i,j,k; void ds_9ms(void){ unsigned char j,k;for(j=180;j>0;j--)for(k=50;k>0;k--);} void ds0_56ms(void){ unsigned char i,j;for(i=3;i>0;i--)for(j=184;j>0;j--);} void ds4_5ms(void){ unsigned char i,j;for(i=90;i>0;i--)for(j=50;j>0;j--);} void ds1_68ms(void){ unsigned char i,j;for(i=9;i>0;i--)for(j=184;j>0;j--);} void ds0_1ms(void){ unsigned char i,j;for(i=9;i>0;i--)for(j=10;j>0;j--);} void main(){ IT0=1;EX0=1;EA=1;dm=0;p0=0;p10=1;P2=0xff;while(1){ p10=~p10;ds0_1ms();} } /* void t0(void)interrupt 0 using 2// { unsigned char tt,flag;EA=0;flag=1;for(tt=0;tt<40;tt++){ if(p32==0){ flag=0;break;} ds0_1ms();} while(!p32);if(flag){ for(tt=0;tt<85;tt++){ if(p32==1){ flag=0;break;} ds0_1ms();} } while(p32);if(flag){ for(tt=0;tt<85;tt++){ if(p32==1){ flag=0;break;} ds0_1ms();} } while(!p32);if(flag){ for(tt=0;tt<85;tt++){ if(p32==1){ flag=0;break;} ds0_1ms();} } switch(led) { case 0x00:p00=0;p01=1;p02=1;p03=1;p04=1;p05=1;p06=1;p07=1;break;case 0x01:p00=1;p01=0;p02=1;p03=1;p04=1;p05=1;p06=1;p07=1;break;case 0x02:p00=1;p01=1;p02=0;p03=1;p04=1;p05=1;p06=1;p07=1;break;case 0x03:p00=1;p01=1;p02=1;p03=0;p04=1;p05=1;p06=1;p07=1;break; case 0x04:p00=1;p01=1;p02=1;p03=1;p04=0;p05=1;p06=1;p07=1;break;case 0x05:p00=1;p01=1;p02=1;p03=1;p04=1;p05=0;p06=1;p07=1;break;case 0x06:p00=1;p01=1;p02=1;p03=1;p04=1;p05=1;p06=0;p07=1;break;case 0x07:p00=1;p01=1;p02=1;p03=1;p04=1;p05=1;p06=1;p07=0;break; default:p00=1;p01=1;p02=1;p03=1;p04=1;p05=1;p06=1;p07=1; } } } LCD显示程序 #include “lcd.h” { _nop_();_nop_();_nop_();} void write_com(unsigned char com){ unsigned char i;set_sid();for(i=0;i<5;i++){ set_sclk();delaylcd();clr_sclk();delaylcd();} clr_sid();for(i=0;i<3;i++){ set_sclk();delaylcd();clr_sclk();delaylcd();} for(i=0;i<4;i++){ if(com&(128>>i))set_sid();else clr_sid();set_sclk();delaylcd();clr_sclk();delaylcd();} clr_sid();for(i=0;i<4;i++){ set_sclk();delaylcd();clr_sclk();delaylcd();} for(i=4;i<8;i++){ if(com&(128>>i))set_sid();else clr_sid();set_sclk();delaylcd();clr_sclk();delaylcd();} clr_sid();for(i=0;i<4;i++){ set_sclk();delaylcd();clr_sclk();delaylcd();} } void write_data(unsigned char datas){ unsigned char i;set_sid();for(i=0;i<5;i++){ set_sclk();delaylcd();clr_sclk();delaylcd();} clr_sid();set_sclk();delaylcd();clr_sclk();delaylcd(); set_sid();set_sclk();delaylcd();clr_sclk();delaylcd();clr_sid();set_sclk();delaylcd();clr_sclk();delaylcd(); for(i=0;i<4;i++){ if(datas&(128>>i))set_sid();else clr_sid();set_sclk();delaylcd();clr_sclk();delaylcd();} clr_sid();for(i=0;i<4;i++){ set_sclk();delaylcd();clr_sclk();delaylcd();} for(i=4;i<8;i++){ if(datas&(128>>i))set_sid();else clr_sid();set_sclk();delaylcd();clr_sclk();delaylcd();} clr_sid();for(i=0;i<4;i++){ set_sclk();delaylcd();clr_sclk();delaylcd();} } void qingping(){ unsigned char i,j;write_com(0x34);write_com(0x36);for(i=0;i<32;i++){ write_com(0x80|i);write_com(0x80);for(j=0;j<16;j++){ write_data(0x00);} } for(i=0;i<32;i++){ write_com(0x80|i);write_com(0x88);for(j=0;j<16;j++){ write_data(0x00);} } write_com(0x30);} void init_lcd(){ clr_rest();delaylcd();set_rest();set_cs();write_com(0x01);delaylcd();write_com(0x0c);write_com(0x30);write_com(0x38);write_com(0x0e);write_com(0x01);write_com(0x06);write_com(0x0c);delaylcd();}第五篇:电子综合设计报告