第一篇:电子综合设计报告(推荐)
电子综合设计报告
课题:数字定时器
组号: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();} 12级创新实践班结题报告 电子综合设计 班 级 姓 名 指导教师 成绩 一、本课程的目的 二、本课程的内容 熟悉和了解原理图的输入和设计,PCB版图的设计,电路仿真 三、实验内容 1,单管放大电路 一、.实验目的 1.掌握载入管脚封装和网络时常见错误的修改与排除方法 2.理解手工修改导线的必要性和操作方法 3.了解添加电源端点的方法 4.掌握添加文字标注和尺寸标注的方法 5.了解数字电路pcb板制作过程的常见错误和排除方法 6.熟悉Protel 99 SE电路图设计窗口,学会窗口设置的方法。7.学会图纸设置的方法。 8.学会网格、电气接点和光标的设置方法。9.学会系统字体、文档组织的设置方法。 二、实验内容 新建原理图文件Computer.sch,并启动原理图设计编辑器,如图1-1所示,单击computer.sch启动原理图编辑器(1) 启动Protel 99 SE,创建设计数据库Computer.ddb。 (2) 打开状态栏和命令栏;打开工具栏,将它固定在屏幕上方;打开布线工具栏,将它固定在屏幕的下方;打开绘图工具栏和常用器件工具栏,将它设置为浮动窗口。关闭PLD工具栏、信号仿真源工具栏和电源及接地工具栏,如图1-2所示。 图1-1 启动原理图设计编辑器 (3) 加载常用的原理图元件库:Miscellaneous Devices.ddb、Protel DOS Schematic.ddb、Intel Databooks.ddb和TI Databooks.ddb,如图1-3所示。使用浏览元件库窗口查看元件库中所有元件的元件名及其电路符号,熟悉原理图元件库,如图1-4所示。 图1-2 打开、关闭工具栏 图1-3 加载常用的原理图元件库 图1-4 使用浏览元件库窗口查看元件(4) 将图纸尺寸设置为标准图纸A4,图纸方向为横向,图纸标题块设置为“standard”形式,图纸颜色为默认设置,可见栅格和电器栅格设置为2,如图1-5所示。 图1-5 设置图纸格式 (5) 将网格设置为线状网格,光标设置为90度大光标,如图1-6所示。 图1-6 设置网格和光标 (6) 建立文档组织。在如图1-7所示的选项卡中详细填写所有信息。 图1-7 建立文档组织选项卡 四,实验电路图 2.电路仿真 一、实验目的: 1、掌握用protel 99 se进行电路仿真的步骤。 2、掌握常用的电路仿真方式及其应用。 3、了解电路元件的PSPICE仿真模型及创建仿真元件的方法。 二、实验设备: 装有protel 99 se 软件的PC机一台。 三、实验内容: 1编辑原理图;2放置仿真激励源(包括直流电源);3放置节点网络标号;4选择仿真方式并设置仿真参数;5执行仿真操作;6观察、分析仿真测试数据。电路仿真基础,元器件参数设置; 编辑仿真用原理图只能用.Sim.ddb中原件 一个节点只能有一个网络标号,在希望观察电压的节点外注网络标号。 在原器件未固定钱,按下tab键进入原件属性设置窗,在窗口内,单击“Attributes”标签,设置原件大小,序号;再单击”Part Field(仿真参数)标签,5 输入原件参数在设置原件参数域时,对于可选参数,一般用缺省值,除非对原件属性各项含义非常熟悉,并认为却用必要修改。 四,实验步骤 四、收获与体会 现在的电子技术发展方向于数字化,它就是把现实中的模拟物理量转化为二进制数字信号来处理及传输,其抗干扰能力非常强大。配以软件,数字电路的功能就非常的强大。现实的电子产品中到处都可以看到数字电路,如数字移动通信电话机,数字电视机,电脑„等等 这一课程学习使我将课堂上的理论知识有了进步的了解,并增强了对数字电子技术这门课程的兴趣。了解电子综合设计.同时也发现自对数电知识和电子设计软件掌握得不够。因此使我进一步熟悉了软件的使用,同时在电脑的电子设计和绘图操作上有了进一步提高。我认识到电子逻辑电路软件每一步都要细心认真,因为任何一步出错的话,都会导致后面的环节发生错误。就一定要细心确保全部无误,否则任何一个错误都会导致生成错误,做成实物后就无可挽救了。在电路的焊接中,焊盘的大小,线路的大小,以及线间的距离等参数都要设置好,因为这关系到下一步的实物焊接。在学习过程中遇到了一些问题,在增长知识的同时增强解决问题和动手的能力,锻炼我做事细心、用心、耐心的能力。这一课程学习,使我向更高的精神和知识层次迈向一大步。在以后的学习生活中,我会努力学习,培养自己独立思考的能力. 中国地质大学(武汉)江城学院 电子综合技能实习报告 2009级 电子信息工程技术专业 学 生: 学 号: 任课教师:孙利华 2011年9月16日 中国地质大学江城学院电子综合技能实习报告 一、实验内容 (用小四号宋体) 二、实验设备 (用小四号宋体) 三、实验所用器件清单 (用小四号宋体) 四、实验原理 (用小四号宋体,) 五、实验电路 (要求有完整电路图,不能用发的复印) 六、实验小结 四川大学网络教育学院 实践课程报告 实践课程电工电子综合实践 校外学习中心 专业 电气工程及其自动化层次 专升本 年纪 2010年春 学生姓名 学号 2012年5月31日 一、实践目的在电工电子设备已广泛普及的今天,对于一个现代大学生来讲,具备一些电工电子设备基本的操作和应用能力是必不可少的,这些能力除了课堂教学以外,不可替代地就是实验教学。电工电子综合实践,将电工电子基础理论与实际有机的联系起来,加深学生对所学理论课程的理解,逐步培养和提高学生的实验能力、实际操作能力、和独立分析能力和解决问题的能力,以及创新思维能力和理论联系实际的能力。 本实验的一大特点就是将传统的原理性、验证性实验与以Multisim 2001为代表EDA设计性实验紧密结合,将实物实验与虚拟仿真实验有机的、紧密的结合,充分利用了计算机的辅助设计能力,并顺应现代电子技术发展的潮流。通过虚拟仿真实验,使学生有可能在实验课前预习和课后练习,同时将许多实验室中无法进行的实验操作或实际操作难度大的实验内容通过上机进行仿真实验完成,极大的丰富了电子技术的实验内容。实物实验一方面加强学生的实际操作能力,另一方面又是对理论教学和虚拟仿真实验的印证。 二、仪器仪表目录:包括仪器设备的型号和规格 1、计算机(奔腾以上微机,40台,Windows 98/2000/xp,安装Multisim 2001) 2、FLUKE 45型双显示数字万用表20台 3、TDS 210型数字式实时示波器20台 4、AFG310 任意波形发生器20台 5、双路可跟踪直流稳压电源40台 6、各种模拟、数字电路实验板、实验箱若干 7、HG4181型数字相位计10台 8、TH2820型LCR数字电桥20台 9、电动式功率表40台 10、各种电路实验板、实验箱若干 三、实践总结 在为期一周的实践当中让我感触最深的便是实践联系理论的重要性,当遇到实际问题时,只要认真思考,用所学的知识,再一步步探索,是完全可以解决遇到的一般问题的。这次的内容包括电路的设计,印制电路板,电路的焊接。本次实习的目的主要是使我们对电子元件及电路板制作工艺有一定的感性和理性认识:对电子信息技术等方面的专业知识做进一步的理解;培养各锻炼我们的实际动手能力,使我们的理论知识与实践充分地结合,作到不仅具有专业知识,而且还具有较强的实际动手能力,能分析问题和解决问题的高素质人才,为以后的工作奠定了基础。 原来所学的都是课本上的理论只是,就是有几个实习也大都注重观察方面和动手能力,比较注重理论性,而较少注重自己的动手锻炼。而这以次的实验就是要我们跨过实际和理论之间的鸿沟。 通过实践,我觉得自己在以下几个方面有收获: (一)对电子工艺的理论有了初步的系统了解。我们了解到焊接普通元件与电路元件的技巧、印制电路板图的设计制作与工艺流程、工作原理与组成元件的作用等。这些只是不仅在课堂上有效,对以后的学习中都有很大的指导意义,在日常生活和工作中更是有着现实意义。 (二)对自己动手能力有很大的锻炼。实践出真知,纵观古今,所有发明创造无一不是在实践中得到检验的。没有足够的动手能力,就奢谈在未来的科研尤其是实验研究中有所成就。在学习中,我锻炼了自己的动手技巧,提高了自己解决问题的能力。第二篇:电子综合设计报告
第三篇:电子综合设计结题报告
第四篇:电子综合技能实习报告格式-
第五篇:四川大学 电工电子综合实践报告