ARM7基础实验(附原理图)

ARM7基础实验(附原理图)
ARM7基础实验(附原理图)

11.ADC数模转换——ARM的Proteus实验

LED闪烁——ARM的Proteus实验

实验原理

ARM(LPC21XX)的一个I/O口接LED,通过给它送0和1来设置LED的亮和灭。Proteus仿真电路图

步骤

KEIL

1.创建新工程

2.选择ARM型号(KEIL会自动生成启动代码startup.s)

3.添加源文件,编写程序

4.设置项目选项(是否输出hex、lst文件,设置linker script)

Proteus

1.绘制电路图

2.载入程序

3.仿真

C语言源程序

/******************************************************************

************/

/*

*/

/* led.c: 用ARM点亮一个led并闪烁,有点浪费…… */

/*

*/

/******************************************************************

************/

#include

/******************************************************************

*************

**函数名: delay()

**描述: 软件延时

*******************************************************************

*************/

void delay (void) {

unsigned volatile long i,j;

for(i=0;i<60000;i++)

for(j=0;j<5;j++)

;

}

int main(void) {

PINSEL0 = 0; /*设置引脚为GPIO */

IO0DIR = 0x000001; /*将P0.0设置为输出 */

IO0SET = 0x000001; /*将P0.0置1,也就是让led灭 */

while (1) {

IO0CLR = 0x000001;

delay();

IO0SET = 0x000001;

delay();

}

}

开关控制LED——ARM的Proteus

实验

实验原理

ARM的P0.1口接按钮,再通过P0.0控制LED的亮、灭。本实验的电路图以及实验均在上一个实验基础之上修改。其中电路图只多了一个开关。

Proteus仿真电路图

实验步骤略(与上一实验相同)

C语言源程序

/******************************************************************

************/

/*

*/

/* led.c: 用ARM实现开关控制led并亮灭,还是有点浪费…… */

/*

*/

/******************************************************************

************/

#include

#define P0_1 0x02; /*P0.1*/ /******************************************************************

*************

**函数名: delay()

**描述: 软件延时

*******************************************************************

*************/

void delay (void) {

unsigned volatile long i;

for(i=0;i<10000;i++)

;

}

int main(void) {

int p01State;

PINSEL0 = 0; /*设置引脚为GPIO */

IO0DIR = 0x000001; /*将P0.0设置为输出 */

IO0SET = 0x000001; /*将P0.0置1,也就是让led灭 */

while (1) {

p01State = IO0PIN&P0_1; /*读取开关状态*/

if(p01State == 0){

IO0CLR = 0x000001;

delay();

}

else{

IO0SET = 0x000001;

delay();

}

}

}

LCD——ARM的Proteus实验

实验原理

ARM的P0.0口到P0.10口接LCD,P0.11接LED。每过一段时间LED状态改变,LCD显

示LED的状态。

Proteus仿真电路图

C语言源程序

#include

#define rs (1<<8)

#define rw (1<<9)

#define en (1<<10)

#define busy (1<<7) //P0.7

typedef unsigned char uint8;

uint8 ledDown[]={"The LED is down!"};

uint8 ledUp[]={"The LED is up!"};

void waitLCD() /*等待LCD*/ {

IO0DIR=0xf00;

while(1)

{

IO0CLR=rs;

IO0SET=rw;

IO0SET=en;

if(!(IO0PIN & busy))break;

IO0CLR = en;

}

IO0DIR=0xfff;

}

void lcdOp(uint8 dat)/*送LCD控制码*/

{

waitLCD();

IO0CLR=rs;

IO0CLR=rw;

IO0CLR=0xff;

IO0SET=dat;

IO0SET=en;

IO0CLR=en;

}

void lcdData(uint8 dat)/*送LCD显示数据*/

{

waitLCD();

IO0SET=rs;

IO0CLR=rw;

IO0CLR=0xff;

IO0SET=dat;

IO0SET=en;

IO0CLR=en;

}

void lcdInit(void)/*初始化LCD,DataSheet里有建议的初始化代码*/ {

/* LCD配置为两行,5*7字体 */

lcdOp(0x38);

lcdOp(0x38);

lcdOp(0x06);

lcdOp(0x0E);

lcdOp(0x01);

/* LCD配置为一行,5*10字体

lcdOp(0x34);

lcdOp(0x34);

lcdOp(0x06);

lcdOp(0x0E);

lcdOp(0x01);

*/

}

void lcdDisplay(uint8 addr,uint8 *p)/*LCD显示字符串*/

{

lcdOp(addr);

while(*p !='\0'){

lcdData(*(p++));

}

}

void lcdClear(void)/*LCD清屏*/

{

lcdOp(0x01);

}

void delay (void) {

unsigned volatile long i,j;

for(i=0;i<60000;i++)

for(j=0;j<10;j++)

;

}

int main(void)

{

lcdInit();/*初始化LCD显示*/

IO0DIR=0xfff;//设置为输出口

IO0CLR=0xfff;

while (1) {

IO0CLR = 0x000800;

lcdDisplay(0x80,ledUp);

delay();

lcdClear();

IO0SET = 0x000800;

lcdDisplay(0x80,ledDown);

delay();

lcdClear();

}

}

UART——ARM的Proteus实验

实验原理

ARM的P0.0口接LED,串口接Proteus的虚拟终端。每隔一段时间改变一次LED的状态,并且在串口上输出LED的当前状态。

Proteus仿真电路图

C语言源程序

#include

#include "uart.h"

#define CR 0x0D

char ledDown[]={"The LED is down!\n"};

char ledUp[]={"The LED is up!\n"};

int putchar (int ch) {/* 向串口输出一个字符 */

if (ch == '\n') {

while (!(U1LSR & 0x20));

U1THR = CR; a

}

while (!(U1LSR & 0x20));

return (U1THR = ch);

}

void delay (void) {

unsigned volatile long i,j;

for(i=0;i<60000;i++)

for(j=0;j<5;j++)

;

}

void serialPuts(char *p){/* 向串口输出字符串 */

while (*p != '\0'){

putchar(*p++);

}

}

int main (void) {

/* 开始初始化串口 */

PINSEL0 = 0x00050000;/* 设置引脚,开串口功能 */

U1LCR = 0x83;/* 8位数据,无效验,一个停止位 */

U1DLL = 97;/* VPB 15MHz的时候波特率为9600 */

U1LCR = 0x03;/* DLAB = 0 */

/* 结束初始化串口 */

IO0DIR = 0x000001;/*将P0.0设置为输出 */

while (1) {

IO0CLR = 0x000001;

serialPuts(ledUp);

delay();

IO0SET = 0x000001;

serialPuts(ledDown);

delay();

}

}

Eint1外部中断——ARM的Proteus

实验

实验原理

ARM的P0.25接一个LED,引脚设置时连接EINT1功能,按钮触发中断。中断服务程序另LED快速闪烁。

Proteus仿真电路图

C语言源程序

#include

#define LEDCON 0x02000000/*LED接在P0.25上*/

typedef unsigned int uint32;

void IRQ_Eint1(void) __attribute__ ((interrupt));/*声明某函数为中断服务子程序的方法*/

uint32 times = 100;/*循环次数默认为100*/

void IRQ_Eint1(void){

times = 5;

while((EXTINT&0x02)!=0){

EXTINT=0x02; //清除EINT1中断标志

}

VICVectAddr=0;

}

void delay100(void) {

unsigned volatile long i,j;

for(i=0;i<10000;i++)

for(j=0;j

;

if(times > 100){

times--;

}else if(times <100){

times++;

}

}

int main(void)

{

IO0DIR = LEDCON;

PINSEL0 = 0x20000000;/*引脚选中EINT1功能*/

PINSEL1 = 0x00000000;

/*以下为中断控制部分*/

VICIntSelect=0;/*全部中断设置为IRQ,若某位为1是FIQ*/

VICIntEnable=0x00008000;/*使能EINT1,EINT为第15位*/

VICVectCntl1=0x2F;/*0xF,15号中断*/

VICVectAddr1=(int)IRQ_Eint1;/*设置中断服务子程序*/

EXTINT=0x07;

while (1) {

IO0CLR = LEDCON;

delay100();

IO0SET = LEDCON;

delay100();

}

}

多个外部中断——ARM的Proteus实

实验原理

ARM开启两个中断源Eint1与Eint2,分别用一个按钮来控制。在没有中断的时候两个LED都缓慢闪烁,当任何一个中断被出发的时候,对应的LED会急促闪烁,逐渐回复正常。

Proteus仿真电路图

C语言源程序

#include

#define LED1 0x02000000/*LED1接在P0.25上*/

#define LED0 0x01000000/*LED0接在P0.24上*/

typedef unsigned int uint32;

void Eint1_ISR(void) __attribute__ ((interrupt));/*声明某函数为中断服务子程序的方法*/

void Eint0_ISR(void) __attribute__ ((interrupt));

uint32 times = 40;/*循环次数默认为40*/

void delay40(void) {

unsigned volatile long i,j;

for(i=0;i<10000;i++)

for(j=0;j

;

if(times > 40){

times-=2;

}else if(times <40){

times+=2;

}

}

void Eint0_ISR(void){

times = 0;

while(times!=40){

IO0CLR = LED0;

delay40();

IO0SET = LED0;

delay40();

}

while((EXTINT&0x01)!=0){

EXTINT=0x01;/*清除EINT0中断标志*/

}

VICVectAddr=0x00;

}

void Eint1_ISR(void){

times = 0;

while(times!=40){

IO0CLR = LED1;

delay40();

IO0SET = LED1;

delay40();

}

while((EXTINT&0x02)!=0){

EXTINT=0x02;/*清除EINT1中断标志*/

}

VICVectAddr=0;

}

int main(void)

{

IO0DIR = LED1|LED0;

PINSEL0 = 0x20000000;/*引脚选中EINT1功能*/

PINSEL1 = 0x00000001;/*引脚选中EINT0功能*/

/*以下为中断控制部分*/

VICIntSelect=0;/*全部中断设置为IRQ,若某位为1是FIQ*/

VICIntEnable=0x0000C000;/*使能EINT1、0,EINT1为第15位,0

为14位*/

VICVectCntl0=0x2E;/*EINT0最高优先级*/

VICVectAddr0=(int)Eint0_ISR;/*设置EINT0向量地址*/

VICVectCntl1=0x2F;/*0xF,15号中断*/

VICVectAddr1=(int)Eint1_ISR;/*设置中断服务子程序*/

EXTINT=0x07;

while (1) {/*无中断时,两灯一起缓慢闪烁*/

IO0CLR = LED1|LED0;

delay40();

IO0SET = LED1|LED0;

delay40();

}

}

中断结合串口——ARM的Proteus实

实验原理

同上多中断源实验相同,ARM开启两个中断源Eint1与Eint2,分别用一个按钮来控制。在没有中断的时候两个LED都缓慢闪烁,当任何一个中断被出发的时候,对应的LED会急促闪烁,逐渐回复正常。

此外,使用一个串口来发送当前状态,在无中断的时候发送正常状态报告,当有中断的时候,串口发送中断源。

Proteus仿真电路图

C语言源程序

文件一:main.c

#include

#include "uart0.h"

#define LED1 0x02000000/*LED1接在P0.25上*/

#define LED0 0x01000000/*LED0接在P0.24上*/

typedef unsigned int uint32;

void Eint1_ISR(void) __attribute__ ((interrupt));/*声明某函数为中断服务子程序的方法*/

void Eint0_ISR(void) __attribute__ ((interrupt));

uint32 times = 40;/*循环次数默认为40*/

char status[] = "Everytnig is fine.";

char eint0Str[] = "Interruption EINT0 activated!!!"; char eint1Str[] = "Interruption EINT1 activated!!!"; void delay40(void) {

unsigned volatile long i,j;

for(i=0;i<10000;i++)

for(j=0;j

;

if(times > 40){

times-=2;

}else if(times <40){

times+=2;

}

}

void Eint0_ISR(void){

times = 0;

while(times!=40){

IO0CLR = LED0;

delay40();

IO0SET = LED0;

delay40();

serialPuts(eint0Str);

}

while((EXTINT&0x01)!=0){

EXTINT=0x01;/*清除EINT0中断标志*/

}

VICVectAddr=0x00;

}

void Eint1_ISR(void){

times = 0;

while(times!=40){

IO0CLR = LED1;

delay40();

IO0SET = LED1;

delay40();

serialPuts(eint1Str);

}

while((EXTINT&0x02)!=0){

EXTINT=0x02;/*清除EINT1中断标志*/

}

VICVectAddr=0;

}

int main(void)

{

IO0DIR = LED1|LED0;

PINSEL0 = 0x20000005;/*引脚选中EINT1功能,开串口UART0*/

PINSEL1 = 0x00000001;/*引脚选中EINT0功能*/

/*以下为中断控制部分*/

VICIntSelect=0;/*全部中断设置为IRQ,若某位为1是FIQ*/

VICIntEnable=0x0000C000;/*使能EINT1、0,EINT1为第15位,0为14位*/

VICVectCntl0=0x2E;/*EINT0最高优先级*/

VICVectAddr0=(int)Eint0_ISR;/*设置EINT0向量地址*/

VICVectCntl1=0x2F;/*0xF,15号中断*/

VICVectAddr1=(int)Eint1_ISR;/*设置中断服务子程序*/

EXTINT=0x07;

uart0Init();

while (1) {/*无中断时,两灯一起缓慢闪烁*/

IO0CLR = LED1|LED0;

delay40();

IO0SET = LED1|LED0;

delay40();

serialPuts(status);

}

}

文件二:uart0.c

#include

#include "uart0.h"

#define CR 0x0D

int putchar (int ch) {/* 向串口输出一个字符 */

if (ch == '\n') {

while (!(U0LSR & 0x20));

U0THR = CR;

}

while (!(U0LSR & 0x20));

return (U0THR = ch);

}

void serialPuts(char *p){/* 向串口输出字符串 */

while (*p != '\0'){

putchar(*p++);

}

putchar('\n');

}

void uart0Init(void){

U0LCR = 0x83;/* 8位数据,无效验,一个停止位 */

U0DLL = 97;/* VPB 15MHz的时候波特率为9600 */

U0LCR = 0x03;/* DLAB = 0 */

}

定时器——ARM的Proteus实验

实验原理

ARM的定时器实验,定时改变LED的状态。

Proteus仿真电路图

C语言源程序

#include

#define LED 0x000001

typedef unsigned int uint32;

typedef unsigned char uint8;

void timer0_ISR (void) __attribute__ ((interrupt));

uint8 timer0Times = 0;

void timer0Init (void) {

T0MR0 = 119999;/*匹配寄存器,120000-1,12000000为1秒*/ T0MCR = 3;/*产生中断,重置TC*/

T0TCR = 1;/*使能定时计数器0*/

VICVectAddr0 = (unsigned long)timer0_ISR;

硬件电路设计过程经验分享 (1)

献给那些刚开始或即将开始设计硬件电路的人。时光飞逝,离俺最初画第一块电路已有3年。刚刚开始接触电路板的时候,与你一样,俺充满了疑惑同时又带着些兴奋。在网上许多关于硬件电路的经验、知识让人目不暇接。像信号完整性,EMI,PS设计准会把你搞晕。别急,一切要慢慢来。 1)总体思路。 设计硬件电路,大的框架和架构要搞清楚,但要做到这一点还真不容易。有些大框架也许自己的老板、老师已经想好,自己只是把思路具体实现;但也有些要自己设计框架的,那就要搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。 2)理解电路。 如果你找到了的参考设计,那么恭喜你,你可以节约很多时间了(包括前期设计和后期调试)。马上就copy?NO,还是先看懂理解了再说,一方面能提高我们的电路理解能力,而且能避免设计中的错误。 3)没有找到参考设计? 没关系。先确定大IC芯片,找datasheet,看其关键参数是否符合自己的要求,哪些才是自己需要的关键参数,以及能否看懂这些关键参数,都是硬件工程师的能力的体现,这也需要长期地慢慢地积累。这期间,要善于提问,因为自己不懂的东西,别人往往一句话就能点醒你,尤其是硬件设计。 4)硬件电路设计主要是三个部分,原理图,pcb,物料清单(BOM)表。 原理图设计就是将前面的思路转化为电路原理图。它很像我们教科书上的电路图。

pcb涉及到实际的电路板,它根据原理图转化而来的网表(网表是沟通原理图和pcb之间的桥梁),而将具体的元器件的封装放置(布局)在电路板上,然后根据飞线(也叫预拉线)连接其电信号(布线)。完成了pcb布局布线后,要用到哪些元器件应该有所归纳,所以我们将用到BOM表。 5)用什么工具? Protel,也就是altimuml容易上手,在国内也比较流行,应付一般的工作已经足够,适合初入门的设计者使用。 6)to be continued...... 其实无论用简单的protel或者复杂的cadence工具,硬件设计大环节是一样的(protel上的操作类似windwos,是post-command型的;而cadence的产品concept&allegro是pre-command型的,用惯了protel,突然转向cadence的工具,会不习惯就是这个原因)。设计大环节都要有1)原理图设计。2)pcb设计。3)制作BOM 表。现在简要谈一下设计流程(步骤): 1)原理图库建立。要将一个新元件摆放在原理图上,我们必须得建立改元件的库。库中主要定义了该新元件的管脚定义及其属性,并且以具体的图形形式来代表(我们常常看到的是一个矩形(代表其IC BODY),周围许多短线(代表IC管脚))。protel创建库及其简单,而且因为用的人多,许多元件都能找到现成的库,这一点对使用者极为方便。应搞清楚ic body,ic pins,input pin,output pin,analog pin,digital pin,power pin等区别。 2)有了充足的库之后,就可以在原理图上画图了,按照datasheet和系统设计的要

硬件-原理图布线图-设计审核表

硬件设计检查列表——Check List 产品名称开发代号 PCB P/N PCB 版本 PCBA P/N PCBA 版本 产品功能简述: 原理图设计部分(参考《电路原理图设计规范》) 1.电路图图幅选择是否合理。(单页,多页)是?否?免? 2.电路图标题栏、文件名是否规范。是?否?免? 3.元件大小、编号、封装是否有规律,是否符合要求。是?否?免? 4.元器件标注(名称,标称值,单位,型号,精度等)是否符合要求是?否?免? 5.元器件摆放和布局是否合理、清晰。是?否?免? 6.器件间连线是否正确,规范。是?否?免? 7.电气连线交叉点放置是否合理。是?否?免? 8.重要的电气节点是否明确标示。是?否?免? 9.重要网络号是否标准清晰。是?否?免? 10.是否对特殊部分添加注释。是?否?免? 11.零件选型是否符合要求(零件封装,可购买性,电压电流是否满足等)。是?否?免? 12.是否设计测试点,Jump点。是?否?免? 13.是否符合ESD保护设计要求。是?否?免? 14.是否符合EMI/EMC设计要求。是?否?免? 15.是否有过流、过压保护设计。是?否?免? 16.元器件选项是否能满足功能设计的功耗,电压,电流的要求。是?否?免? 17.时钟晶振电容是否匹配,晶振选项是否正确(有源、无源)。是?否?免? 18.I/O口开关量输入输出是否需要隔离。是?否?免? 19.上拉、下拉电阻设计是否合理。是?否?免? 20.是否进行过DRC检查。是?否?免? 21.是否存在方框图。是?否?免? 22.是否标注模块名称。是?否?免? 23.原理图层级结构是否合理、清晰。是?否?免? 24.标注部分字体、大小是否合理。是?否?免? 25.零件选型的可采购性。是?否?免? 26.零件选型的可生产性。是?否?免?Designed by:Checked by:Approved by:

单片机实验板详细步骤--原理图设计部分

单片机实验板 单片机是电子工程师的基本技能之一,单片机实验板是学习单片机的必备工具之一。通过层次原理图的设计方法,以单片机实验板设计实例介绍Protel DXP的原理图到PCB设计的整个过程。 一、一款单片机实验板简介 经典单片机实验板 单片系统包括MCU组成的最小系统、各种功能的外围电路及接口。 1、89C52单片机。 2、6位数码管(做动态扫描及静态显示实验)。 3、8位LED发光二极管(做流水灯实验)。 4、MAX232芯片RS232通讯接口(可以做为与计算机通迅的接口同时也可做为单片机下载程序的接口)。 5、USB供电系统,直接插接到电脑USB口即可提供电源,不需另接直流电源。 6、蜂鸣器(做单片机发声实验)。 7、ADC0804芯片(做模数转换实验)。 8、DAC0832芯片(做数模转换实验)

9、PDIUSBD12芯片(USB设备开发,如单片机读写U盘,自制U盘,自制MP3等,还可通过此芯片让计算机与单片机传输数据)。 10、USB转串口模块,直接由计算机USB口下载程序至单片机。 11、DS18B20温度传感器,(初步掌握单片机操作后即可亲自编写程序获知当时的温度)。 12、AT24C02外部EEPROM芯片(IIC总线元件实验) 13、字符液晶1602接口。(可显示两行字符) 14、图形液晶12864接口(可显示任意汉字及图形) 15、4*4矩阵键盘另加四个独立键盘(键盘检测试验)。 二、设计任务 采用自底向上(Bottom up)的层次原理图方法绘制单片机实验板原理图及PCB。本实验板主要有CPU部分、电源部分(Power)、串口通信(RS232)部分、数码显示(LED)部分、继电器(Relay)部分、其它(misc)各部分。 同时,通过层次原理图的绘制掌握原理图绘制的众多技巧。 单片机原理图总图 三、子图绘制 下面开始各原理子图的绘制。如【单片机实验板工程】所示,建立单片机实验板工程,建立各个原理图,并把库文件加载到工程里。

电气原理图设计方法及实例分析

电气原理图设计方法及实例分析 【摘要】本文主要对电气原理图绘制的要求、原则以及设计方法进行了说明,并通过实例对设计方法进行了分析。 【关键词】电气原理图;设计方法;实例 继电-接触器控制系统是由按钮、继电器等低压控制电器组成的控制系统,可以实现对 电力拖动系统的起动、调速等动作的控制和保护,以满足生产工艺对拖动控制的要求。继电-接触器控制系统具有电路简单、维修方便等许多优点,多年来在各种生产机械的电气控制 中获得广泛的应用。由于生产机械的种类繁多,所要求的控制系统也是千变万化、多种多样的。但无论是比较简单的,还是很复杂的控制系统,都是由一些基本环节组合而成。因此本节着重阐明组成这些控制系统的基本规律和典型电路环节。这样,再结合具体的生产工艺要求,就不难掌握控制系统的分析和设计方法。 一、绘制电气原理图的基本要求 电气控制系统是由许多电气元件按照一定要求连接而成,从而实现对某种设备的电气自动控制。为了便于对控制系统进行设计、研究分析、安装调试、使用和维修,需要将电气控制系统中各电气元件及其相互连接关系用国家规定的统一图形符号、文字符号以图的形式表示出来。这种图就是电气控制系统图,其形式主要有电气原理图和电气安装图两种。 安装图是按照电器实际位置和实际接线电路,用给定的符号画出来的,这种电路图便于安装。电气原理图是根据电气设备的工作原理绘制而成,具有结构简单、层次分明、便于研究和分析电路的工作原理等优点。绘制电气原理图应按GB4728-85、GBTl59-87等规定的标 准绘制。如果采用上述标准中未规定的图形符号时,必须加以说明。当标准中给出几种形式时,选择符号应遵循以下原则: ①应尽可能采用优选形式; ②在满足需要的前提下,应尽量采用最简单形式; ③在同一图号的图中使用同一种形式。 根据简单清晰的原则,原理图采用电气元件展开的形式绘制。它包括所有电气元件的导电部件和接线端点,但并不按照电气元件的实际位置来绘制,也不反映电气元件的大小。由于电气原理图具有结构简单、层次分明、适于研究等优点,所以无论在设计部门还是生产现场都得到广泛应用。 控制电路绘制的原则: ①原理图一般分主电路、控制电路、信号电路、照明电路及保护电路等。 ②图中所有电器触头,都按没有通电和外力作用时的开闭状态(常态)画出。 ③无论主电路还是辅助电路,各元件应按动作顺序从上到下、从左到右依次排列。 ④为了突出或区分某些电路、功能等,导线符号、连接线等可采用粗细不同的线条来表示。 ⑤原理图中各电气元件和部件在控制电路中的位置,应根据便于阅读的原则安排。同一电气元件的各个部件可以不画在一起,但必须采用同一文字符号标明。 ⑥原理图中有直接电联系的交叉导线连接点,用实心圆点表示;可拆卸或测试点用空心圆点表示;无直接电联系的交叉点则不画圆点。 ⑦对非电气控制和人工操作的电器,必须在原理图上用相应的图形符号表示其操作方式。 ⑧对于电气控制有关的机、液、气等装置,应用符号绘出简图,以表示其关系。 二、分析设计法及实例设计分析 根据生产工艺要求,利用各种典型的电路环节,直接设计控制电路。这种设计方法比较简单,但要求设计人员必须熟悉大量的控制电路,掌握多种典型电路的设计资料,同时具有丰富的设计经验,在设计过程中往往还要经过多次反复地修改、试验,才能使电路符合设计

1.层次原理图设计

层次原理图设计 一实验目的 1 掌握层次原理图的绘制方法。 2 理解层次原理图模块化的设计方法。 二实验内容 绘制洗衣机控制电路层次原理图,包括“复位晶振模块”,“CPU模块”,“显示模块”和“控制模块”。 三实验步骤 注意:在每个原理图上都设计一个模板,内容包括:标题、姓名、学号、专业年级,日期等内容。 1 新建工程项目文件 1)单击菜单File/New/PCB Project,新建工程项目文件。 2)单击菜单File/Save Project保存工程文件,并命名为“洗衣机控制电路.PrjPCB”。 2 绘制上层原理图 1)“在洗衣机控制电路.PrjPCB”工程文件中,单击菜单File/New/Schematic,新建原理图文件。 2)单击菜单File/Save As..,将新建的原理图文件保存为“洗衣机控制电路.SchDoc” 3) 单击菜单Place/Sheet Symbol或单击“Wring”工具栏中的按钮,如图1所示,依次放置复位晶振模块,CPU模块,显示模块,控制模块四个模块电路,并修改其属性,放置后如图2所示 图1 模块电路属性

图2 放置四个模块电路 4)单击菜单P1ace/Add sheet Entry或单击“Wring”工具栏的按钮,放置模块电路端口,并修改其属性,完成后效果如图3所示 图3 放置模块电路端口 5)连线。根据各方块电路电气连接关系,用导线将端口连接起来,如图4所示 图4 连线 3 创建并绘制下层原理图 1)在上层原理图中,单击菜单Design/Create Sheet From Symbol,此时鼠标变为十字形。 2)将十字光标移到“复位晶振模块”电路上,单击鼠标左键,系统自动创建下层原理图“复位晶振模块.SchDoc”及相对应的I/O端口。如图5所示。

经验分享:硬件电路怎么设计

经验分享:硬件电路怎么设 计

1)总体思路。 设计硬件电路,大的框架和架构要搞清楚,但要做到这一点还真不容易。有些大框架也许自己的老板、老师已经想好,自己只是把思路具体实现;但也有些要自己设计框架的,那就要搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。 2)理解电路。 如果你找到了的参考设计,那么恭喜你,你可以节约很多时间了(包括前期设计和后期调试)。马上就copy?NO,还是先看懂理解了再说,一方面能提高我们的电路理解能力,而且能避免设计中的错误。 3)没有找到参考设计? 没关系。先确定大IC芯片,找datasheet,看其关键参数是否符合自己的要求,哪些才是自己需要的关键参数,以及能否看懂这些关键参数,都是硬件工程师的能力的体现,这也需要长期地慢慢地积累。这期间,要善于提问,因为自己不懂的东西,别人往往一句话就能点醒你,尤其是硬件设计。 4)硬件电路设计主要是三个部分,原理图,pcb ,物料清单(BOM)表。 原理图设计就是将前面的思路转化为电路原理图。它很像我们教科书上的电路图。pcb涉及到实际的电路板,它根据原理图转化而来的网表(网表是沟通原理图和pcb之间的桥梁),而将具体的元器件的封装放置(布局)在电路板上,然后根据飞线(也叫预拉线)连接其电信

号(布线)。完成了pcb布局布线后,要用到哪些元器件应该有所归纳,所以我们将用到BOM表。 5)用什么工具? Protel,也就是altimuml容易上手,在国内也比较流行,应付一般的工作已经足够,适合初入门的设计者使用。 6)to be continued...... 其实无论用简单的protel或者复杂的cadence工具,硬件设计大环节是一样的(protel上的操作类似windwos,是post-command型的;而cadence的产品concept & allegro 是pre-command型的,用惯了protel,突然转向cadence的工具,会不习惯就是这个原因)。设计大环节都要有: 1)原理图设计。 2)pcb设计。 3)制作BOM表。 现在简要谈一下设计流程(步骤): 1)原理图库建立。 要将一个新元件摆放在原理图上,我们必须得建立改元件的库。库中主要定义了该新元件的管脚定义及其属性,并且以具体的图形形式来代表(我们常常看到的是一个矩形(代表其IC BODY),周围许多短线(代表IC管脚))。protel创建库及其简单,而且因为用的人多,许多元件都能找到现成的库,这一点对使用者极为方便。应搞清楚 ic body,ic pins,input pin,output pin, analog pin, digital

单片机原理及应用实验报告

单片机原理实验报告 专业:计算机科学与技术 学号: :

实验1 计数显示器 【实验目的】 熟悉Proteus仿真软件,掌握单片机原理图的绘图方法 【实验容】 (1)熟悉Proteus仿真软件,了解软件的结构组成与功能 (2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作 (3)学会可执行文件加载及程序仿真运行方法 (4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】 (1)观察Proteus软件的菜单、工具栏、对话框等基本结构 (2)在Proteus中绘制电路原理图,按照表A.1将元件添加到编辑环境中(3)在Proteus中加载程序,观察仿真结果,检测电路图绘制的正确性 表A.1

Switches&Relays BUT BUTTON 【实验原理图】 【实验源程序】 #include sbit P3_7=P3^7; unsigned char x1=0;x2=0 ; unsigned char count=0; unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int time) { int k,j;

for(;time<0;time--) for(k=200;k>0;k--) for(j=500;j<0;j--); } void init() { P0=buf[x1]; delay(10); P2=buf[x2]; delay(10); } void main() { init(); while(1) { x1=count/10; x2=count%10; P0=buf[x1]; delay(10);

由原理图生成PCB板设计实例步骤

由原理图生成PCB板设计实例步骤 电路设计的最终目的是为了设计出电子产品,而电子产品的物理结构是通过印刷电路板来实现的。Protel 99SE为设计者提供了一个完整的电路板设计环境,使电路设计更加方便有效。应用Protel 99SE设计印刷电路板过程如下: (1)启动印刷电路板设计服务器 执行菜单File/New命令,从框中选择PCB设计服务器(PCB Document)图标,双击该图标,建立PCB设计文档。双击文档图标,进入PCB设计服务器界面。 (2)规划电路板 根据要设计的电路确定电路板的尺寸。选取Keep Out Layer复选框,执行菜单命令Place/Keepout/Track,绘制电路板的边框。执行菜单Design/Options,在“Signal Lager”中选择Bottom Lager,把电路板定义为单面板。 (3)设置参数 参数设置是电路板设计的非常重要的步骤,执行菜单命令Design/Rules,左键单击Routing按钮,根据设计要求,在规则类(Rules Classes)中设置参数。 选择Routing Layer,对布线工作层进行设置:左键单击Properties,在“布线工作层面设置”对话框的“Pule Attributes”选项中设置Tod Layer为“Not Used”、设置Bottom Layer为“Any”。 选择Width Constraint,对地线线宽、电源线宽进行设置。 (4)装入元件封装库 执行菜单命令Design/Add/Remove Library,在“添加/删除元件库” 对话框中选取所有元件所对应的元件封装库,例如:PCB Footprint,Transistor,General IC,International Rectifiers等。 (5)装入网络表 执行菜单Design/Load Nets命令,然后在弹出的窗口中单击Browse按钮,再在弹出的窗口中选择电路原理图设计生成的网络表文件(扩展名为Net),如果没有错误,单击Execute。若出现错误提示,必须更改错误。 (6)元器件布局 Protel 99SE既可以进行自动布局也可以进行手工布局,执行菜单命令Tools/Auto Placement/Auto Placer可以自动布局。布局是布线关键性的一步,为了使布局更加合理,多数设计者都采用手工布局方式。 (7)自动布线 Protel 99SE采用世界最先进的无网格、基于形状的对角线自动布线技术。执行菜单命令Auto Routing/All,并在弹出的窗口中单击Route all按钮,程序即对印刷电路板进行自动布线。只要设置有关参数,元件布局合理,自动布线的成功率几乎是100%。

绘制层次电路原理图讲解

《电路CAD 》课程实验报告 实验名称绘制层次电路原理图实验序号实验二姓名张伟杰系专业电科班级一班学号201342203 实验日期5月5日指导教师曹艳艳组名第一组成绩 一、实验目的和要求 1 掌握层次原理图的绘制方法。 2 理解层次原理图模块化的设计方法。 二、实验设备 计算机、Altium Designer 10 三、实验过程(步骤、程序等) 1 新建工程项目文件 1)单击菜单File/New/PCB Project,新建工程项目文件。 2)单击菜单File/Save Project保存工程文件,并命名为“洗衣机控制电路.PrjPCB”。 2 绘制上层原理图 1)“在洗衣机控制电路.PrjPCB”工程文件中,单击菜单File/New/Schematic,新建原理图文件。 2)单击菜单File/Save As..,将新建的原理图文件保存为“洗衣机控制电路.SchDoc” 3) 单击菜单Place/Sheet Symbol或单击“Wring”工具栏中的按钮,如图1所示,依次放置复位晶振模块,CPU模块,显示模块,控制模块四个模块电路,并修改其属性,放置后如图2所示

图1 模块电路属性 图2 放置四个模块电路 4)单击菜单P1ace/Add sheet Entry或单击“Wring”工具栏的按钮,放置模块电路端口,并修改其属性,完成后效果如图3所示 图3 放置模块电路端口

5)连线。根据各方块电路电气连接关系,用导线将端口连接起来,如图4所示 图4 连线 3 创建并绘制下层原理图 1)在上层原理图中,单击菜单Design/Create Sheet From Symbol,此时鼠标变为十字形。 2)将十字光标移到“复位晶振模块”电路上,单击鼠标左键,系统自动创建下层原理图“复位晶振模块.SchDoc”及相对应的I/O端口。如图5所示。 图5 自动生成的I/0端口 4)绘制“复位晶振模块”电路原理图。 其用到的元件如下表1所示。绘制完成后的效果如图6所示。 表1 “复位晶振模块”电路元件列表 元件标号元件名所在元件库元件标示值元件封装R1 RES2 Miscellaneous Devices.IntLib 270ΩAXIAL0.4 R2 RES2 Miscellaneous Devices.IntLib 1k AXIAL0.4 C1 Cap Miscellaneous Devices.IntLib 33pF RAD-0.3 C2 Cap Miscellaneous Devices.IntLib 33pF RAD-0.3 C3 Cap Miscellaneous Devices.IntLib 33pF RAD-0.3 S1 SW-PB Miscellaneous Devices.IntLib SPST-2 Y1 XTAL Miscellaneous Devices.IntLib R38 VCC 电源工具栏 GND 电源工具栏

硬件电路原理图设计审核思路和方法

硬件电路原理图设计审核思路和方法 1、详细理解设计需求,从需求中整理出电路功能模块和性能指标要 求; 2、根据功能和性能需求制定总体设计方案,对CPU进行选型,CPU 选型有以下几点要求: a)性价比高; b)容易开发:体现在硬件调试工具种类多,参考设计多,软件资源丰富,成功案例多; c)可扩展性好; 3、针对已经选定的CPU芯片,选择一个与我们需求比较接近的成功 参考设计,一般CPU生产商或他们的合作方都会对每款CPU芯片做若干开发板进行验证,比如440EP就有yosemite开发板和 bamboo开发板,我们参考得是yosemite开发板,厂家最后公开给用户的参考设计图虽说不是产品级的东西,也应该是经过严格验证的,否则也会影响到他们的芯片推广应用,纵然参考设计的外围电路有可推敲的地方,CPU本身的管脚连接使用方法也绝对是值得我们信赖的,当然如果万一出现多个参考设计某些管脚连接方式不同,可以细读CPU芯片手册和勘误表,或者找厂商确认;另外在设计之前,最好我们能外借或者购买一块选定的参考板进行软件验证,如果没问题那么硬件参考设计也是可以信赖的;但要注意一点,现在很多CPU 都有若干种启动模式,我们要选一种最适合的启动模式,或者做成兼容设计;

4、根据需求对外设功能模块进行元器件选型,元器件选型应该遵守 以下原则: a)普遍性原则:所选的元器件要被广泛使用验证过的尽量少使用冷偏芯片,减少风险; b)高性价比原则:在功能、性能、使用率都相近的情况下,尽量选择价格比较好的元器件,减少成本; c)采购方便原则:尽量选择容易买到,供货周期短的元器件; d)持续发展原则:尽量选择在可预见的时间内不会停产的元器件;e)可替代原则:尽量选择pin to pin兼容种类比较多的元器件;f)向上兼容原则:尽量选择以前老产品用过的元器件; g)资源节约原则:尽量用上元器件的全部功能和管脚; 5、对选定的CPU参考设计原理图外围电路进行修改,修改时对于每 个功能模块都要找至少3个相同外围芯片的成功参考设计,如果找到的参考设计连接方法都是完全一样的,那么基本可以放心参照设计,但即使只有一个参考设计与其他的不一样,也不能简单地少数服从多数,而是要细读芯片数据手册,深入理解那些管脚含义,多方讨论,联系芯片厂技术支持,最终确定科学、正确的连接方式,如果仍有疑义,可以做兼容设计;这是整个原理图设计过程中最关键的部分,我们必须做到以下几点: a)对于每个功能模块要尽量找到更多的成功参考设计,越难的应该越多,成功参考设计是“前人”的经验和财富,我们理当借鉴吸收,站在“前人”的肩膀上,也就提高了自己的起点;

计算机组成原理与汇编实验报告

计算机组成原理与汇编 实验报告 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

计算机组成原理与汇编课程设计 实验报告 目录 一、课程设计目标 (3) 二、课程设计基本要求 (3) 三、课程设计的内容 (3) 四、课程设计的要求 (5) 五、实验详细设计 (5) 1.统计文件中各字母出现的频率 (5) 2.用递归计算50以内Fibonacci 数, 以十进制数输出 (9) 3.虚拟平台模拟机实验 (11) 六、使用说明 (19) 七、总结与心得体会 (19) 八、参考文献 (20) 九、附录 (20) 1.字符统计.asm (20) 2.斐波那契数(小于50).asm (29) 一、课程设计目标 通过课程设计使学生综合运用所学过的计算机原理与汇编知识,增强解决实际问题的能力,加深对所学知识的理解与掌握,提高软硬件开发水平,为今后打下基础。 课程设计的目的和要求: 1、使学生巩固和加强《计算机原理与汇编语言》课程的基本理论知识。

2、使学生掌握汇编语言程序设计的方法及编程技巧,正确编写程序。 3、使学生养成良好的编程习惯并掌握调试程序的基本方法。 4、使学生养成规范书写报告文档的能力,撰写课程设计总结报告。 5、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。 二、课程设计的基本要求 1、认真查阅资料,独立完成设计任务,每道题都必须上机通过。 2、编写预习报告,写好代码,上机调试。 3、独立思考,培养综合分析问题解决问题和调试程序的能力。 4、按时完成课程设计,写出课程设计报告。 三、课程设计的内容 1、给定一个英文ASCII码文件,统计文件中英文字母的频率,以十进制形式输出。 2、用递归计算50以内Fibonacci 数, 以十进制数输出. 3、虚拟平台的模型机实验,具体要求如下: 1)选择实验设备,将所需要的组件从组件列表中拖到实验设计流程栏中 2)搭建实验流程:根据原理图1和电路图(见附件),将已选择的组件进行连线。 3)输入机器指令:选择菜单中的“工具”,再选择“模型机调试”,在指令输入窗 口中输入如下指令: 00000000 00010000 00001001 00100000 00001011 00110000 00001011 01000000 00000000 00000001 本实验设计机器指令程序如下:

自下而上画OrCAD层次原理图实例

目录 自下而上画OrCAD层次原理图实例 (1) 层次原理图的优点 (1) 效果比较(先有分部分的原理图,后生成总模块图) (2) 实例逐步实现自下而上实现层次原理图 (3) 自下而上画OrCAD层次原理图实例 层次原理图的优点 在层次原理图设计中,能在总模块图中清晰的看到各模块之间的信号连接关系,能通过右键相应模块,选择“Descend Hierarchy”进入相应模块的原理图,非常方便。 而且在相应的模块原理图中,也可以通过右键图纸,选择“Ascend Hierarchy”回到模块设计原理图。

效果比较(先有分部分的原理图,后生成总模块图)先对比一下先后的效果: 总模块图如下(注:还没有连接各模块之间的信号)

实例逐步实现自下而上实现层次原理图 下面逐步说明如何实现自下而上实现层次原理图的设计。 1.首先,在各原理图中添加port,如,注意输入与输出的原理图中port的名 字一定要相同。 2.在.dsn工程文件上右键,选择“New Schematic”,输入总模块名称,这里为“All”。 3.右键刚生成的模块,选择“Make Root”,指定其处于root。

4.会看到“All”已经处于root。右键“All”,选择“New Page”,生成总模块原理图,在出现的对话框中,添加原理图名称,这里命名为“AllModule”。 5.重复步骤2,建立“BlueTooth”模块文件夹,并将原理图文件“BlueTooth”拖到该模块文件夹下。 6.打开总模块原理图文件“AllModule”,菜单“Place”->“Hierarchical Block”, 在出现的对话框中输入相应信息,如上图。 7.在原理图上按下鼠标左键拖动出一个矩形框,即模块,如下图。

实验一 原理图输入方式设计数字逻辑电路

实验一原理图输入方式设计数字逻辑电路 一、实验目的: 1、了解基本组合逻辑电路的原理及利用Quartus II 软件进行设计的一般方法。 2、熟悉Quartus II 原理图输入法的设计流程,掌握编辑、编译和仿真的方法。 3、掌握原理图的层次化设计方法。 4、了解Quartus II 软件的编程下载及引脚锁定的方法。 5、了解Quartus II宏功能模块的使用方法。 二、实验的硬件要求: 1、EDA/SOPC实验箱。 2、计算机。 三、实验原理 见附件《Quartus设计的一般步骤》、《元件例化和调用的操作步骤》、《QuartusII基于宏功能模块的设计》 四、实验内容: 1、用原理图方式设计1位二进制半加器半加器。 新建一个工程“HalfAdder”,选择芯片“Cyclone III EP3C16Q240C8”,建立原理图如图1-1,保存为“HalfAdder.BDF”。 图1-1 半加器电路图 编译工程。 建立波形文件,对半加器电路分别进行时序仿真和功能仿真,其波形如下: 图1-2半加器时序仿真波形,注意观察输出延时,以及毛刺的产生原因 图1-3半加器功能仿真波形 2、原理图层次化设计。 新建一工程,取名“FullAdder”;将上面设计的半加器“HalfAdder.BDF”复制到当前工程目录,并生成“符号元件”HalfAdder.BSF。 建立一个原理图文件,取名“FullAdder.BDF”,利用“符号元件”HalfAdder.BSF及其它元件设计全加器电路如下图:

用功能仿真测试全加器的逻辑功能。 图1-5 全加器功能仿真波形 图1-6是输入输出信号与FPGA连接示意图,图中用到了“拨档开关”作为输入,“LED 显示模块”显示输出值。表1-1是本实验连接的FPGA管脚编号。

硬件电路板设计规范

硬件电路板设计规范(总36 页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

0目录 0目录............................................... 错误!未定义书签。

1概述............................................... 错误!未定义书签。 适用范围............................................ 错误!未定义书签。 参考标准或资料 ...................................... 错误!未定义书签。 目的................................................ 错误!未定义书签。2PCB设计任务的受理和计划............................ 错误!未定义书签。 PCB设计任务的受理................................... 错误!未定义书签。 理解设计要求并制定设计计划 .......................... 错误!未定义书签。3规范内容........................................... 错误!未定义书签。 基本术语定义........................................ 错误!未定义书签。 PCB板材要求: ....................................... 错误!未定义书签。 元件库制作要求 ...................................... 错误!未定义书签。 原理图元件库管理规范:......................... 错误!未定义书签。 PCB封装库管理规范............................. 错误!未定义书签。 原理图绘制规范 ...................................... 错误!未定义书签。 PCB设计前的准备..................................... 错误!未定义书签。 创建网络表..................................... 错误!未定义书签。 创建PCB板..................................... 错误!未定义书签。 布局规范............................................ 错误!未定义书签。 布局操作的基本原则............................. 错误!未定义书签。 热设计要求..................................... 错误!未定义书签。 基本布局具体要求............................... 错误!未定义书签。 布线要求............................................ 错误!未定义书签。 布线基本要求................................... 错误!未定义书签。 安规要求....................................... 错误!未定义书签。 丝印要求............................................ 错误!未定义书签。 可测试性要求........................................ 错误!未定义书签。 PCB成板要求......................................... 错误!未定义书签。

研究生数字图像处理实验内容及要求(新)

《数字图像处理》实验内容及要求 实验内容 一、灰度图像的快速傅立叶变换 1、 实验任务 对一幅灰度图像实现快速傅立叶变换(DFT ),得到并显示出其频谱图,观察图像傅立叶变换的一些重要性质。 2、 实验条件 微机一台、vc++6.0集成开发环境。 3、实验原理 傅立叶变换是一种常见的图像正交变换,通过变换可以减少图像数据的相关性,获取图像的整体特点,有利于用较少的数据量表示原始图像。 二维离散傅立叶变换的定义如下: 11 2( )00 (,)(,)ux vy M N j M N x y F u v f x y e π---+=== ∑∑ 傅立叶反变换为: 112( )00 1 (,)(,)ux vy M N j M N u v f x y F u v e MN π--+=== ∑∑ 式中变量u 、v 称为傅立叶变换的空间频率。图像大小为M ×N 。随着计算机技术和数字电路的迅速发展,离散傅立叶变换已经成为数字信号处理和

图像处理的一种重要手段。但是,离散傅立叶变换需要的计算量太大,运算时间长。库里和图基提出的快速傅立叶变换大大减少了计算量和存储空间,因此本实验利用快速傅立叶变换来得到一幅灰度图像的频谱图。 快速傅立叶变换的基本思路是把序列分解成若干短序列,并与系数矩阵元素巧妙结合起来计算离散傅立叶变换。若按照奇偶序列将X(n)进行划分,设: ()(2) ()(21)g n x n h n x n =??=+? (n=0,1,2,…,12N -) 则一维傅立叶变换可以改写成下面的形式: 1 0()()N mn N n X m x n W -==∑ 11220 ()()N N mn mn N N n n g n W h n W --===+∑∑ 1122(2)(21) (2)(21)N N m n m n N N n n x n W x n W --+===++∑∑

实验七multisim数字电路原理图设计

电子线路设计软件课程设计报告实验内容:实验七multisim数字电路原理图设计 一、实验目的 1、认识并了解multisim的元器件库; 2、学会使用multisim绘制电路原理图; 3、学会使用multisim里面的各种仪器分析数字电路; 二、Multisim10 的菜单栏 1.File菜单 该菜单主要用于管理所创建的电路文件,对电路文件进行打开、保存等操作,其中大多数命令和一般Windows应用软件基本相同,这里不赘述。下面主要介绍Multisim 10.0的特有命令: ●Open Samples:可打开安装路径下的自带实例; ●New Project,Open Project,Save Project和Close Project:分别对一个工程文 件进行创建、打开、保存和关闭操作。一个完整的工程包括原理图、PCB文件、仿真文件、工程文件和报告文件; ●Version Control:用于控制工程的版本。用户可以用系统默认产生的文件名或 自定义文件名作为备份文件的名称对当前工程进行备份,也可恢复以前版本的 工程; ●Print Options:包括两个子菜单,Print Circuit Setup子菜单为打印电路设置选项; Print Instruments子菜单为打印当前工作区内仪表波形图选项。 2.Edit菜单 “编辑”菜单下的命令主要用于在绘制电路图的过程中,对电路和元件进行各种编辑操作。一些常用操作,例如,复制,粘贴等和一般Windows应用程序基本相同,这里不再赘述。下面介绍一些Multisim10.0特有的命令。 ●Delete Multi-Page:从多页电路文件中删除指定页。执行该项操作一定要小心, 尽管使用撤销命令可恢复一次删除操作,但删除的信息无法找回; ●Paste as Subcricuit:将剪贴板中已选的内容粘贴成电子电路形式; ●Find:搜索当前工作区内的元件,选择该项后可弹出对话框,其中包括要寻找 元件的名称、类型及寻找的范围等; ●Graphic Annotation:图形注释选项,包括填充颜色、类型、画笔颜色、类型和 箭头类型; ●Order:安排已选图形的放置层次; ●Assign to Layer:将已选的项目(例如,REC错误标志、静态指针、注释和文本 /图形)安排到注释层; ●Layer Setting:设置可显示的对话框; ●Orientation:设置元件的旋转角度; ●Title Black Position:设置已有的标题框的位置; ●Edit Symbol/Title Block:对已选定的图形符号或工作区内的标题框进行编辑。 在工作区内选择一个元件,选择该命令,编辑元件符号,弹出的“元件编辑” 窗口,在这个窗口中可对元件各引脚端的线型、线长等参数进行编辑,还可以 自行添加文字和线条等;选择工作区内的标题框,选择该命令,弹出“标题框 编辑”窗口,可对选中的文字、边框或位图等进行编辑; ●Font:对已选项目的字体进行编辑; ●Comment:对已有的注释项进行编辑; ●Forms/Questions:对有关电路的记录或问题进行编辑;当一个设计任务由多个

FPGA实验教程_原理图设计部分

实验注意事项 1.做实验前,先连接好下载线,然后才能接上电源。 2.做完实验后,先拨掉实验箱上的电源,然后才能拨下载线。 实验一:简单逻辑门 实验目的:掌握Quartus使用及基于原理框图进行FPGA开发的基本流程 实验要求:掌握Quartus使用及基于原理框图进行FPGA开发的基本流程,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备 所需器材:FPGA教学实验系统,带并口的普通计算机 实验介绍:本实验是在FPGA教学实验系统上实现简单的逻辑门,例如2输入的与门、与非门、或门、异或门等,对应部分的电路原理图如图1所 示。当K0(K1)按键断开时,FPGA引脚175(173)的输入为低电 平,对应发光二极管D2(D3)熄灭,当K0(K1)按键按下时,FPGA 引脚175(173)的输入为高电平,对应发光二极管D2(D3)发光。 FPGA引脚175、173在本实验中可用作输入引脚。FPGA引脚64、 65、66、73分别接有发光二极管(LED)DR0~DR3,在实验中可用 作输出引脚,当引脚输出高电平时,对应的LED被驱动发光。这些 输出引脚可用于实现2个输入的不同逻辑功能。 图1 部分按键与LED的原理图 实验步骤: 1. 为工程建立工作目录 为了方便工程涉及到的文件的管理,以后的每一个工程,都需要为其建立专门的工作目录,目录路径中不要包含有非英文或数字的字符(例如不要包含空格或中文字符等)。请利用系统自带的“我的电脑”或“资源管理器”建立目录。在此假设在E:\work目录下建立名为mylogic_sch的工程工作目录,其目录路径为E:\work\mylogic_sch,本实验所涉及的文件都需要放置在该目录当中。 2. 运行Quartus II程序 方法1(通过开始菜单):

硬件电子琴电路设计

江西理工大学应用科学学院

目录 一、设计任务与要求 (1) 二、总体框图 (2) 三、选择器件 (5) 四、功能模块 (6) 1.Songer模块 (6) 1.1NoteTabs模块 (6) 1.2ToneTaba模块 (11) 1.3Speakera模块 (13) 2.div模块 (16) 3.七段译码器模块 (18) 五、总体设计电路图 (21) 1.顶层设计的电路原理图 (21) 2.顶层设计的仿真结果 (23) 3.电路的管脚图 (23) 六、结束语 (24) 七、心得体会 (25)

硬件电子琴电路设计 一、设计任务与要求 使用FPGA设计一模拟电子琴键,实现电子琴按键的DO,Re,Mi,Fa,Sol,La,Si等中音以及相应的高音。 二、总体框图 系统设计方案: 方案一: 采用单个的逻辑器件组合实现。这样虽然比较直观,逻辑器件分工鲜明,思路也比清晰,一目了然。但是由于元器件种类、个数繁多,而过于复杂的硬件电路也容易引起系统的精度不高、体积过大等不利因素。例如八个不同的音符是由八个不同的频率来控制发出的,而采用方案一就需要运用不同的分频器来对信号进行不同程度的分频。所用仪器之多显而易见。 方案二: 采用VHDL语言编程来实现电子琴的各项功能。系统主要由电子琴发声模块、选择控制模块和储存器模块组成。和 方案一相比较,方案二就显得比较笼统,只是把整个系统分 为了若干个模块,而不牵涉到具体的硬件电路。但是我们必 须看到用超高速硬件描述语言VHDL的优势,它不仅具有良 好的电路行为描述和系统描述的能力而且通俗易懂。经过对

以上两种方案的分析、比较和总结,我们选用方案二来进行八音符电子琴的设计。 (2).ToneTaba模块:是乐曲简谱码对应的分频预置数查找表电路,其中设置了乐曲的全部音符所对应的分频置数,每一音符的停留时间由音乐节拍和音调发生器模块NoteTabs 的CLK的输入频率决定,这些值由对应于ToneTaba的4

相关文档
最新文档