西安交通大学电子系统设计专题实验.doc
- 文档编号:168550
- 上传时间:2022-10-05
- 格式:DOC
- 页数:15
- 大小:1.53MB
西安交通大学电子系统设计专题实验.doc
《西安交通大学电子系统设计专题实验.doc》由会员分享,可在线阅读,更多相关《西安交通大学电子系统设计专题实验.doc(15页珍藏版)》请在冰豆网上搜索。
电子系统设计专题实验报告
实验一、基于AVRATMega128的硬件(PCB)设计
一、实验目的和要求
目的:
(1)掌握印制电路板设计的基本原则及印制电路板的设计制作流程。
(2)掌握ProtelDXP2004SP2软件的基本功能。
(3)在ProtelDXP2004SP2软件平台,完成电路图到PCB图的设计制作过程。
要求:
(1)根据实验要求,完成原理图的设计,并在ProtelDXP2004SP2软件平台上设计制作出相应的PCB图。
(2)要求PCB图布局布线美观,抗干扰性能强。
图中所用到的元件封装必须符合实际的元件尺寸。
二、实验设备及设计开发环境
操作系统:
XP软件:
ProtelDXP2004SP2
三、实验内容
根据ATMega128的电路图设计一个单片机电路板,其中包括基本电路、复位电路、时钟振荡器(ISP、键盘、RTClock)。
MCU原理图如图
四、实验步骤
1.创建新的工程项目,并新建原理图图纸
2.设置工程参数,包括基本原理图参数设置。
3.绘制原理图:
在元件库中查找所用元件,并进行必要说明,如标签、总线、端口等。
4.放置各个模块与图纸合适位置,方便之后端口的对接及导入。
5.对原理图进行电气检查,编译查错时,直至消除后保存原理图。
6.创建新的PCB文件,并对PCB进行正确合理的参数设置(注意:
在设置尺寸时,不宜设置太小,不利于元件布局及布线),保存文件。
7.导入原理图,将元件合理放置,原则:
组合功能的元件(键盘开关)有序放置在一起,使得各个元件布线交叉尽可能的少。
8.对电路板自动布线,进行规则检查,注意检查PCB有没有缺线、缺元件的情况修改错误的地方,并注意印刷线路的宽度设置,不宜太宽。
9.重复步骤8,对电路板布局不断进行修改优化,直到PCB的规则检查没有警告、错误,电路板元件布局思路清晰,布线方式正确合理。
10.对工程文件进行保存,完成整个硬件设计流程。
五、实验结果
1.整体电路原理图如图
2.PCB图如下图(手动放置元件位置,自动布线):
六、实验总结
硬件是设计的基础,认真学习掌握硬件设计的原理有助于更好的在软件层面进行设计。
同时一个正确标准的项目设计方案,方便设计人员阅读的同时,可以更高效的实现加工。
将理论上的电路原理图真真实实的做成了可以加工生产的电路板,又一次真切的感受到了理论与实际的联系。
电路图不再仅仅是停留在纸面和考试中的分析对象,更是可以加工成为电路板,是设计实现实际功能的基础。
布线过程中,看着元件之间密密麻麻的线路,也深切体会到优秀的设计对于实际生产的重要性,对于实现的难易程度,容错能力,产品性能等多方面都有着重大的影响。
这就要求设计人员,不仅仅是能够实现产品的功能,而是尽可能将设计做到最好。
这也对我们学习提出了更高的要求,做一件事情不难,难的是做好一件事情。
实验二、按键灭灯软件程序设计
一.实验目的和任务要求
根据规则要求实现按键灭灯小游戏的基本功能,演示游戏过程并计算显示最终游戏结果。
规则:
1.LED灯随机地出现;每次闪一个灯;
2.在1s内按键可以把灯灭掉;
3.超时没按键或按错键,则灯换一个位置;
4.每灭一个灯,马上会闪亮另外一个灯;
5.计算10次灯的分数。
比如按错一次-5;超时一次-3;及时灭一次+1-3分。
使用timer来计时比较准确。
显示结果。
二.实验设备及软件开发环境
1.单片机平台:
AVRATmega128实验开发板;
2.开发环境平台:
计算机,WindowsXP操作系统,软件开发平台:
AVRStudio4.16集成开发软件;WinAVR(GCC)20080610C语言编译器;
下载编程工具:
JTAGICEmkII在线仿真器;
三.实验的电路原理
1.LED指示灯的硬件电路连接如下图所示。
2.数码管硬件电路连接如下图所示。
3.矩阵键盘硬件电路连接如图6-1所示。
按键灭灯程序由以上三大部分构成,将led灯与键盘按键编码对应起来,实现按键对led灯的控制,最后将总得分显示在数码管上。
软件设计的难度不大,主要在于led灯与键盘按键端口的对应。
四.软件设计及关键过程分析
PORTE|=(1< 使PA3输出高电平,使蜂鸣器鸣叫 延迟一段时间之后关闭蜂鸣器 软件设计流程图 游戏开始: 蜂鸣器提示 中断计时函数 SIGNAL(SIG_OUTPUT_COMPARE1A) 设置中断计时器的参数,计时时间1s 执行换灯程序 switchLed() 亮灯计数 count<10 No Yes 调用函数ledkeepping(){ PORTB=~random[number];} 是 执行亮灯程序 No 有无按键按下 中断计时1s,进入中断函数 grade=grade+2; Yes 按键不正确,不加分 grade=grade+0; No 按键是否正确 Yes 按键正确加分 grade=grade+5; 数码管显示 PORTB=code[calculate()(number)]; 其中,calculate函数计算相应位码显示得分 游戏结束 显示游戏总得分grade 五.程序运行结果 1.根据随机数组random[10]使得led灯“随机”亮起 2.十次亮灯结束,数码管显示总得分 六.实验总结 软件编程设计的难度不大,关键在于如何使得led灯与键盘按键端口对应,并实现按键正确时将对应的led灯“灭掉”。 具体实现时,采取当按键正确就切换到下一个随机led灯,而不是去改变按键对应的led灯的端口值,一定程度上使得问题简化。 程序采用将学过的知识模块联合,主要由led灯,键盘,数码管三部分构成。 实验中也发现了一些问题: 当按键时间过长时,可能使得下一个led灯亮时也判断到了该按键已经按下,错误的记录下该按键,得分记录不准确。 处理思路: 当下一个led灯亮起,且判断到有按键按下时,判断按键是否与之前按键编码相同,如果不同,则为一次独立的按键;如果相同,则为上一个led灯的延迟按键,需重新对键盘进行一次scan。 附录1软件源代码 #include #include #include #include #include"digitron.h" #defineLINE1_SCAN()PORTC=(PORTC|_BV(PC7))&~_BV(PC6) #defineMASK0xFF #include"led.h" uint8_tcode[10]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90 }; uint8_trandom[11]={0x01,0x04,0x02,0x10,0x40,0x80,0x02,0x08, 0x80,0x20,0x40 }; uint8_tled_sel=0x01; intnumber=1,grade=0,count=0; intcom=1; voidsystem_init() //系统初始化 { //关闭8个LED灯 DDRB=0xff; //设置PB端口为输出 DDRC|=_BV(PC5); //设置PC5为输出 PORTC|=_BV(PC5); //置PC5为高电平,使能led锁存 PORTB=0xff; //关闭8个led灯 PORTC&=~_BV(PC5);//PC5置低,关闭led锁存器器 PORTB=PB_MASK; DDRB=PB_MASK; PORTC|=_BV(LED_CS); DDRC|=_BV(LED_CS); //关闭数码管显示 DDRG|=_BV(PG3); //设置PG3为输出,PG3控制数码管的位选择锁存器; DDRG|=_BV(PG4); //设置PG4为输出,PG4控制数码管的段码锁存器; PORTG|=_BV(PG3); //使能数码管位选择锁存器 PORTG&=~_BV(PG4); //关闭字型码锁存器 DDRB=0xff; //设置端口PB为输出 PORTB=0x00; //送数码管位码 PORTG&=~_BV(PG3); //关闭数码管位选择锁存器 PORTG|=_BV(PG4); //使能段码锁存器 PORTB=0xff; //送段码 PORTG&=~_BV(PG4); //关闭段码锁存器 //关闭蜂鸣器 DDRE|=_BV(PE3); PORTE|=_BV(PE3); //喇叭电路断开,喇叭停止鸣响 } voidDIG_Init() { PORTB=~PB_MASK; DDRB=PB_MASK; PORTG&=0x00; DDRG|=_BV(DIG_CS1)|_BV(DIG_CS2); } voidKP_Init() { //CHIP_Init();系统端口初始化 DDRB=0xFF; DDRC=0xFF; DDRD=0xFF; DDRE=0xFF; DDRF=0xFF; DDRG=0xFF; PORTD=0x00; PORTE=0x08; PORTF=0x00; PORTC|=0x20; PORTB=0xFF; PORTC=0x02; PORTG|=0x18; PORTB=0x00; PORTG=0x00; //键盘端口初始化 PORTC&=0x3F; DDRC|=0xC0; PORTB=0xFF; DDRB=0x00; } uint8_tKP_read() { _delay_ms(10); asm("nop"); uint8_tread=PINB; returnread; } uint8_tKP_scan() { uint8_tcode=MASK; uint8_tkey=MASK; //scanthefirstline LINE1_SCAN();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安交通大学 电子 系统 设计 专题 实验