当前位置:文档之家› 第四章_原理图输入方法

第四章_原理图输入方法

微机原理简单输入输出实验报告

东南大学 《微机实验及课程设计》 实验报告 实验四(1)简单输入输出 一. 实验目的与内容 (一)实验目的 1)进一步掌握TPC实验装置的基本原理和组成结构; 2)掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况; 3)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能

和使用。 (二)实验内容及要求 1、输出接口输出,根据8个发光二极管发光的情况验证编程从键盘输入一个字符或数字,将其ASCII码通过正确性。(输出端口实验必做) 2、用逻辑电平开关预置某个字母的ASCII码,编程输入这个ASCII码,并将其对应字母在屏幕上显示出来。(输入端口实验必做) 3、利用基本实验(1)中的输出锁存电路,设计L0~L7为流水灯,流水间隔时间由软件产生。(输出端口实验) 4、利用基本实验(2)中的输入电路,监测逻辑电平开关K0~K7的变换,当开关状态为全开时,在屏幕上显示提示信息并结束程序。(输入端口实验) 要求: 1、输入输出端口应该可以响应外设的连续变化。 2、输出按ESC键退出;输入按任意键退出。 3、内容3、4比做一题,选做一题 二. 实验基本原理 (一)基本原理 简单并行输出实验:八D触发器74LS273的八个输入端接数据总线D0~D7,从键盘输入一个字符或数字,通过2A8H~输出接口输出该字符或者数字代表的ASCII码,再通过8个发光二极管发光显示二进制数码,从而验证编程以及电路的正确性。 简单并行输入实验:八缓冲器74LS244的八个输出端接数据总线D0~D7,8个输入端分别接逻辑电平开关K0~K7,在逻辑电平开关上预置任意字符的ASCII码,编程将此ASCII码通过2A0H~输入,ASCII码对应字符显示在屏幕上,从而验证编程及电路的正确性。 (二)实验接线图

用原理图输入方法设计8位全加器

实验一 用原理图输入方法设计8位全加器 1.实验目的和要求 本实验为综合性实验,综合了简单组合电路逻辑,MAX+plus 10.2的原理图输入方法, 层次化设计的方法等内容。其目的是通过一个8位全加器的设计熟悉EDA 软件进行电子线路设计的详细流程。学会对实验板上的FPGA/CPLD 进行编程下载,硬件验证自己的设计项目。 2.实验原理 1位全加器可以用两个半加器及一个或门连接而成,半加器原理图的设计方法很多,我们用一个与门、一个非门和同或门(xnor 为同或符合,相同为1,不同为0)来实现。先设计底层文件:半加器,再设计顶层文件全加器。 (1) 半加器的设计: 半加器表达式:进位:co=a and b 和:so=a xnor ( not b ) 半加器原理图如下: (2) 全加器的设计: 全加器原理图如下: 3.主要仪器设备(实验用的软硬件环境) 实验的硬件环境是: 微机 I113co a so b 1 0101 0110001 10 0co so b a not xnor2 and2 I113ain cout cout ain bin sum cin bin sum cin f_adder or2a f e d u3 u2 u1 b a c co so B co so B h_adder A h_adder A

EDA实验开发系统 ZY11EDA13BE 并口延长线,JTAG延长线 实验的软件环境是: MAX+plus 10.2 4.操作方法与实验步骤 ●按照4.1 节介绍的方法与流程,完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设置成一个硬件符号入库。 ●建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真、硬件测试。 5.实验内容及实验数据记录 1.设计半加器: 用原理图输入的方法输入一个半加器的逻辑图,如图所示: 然后在assign里头的device里头根据试验箱的芯片设置Decices,接着就设置输入输出荧脚的输入端和输出端,设置如表1所示: 表1.半加器引脚端口设置 引脚名称设置端口 ain input Pin=45 bin input Pin=46 co output Pin=19 so output Pin=24 然后Save,名称为h_add.gdf,再save & Compile。 结果如图所示:

EDA原理图输入设计方法

实验一 原理图输入设计实验 一、实验目的 1、 初步了解MAX +plus Ⅱ软件。 2、 学习和掌握原理图输入方式,了解设计这一种迅速入门的便捷工具。 3、 学习和掌握EDA 的波形分析工具及分析方法。 二、实验要求 1、 设计半加器的原理图。 2、 用仿真的方法,进行半加器的波形分析。 3、 生成半加器的底层器件。 4、 组成一位全加器。 5、 在EDA 实验箱上下载实验程序并验证一位全加器。 三、实验设备 1、 装有MAX +plus Ⅱ计算机 一台 2、 EDA ——Ⅳ实验箱 一台 四、实验原理 1、 用门电路连接成1位半加器,完成原理图的设计,输入输出信号须用端口连接。其真值表 见表1.1 2、 用波形分析的方法验证半加器的逻辑关系。 3、 用半加器、与或门等逻辑电路组成1位全加器,其真值表见1.2 4、 下载软件进入实验箱验证 五、实验步骤 1、半加器原理图输入 1. 1 先建立自己目标的文件夹,D: \ EX \ Z04** \ you*\ex* 。 1.2双击MAX+LUSE II 图标,进入MAX +PLUS Ⅱ管理器。 原理图输入的操作步骤如下: (1) 建立我们的第一个项目,单击管理器中的FILE 菜单(单击鼠标左键,以后如有特 殊说明含义不变),将鼠标移到Project 选项后,单击Name 选项,指定项目如图 1.1所示。 表1.2 全加器真值表 表1.1 半加器真值表

图1.1 指定项目名的屏幕 在Project Name的输入编辑框中,键入设计半加器项目名称“hadder”,屏幕如图1.1所示:(注意项目所存放的目录): (2)再在管理器中单击File \ New选项,设定图形文件。选择Graphic Editor file,单击OK按钮后,便进入到MAX+PLUSE II 的图形编辑器。 (3)归属项目文件File \ Project \ Set Project to Current File; (4)保存半加器的文件名;屏幕如图1.2所示; 图1.2 欲保存文件前的屏幕 (5)如图1.3所示,选择图形编辑器的Symbol Name 输入编辑框中键入AND2后,单击ok按钮。此时可看到光标上粘着被选的符号,将其移到合适的位置(参考图1.4) 单击鼠标左键,使其固定; 图1.3 选择元件符号的屏幕 (6)重复(2)、(3)步骤,在图中安放input、output等元件符号,如图1.4所示;

ISE原理图输入方法

5)建立和编辑顶层原理图文件 对于顶层文件,即可使用VHDL文本输入方式,也可使用原理图输入方式。这里我们将使用原理图的输入方式来建立顶层文件。 (1)原理图形符号的生成(Symbol) 为了在原理图的设计中利用前面已使用VHDL进行有关设计的成果,我们先要将经过编译后的VHDL程序生成可供原理图设计中直接调用的原理图形符号。 选择 count_t.vhd,执行Create Schematic Symbol操作(如图4.47 所示),即可生成可供原理图设计中直接调用的原理图形符号count_t。同理,对其他两个文件执行相同的操作。 图4.47 原理图形符号的创建操作 (2)顶层原理图文件的创建 选中工程,鼠标右点,在弹出的窗口中选择New Source(如图4.48所示),再在弹出的窗口中选择文件的类型为Schematic,并输入文件名pic_top后,执行”下一步”,即完成了原理图文件的创建,进入原理图的编辑状态。

图4.48 原理图的创建操作 (3)原理图的编辑 ① 放置元件(Symbols):在Symbols 的e:/xilinx/bin/24sec中选中所需元件的原理图符号,并在右边的图中期望的位置点左键进行放置,如图4.49所示。若位置不合适,可进行移动调整。

图4.49 在原理图中放置元件的操作 ② 元件间的连线:点,进行连线操作。 ③ 放置I/O端口并编辑端口名:点,放置I/O端口。选中端口,点右键, 在弹出的对话框中选择“Rename Port”后,再在弹出的对话框中输入系统设定的端口名。或者双击端口,在弹出的对话框中输入系统设定的端口名。 ④ 原理图的保存:原理图编辑好后(如图4.50所示),应执行存盘操作,将原理图进行保存。

C语言简单输入输出练习及解析

main() ?? { int a,b; float c,d; long e,f; unsigned int u,v; char c1,c2; scanf("%d,%d",a,b); scanf("%f,%f",c,d); scanf("%1d,%1d",e,f); scanf("%o,%o",u,v); scanf("%c,%c",c1,c2); printf("\n"); printf("a=%d,b=%d\n",&a,&b); printf("c=%f,d=%f\n",&c,&d); printf("e=%d,f=%d\n",&e,&f); printf("u=%o,v=%\n",&u,&v); printf("c1=%d,c2=%d\n",&c1,&c2); } 1,这个程序有语法错误吗?为什么? 2,调试上述程序无语法错误后,用下面的数据对程序进行测试: a=123, b=456, c=17.6, d=71837.657, e=70000, f=2174506, u=62000, v=58765, c1=‘a‘,c2=‘b‘ 分析运行结果。 3,输入e和f的语句改为:scanf("%d,%d",&e,&f ); 再用上述数据测试并分析结果 4,将输入u和v的语句改为:scanf("%d,%d",&u,&v ); 再用上述数据测试并分析结果 5, 将输入e和f的语句改为:printf("e=%d,f=%d\n",e,f); 再用上述数据测试并分析结果 6, 将输入u和v的语句改为:printf("u=%u,v=%u\n",u,v);或printf("u=%d,v=%d\n",u,v); 再用上述数据测试并分析结果 7,请同学们自己修改程序和改变数据输入的形式,分析各种情况下的输入与输出 " #include #include main() { int a,b; float c,d; long e,f; unsigned u,v; char c1,c2; SCON=0x52; TMOD=0x20; TH1=0xf3; TR1=1;

(完整版)实验一原理图输入方式设计数字逻辑电路

实验一原理图输入方式设计数字逻辑电路 一、实验目的: 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-4 全加器电路图 用功能仿真测试全加器的逻辑功能。 图1-5 全加器功能仿真波形 图1-6是输入输出信号与FPGA连接示意图,图中用到了“拨档开关”作为输入,“LED 显示模块”显示输出值。表1-1是本实验连接的FPGA管脚编号。

简单输入输出口扩展实验.

实验一简单 I/O口扩展实验 一、实验目的 1、熟悉 74LS273, 74LS244的应用接口方法。 2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。二、实验设备 MUT —Ⅲ型实验箱、 8086CPU 模块。 三、实验原理 1. 开关量输入输出电路 (1电路原理:开关量输入电路由 8只开关组成,每只开关有两个位置 H 和 L ,一个位置代表高电平,一个位置代表低电平。对应的插孔是:K1~K8。开关量输出电路由 8只 LED 组成,对应的插孔分别为 LED1~LED8,当对应的插孔接低电平时 LED 点亮。原理图如下图所示。 (2电路测试:开关量输入电路可通过万用表测其插座电压的方法测试,即开关的两种状态分别为低电平和高电平;开关量输出电路可通过在其插孔上接低电平的方法测试,当某插孔接低电平时相应二极管发光。 2. 简单 I/O口扩展电路 (1电路原理:输入缓冲电路由 74LS244组成,输出锁存电路由上升沿锁存器 74LS273组成。 74LS244是一个扩展输入口, 74LS273是一个扩展输出口,同时它们都是一个单向驱动器,以减轻总线的负担。 74LS244的输入信号由插孔 IN0~IN7输入,插孔 CS244是其选通信号,其它信号线已接好; 74LS273的输出信号由插孔 O0~O7输出,插孔 CS273是其选通信号,其它信号线已接好。其原理图如下: (2电路测试:当 74LS244的 1、 19脚接低电平时, IN0~IN7与 DD0~DD7对应引脚电平一致;当 74LS273的 11脚接低电平再松开 (给 11脚一上升沿后, O0~O7与

DD0~DD7对应引脚电平一致。或用简单 I/O口扩展实验测试:程序执行完读开关量后, 74LS244的 IN0~IN7与 DD0~DD7对应引脚电平一致; 程序执行完输出开关量后, 74LS273 的 O0~O7与 DD0~DD7对应引脚电平一致。 3. 程序框图 4. 程序源代码(T244273.ASM assume cs:code code segment public org 100h start: mov dx,04a0h ;74LS244地址 in al,dx ; 读输入开关量 mov dx,04b0h ;74LS273地址 out dx,al ; 输出至 LED jmp start code ends end start 四、实验内容及步骤 逻辑电平开关的状态输入 74LS244, 然后通过 74LS273锁存输出,利用 LED 显示电路作为输出的状态显示。 1. 将实验箱与电脑相连 , 连接实验箱上的CS0 ?CS244; CS1?CS273; 平推开关的输出K1~K8 ?IN0~IN7(对应连接; O0~O7?LED1~LED8。

数据类型、运算符和简单的输入输出实验报告

嘉应学院计算机学院 实验报告 一、实验目的和要求 (1)掌握C语言数据类型,了解字符型数据和整型数据的内在关系。 (2)掌握对各种数值型数据的正确输入方法。 (3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 (4)学会编写和运行简单的应用程序。 (5)进一步熟悉C程序的编辑、编译、连接和运行的过程 二、实验环境和方法 实验方法: (一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 (二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 (三)根据实验内容,编译程序。 实验环境:Windows xp Visual C++6.0 三、实验内容及过程描述 实验步骤: ①进入Visual C++ 6.0集成环境。 ②输入自己编好的程序。 ③检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有 错,及时改正。 ④进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”, 根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果 是否正确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容:编译以下题目的程序并调试运行。 实验① (一)在Visual C++6.0中输入教材第3章第4提给出的程序:

(1)对程序进行编译,将该程序进行连接,运行该程序。 (2)如果将程序第4,5行改为 C1=197; C2=198; 再次进行编译并连接运行。 (3)将程序第三行改为 int c1,c2; 对程序进行编译、连接和运行。 实验② (二)输入第3章第5题的程序。即: 用下面的scanf 函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=`A`,c2=`a`。 运行时分别按以下方式输入数据,观察输出结果,分析原因。 ① a=3,b=7,x=8.5,y=71.82,A,a ↙ ② a=3 b=7 x=8.5 y=71.82 A a ↙ ③ a=3 b=7 8.5 71.82 A a ↙ ④ a=3 b=7 8.5 71.82Aa ↙ ⑤ 3 7 8.5 71.82Aa ↙ ⑥ a=3 b=7↙ 8.5 71.82↙ A ↙ a ↙ ⑦ a=3 b=7↙ 8.5 71.82↙ Aa ↙ ⑧ a=3 b=7↙ 8.5 71.82Aa ↙ 实验③ 输入以下程序: #include int main() {int a,b; float x,y; char c1,c2; scanf("a=%d b=%d",&a,&b); scanf("%f %e",&x,&y); scanf("%c%c",&c1,&c2); printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2); return 0; } #include int main() {char c1,c2; c1=97; c2=98; printf(“%c,%c\n ”,c1,c2); printf(“%d%d\n ”,c1,c2); return 0; }

数据类型、运算符和简单的输入输出

《C语言程序设计》课程实验报告 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

一、相关知识 1.整型常量就是整常数,可以用三种进制形式表示: (1).十进制数:以非0数字开头的数。如123,-123等,其每个数字位可以是0~9。 (2).八进制数:以数字0开头的数。如0123,-0123等,其每个数字位可以是0~7。 (3).十六进制数:以0x(或0X)开头的数。如0xffff,0x1111,-0x123等,其每个数字位可以是0~9、A~F(或a~f)。 2. 实型常量在C语言中又称为实数或浮点数。在C语言中,实数只采用十进制。它有两种表示形式: (1).十进制形式。这种形式的数由整数部分、小数点和小数部分组成(注意必须有小数点)。如:1.24,0.345,.222,234.0,333.,0.0等。 (2).指数形式。这种形式由三部分组成:实数部分、字母E或e和整数部分。象123x1022可以表示为123E22或123e22。要注意,字母E或e之前必须有数字,之后的数字必须为整数。如e3、2.1e3.5、2.7e、e等都不是合法的指数形式。 3.字符常量 (1)C语言中的字符常量是用单引号(‘)括起来的一个字符。 如’A’、’x’、’D’、’?’、’3’、’X’等都是字符常量。 (2)C语言中还规定有另一类字符常量,它们以'\'开头,被称作转义字符,意思是将反斜杠(\)后面的字符转变成另外的意义。 4. 整型变量 整型变量可分为:基本型、短整型、长整型和无符号型。无符号型又分为无符号整型、无符号短整型和无符号长整型。 5.实型变量 C实型变量分单精度(float型)和双精度(double型)两类。 6.基本算术运算符: + 加/ 取正(双目运算符/ 单目运算符) - 减/ 取负(双目运算符/ 单目运算符) * 乘(双目运算符) / 除(双目运算符) % 整除取余(双目运算符) 7.算术表达式 由算术运算符、括号将数值型的运算元素连接起来,其值为数值量的式子。其中:运算元素可为常量、变量、函数调用等。 8.自增、自减运算符 ++i 前臵自增;先自加1,后引用; i++ 后臵自增;先引用,后自加1 ; --i 前臵自减;先自减1,后引用; i--后臵自减;先引用,后自减1 ; 9.赋值运算时的类型转换

分别使用原理图和VHDL语言输入方法设计8位全加器分解

大庆石油学院课程设计 2006年9 月12 日

大庆石油学院课程设计任务书 课程硬件课程设计 题目分别使用原理图和VHDL语言输入方法设计8位全加器 专业计算机科学与技术姓名孟庆军学号040702140408 主要内容、基本要求、主要参考资料等 一、主要内容: 利用EDA-V型实验系统、微机和Maxplus-II软件系统,分别使用原理图和VHDL语言输入方法设计8位全加器。要求利用层次设计方法,首先设计1位半加器,仿真和测试成功后把它保存到元件库中去;之后以1位半加器为底层元件设计1位全加器,仿真和测试成功后把它也保存到元件库中去;最后以1位全加器为基本元件,设计8位全加器的顶层文件,进行仿真和测试。 二、基本要求: 1、熟练掌握EDA软硬件系统的使用方法。 2、设计出8位全加器,精通原理图输入方法,初步学会使用VHDL语言输入方法。 3、学会功能仿真和时序仿真。 4、按照规范写出论文,要求字数在4000字以上,并进行答辩。论文内容包括概述(学习、调研、分 析、设计的内容摘要)、EDA技术的现状和发展趋势、对EDA_V型实验系统和MaxplusII软件的掌握程度、8位全加器设计过程(包括原理图或程序设计、编译、仿真分析、硬件测试的全过程),论文中含有原理图、程序、仿真波形图及其分析报告。 三、主要参考资料: [1] 潘松.EDA技术实用教程[M].北京:科学出版社, 2003.11-13. [2] 杨恒.FPGA/CPLD最新实用技术指南[M].北京:清华大学出版社, 2005.20-22. [3] EDA先锋工作室.Altera FPGA/CPLD设计(基础篇)[M].北京:人民邮电出版社2005.32-33. [4] 求是科技.CPLD/FPGA应用开发技术与工程实践[M].北京:人民邮电出版社2005. 55-58. [5] 潘松.SOPC技术实用教程[M] .清华大学出版社.2005.1-15. 完成期限第28周 指导教师 专业负责人年月日

实验二 大数据类型、运算符和简单地输入输出

实验二数据类型、运算符和简单的输入输出 实验报告 一、实验目的 1.掌握C语言数据类型,了解字符型数据和整型数据的在关系。 2.掌握对各种数值型数据的正确输入方法。 3.学会使用C的有关算术运算符,以及包含这些运算符的表达式, 特别是自加和自减运算符的使用。 4.学会编写和运行简单的运用程序。 5.进一步熟悉的编辑、编译、连接和运行的过程。 二、实验容(源代码) 1.sy2-(1) #include int main() {char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); return 0; } #include

{char c1,c2; c1=197; c2=198; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); return 0; } #include int main() {int c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); return 0; } 2.sy2-(2) #include

{ int a,b; float x,y; char c1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&x,&y); scanf("%c%c",&c1,&c2); return 0; }

3.sy2-(3) #include int main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n); return 0; } #include int main() {int i,j,m,n; i=8; j=10;

相关主题
文本预览
相关文档 最新文档