目 录 第1章 DICE-DS01实验系统的资源介绍 一、系统功能概述 二、系统硬件资源 第2章 开发环境安装使用说明 一、KeilC51集成开发环境的安装 二、在Keil uVision2中新建一个工程以及工程配置 三、工程的编译、调试以及ISP下载 第3章 基于51单片机系统资源实验 一、单片机的IO编程 二、单片机的中断系统 三、单片机的定时器/计数器 四、单片机的串口特点和编程 五、存储器 六、PWM发生器 七、WDG看门狗 八、SPI总线 九、 I2C总线 十、综合实验 十一、步进电机实验 十二、TFT液晶显示实验 十三、16X16LED点阵显示汉字实验 附录 芯片管脚与实验箱上面MCU模块部分的二号孔对应说明: 第4章 基于Altera CPLD系统设计实验 实验一 简单门电路实验 实验二 地址译码电路实验 实验三 分频器电路实验 实验四 8位锁存器电路实验 实验五 4位共阴极数码管动态显示实验 附录A QuartusII 6.0安装方法 附录B QuartusII 6.0使用说明书 第1章 DICE-DS01实验系统的资源介绍一、系统功能概述DICE-DS01型教学实验系统是属于一种综合的教学实验系统,该系统支持8位的8051 / C8051F021等型号、16位的MSP430系列 / AVR系列以及基于Cortex-M3内核的32位群星系列ARM处理器,实现了多模块的应用实验。它是集学习、应用编程、开发研究于一体多功能创新平台。用户可根据自己的需求选用不同类型的CPU适配板,同时,实验系统上的EXP总线能够拓展较为丰富的实验接口板。用户在了解EXP标准后,更能研发出满足自身需求的实验接口板。除此之外,在实验板上有丰富的外围扩展资源(如:拨动键盘与LED显示、HD7279、TFT真彩液晶、16X16 LED汉字点阵、12位串行AD和DA、光耦/继电器、通信模块、IC卡模块、E-LAB模块以及电机控制模块等),可以完成基于CPU硬件资源的基础性实验、多种串行总线类实验以及CAN总线实验等等。实验箱底板的平面框图如下图1-1所示:
图1-1 DICE-DS01系统的底板资源平面图DICE-DS01实验箱(即:《多功能创新平台》)是集EDA /CPLD/FPGA和MCU 的开发为一体的综合性实验箱,它不仅可以独立完成各种EDA /CPLD/FPGA设计,也可以完成多种MCU开发。 MCU部分支持的CPU板卡有:EXP-LM3S615/2948/3749/6952/9B90、EXP-C8051F021、EXP-MSP430F149/155/5419、EXP-Atmega128等等(我公司的全系列EXP接口类开发板)。 EDA部分支持的CPU板类有:EXP-EPM3128&3256、EXP-EP1K30、EXP-EP3C5 & EP3C10等等(我公司的全系列EXP接口类开发板)。 二、系统硬件资源该DICE-DS01实验系统的硬件资源主要包括: ☆EXP系列MCU板接口单元 ☆ EXP系列EDA/CPLD/FPGA板接口单元 ☆ E_LAB模块接口单元 ☆ 外扩看门狗(MAX705)单元 ☆ 接触式IC卡单元 ☆ 蜂鸣器驱动单元 ☆ 光电耦合器与继电器单元 ☆ 单脉冲产生单元 ☆ 单总线(DS18B20数字温度传感器)单元 ☆ 12位串行AD(TLC2543)单元 ☆ 12位串行DA(TLV5616)单元 ☆ 数字输入输出(12个拨动开关及12个LED发光管)单元 ☆ 电机(直流电机与步进电机)控制单元 ☆ 键盘显示(芯片HD7279A,2×4键盘,带4位LED数码管)单元 ☆ TFT真彩液晶(AM176220 TFT彩色液晶屏,176×220分辨率)显示单元 ☆ 16X16 LED点阵显示单元 ☆ RS232 、RS485总线通信接口单元 ☆ CAN总线多机通信接口单元(部分芯片具有) ☆ USB主从设备接口单元(部分芯片具有,硬件在CPU板上) ☆ 以太网接口单元(部分芯片具有,硬件在CPU板上) 下面分别介绍各个单元: 1、CPU板接口 该实验系统采用外设底板加CPU最小系统板的结构方式,CPU通过双排针扩展槽扩展。用户可根据自己的需求选用不同类型的CPU板。不同类型的CPU板在实验箱的硬件资源上是完全兼容的。支持不同种类的CPU板混合使用。 CPU最小系统板主要由以下几个模块组成: ☆ CPU芯片部分 ☆ 时钟产生部分 ☆ 复位电路部分 ☆ 扩展接口部分 ☆ 电源变换部分 ☆ UART接口部分 ☆ USB主从接口部分(部分CPU板具有) ☆ 以太网接口部分(部分CPU板) EXP-89S51CPU板PCB布局图,如图1-2所示: 图1-2外观和接口示意图 表1-1接口说明 ISP下载口:EXP-89S51的JISP下载口,符合51接口标准,引脚分配图如下图1-3所示:(PCB中的方形焊盘为第一脚) 图1-3ISP下载口管脚定义 POWER:电源接口,CPU板单独使用时,从此接口给CPU板供电,+5V,内正外负。CPU板插在实验箱底板上时,不需要从POWER电源插口供电。 RST:复位按钮,按下系统复位。 P1:CPU数据地址总线扩展接口。 表1-2P1管脚定义
P2:CPU外设总线扩展接口 表1-3P2管脚定义 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 外部中断1/捕捉0/定时器1比较器输出/通用I/O | | | | | | | | | | | | | | | | | | | | | | | | | | |
P4:总线输入输出接口 表1- 4P4管脚定义
LED指示灯:D1:程序运行灯、D2:+3.3V。
2、E_lab总线接口 通过E_lab接口,可扩展我公司的E_lab扩展模块,信号定义如图1-4所示: 图1-4 E-LAB接口定义 接口的外形如图1-5所示: 图1-5E_LAB接口外形 3、串口接口 该模块主要支持用串口进行无线通信的模块,如ZIGBEE模块。 接口信号定义如图1-6所示: 图1-6串口接口信号定义 4、看门狗模块 该模块主要实现外扩看门狗器件控制MCU复位,做实验的时候只需连接两根线,电路图如图1-7所示。
图1-7外扩看门狗电路图5、IC卡模块 该模块主要完成 I2C总线读写IC卡的实验,既可以采用GPIO口模拟I2C时序的方式也可以采硬件I2C的方式,具体取决于所选择的MCU是否自带I2C控制器。原理图如图1-8所示:
图1-8 IC卡电路图 6、RS485模块 该模块主要完成485通信实验,由MAX485芯片完成485电平的转换。电路图如图1-9所示:
图1-9RS485电路图 7、温度采集模块 该模块采用单总线通信方式的数字温度传感器DS18B20实时采集当前的温度。电路图如图1-10所示:
图1-10DS18B20电路图 8、A/D转换模块 该模块主要完成模拟量与数字量的转换,使用TI的TLC2543芯片,该芯片是12位的串行A/D转换芯片,采用SPI的通信模式,电路图如图1-11所示:
图1-11 A/D转换电路图 9、D/A转换模块 该模块主要完成数字量与模拟量的转换,使用TI的TLC5616芯片,该芯片是12位的串行D/A转换芯片,采用SPI的通信模式,电路图如图1-12所示:
图1-12 DA转换电路图 10、CAN总线模块 Cortex-M3的部分芯片带CAN控制器,只需外接一个CAN收发隔离器件就可以完成CAN总线通信实验。电路图如图1-13所示:
图1-13 CAN总线电路图 11、蜂鸣器模块 该模块主要完成用MCU的定时器产生不同频率的PWM方波驱动蜂鸣器鸣叫。电路图如图1-14所示:
图1-14蜂鸣器电路图 12、光耦与继电器模块 该部分主要用光耦控制继电器的打开与闭合,实现光电隔离的功能。电路图如图1-15所示:
图1-15光耦、继电器电路图 13、单脉冲产生模块 该模块主要用来提供外部脉冲信号,可供给MCU的中断管脚实现外部中断计数的功能。电路图如图1-16所示:
图1-16外部脉冲输入电路图
14、拨动开关与LED灯模块 该模块主要作为一个简单的数字量输入输出设备,拨动开关可以改变输入的状态,LED灯可以显示输出的高低电平。电路图如图1-17所示:
图1-17键盘与LED电路图 15、直流电机模块 该模块主要实现直流电机的转速测量及调速实验,通过电位器改变电机的转速,转速经霍尔传感器转后得到方波,用定时器定时1S钟来观测MCU接收到多少个外部脉冲,从而得到电机转速。电路图如图1-18所示:
图1-18直流电机电路图 16、步进电机模块 该模块主要实现步进电机转向与转速的控制,用74LS07作为驱动芯片,电路图如图1-19所示:
图1-19步进电机电路图 17、键盘数码管显示模块 该模块采用专用的键盘与显示控制芯片HD7279A,实现显示与按键中断的控制。电路图如图1-20和1-21所示:
图1-20数码管显示电路图 图1-21 7279电路图 18、LCD模块 该模块采用台湾晶采公司生产的AM176220JTNQW-00真彩液晶,该液晶参数为262K色,176X220像素,2.0寸液晶,在实验箱上采用8位数据线与5根控制线的方式驱动该液晶显示字符。实验箱上的拨码开关K33为液晶的背光开关,KT1为液晶电源开关,使用的时候将两个拨码开关拨到上侧,不使用的时候均拨到下侧,达到节约资源的目的。电路图如图1-22所示:
图1-22 TFT 2.0真彩液晶电路图 19、16X16LED点阵显示模块 该模块主要显示汉字的功能。采用两片74LS138控制行信号,两片74LS595传送数据,实现串入并出的方式,这样可以节省MCU的GPIO口。74LS138控制的行给低电平,数据位给高电平的时候对应的点会点亮。驱动电路图如图1-23所示:
图1-23 16X16 LED点阵显示行列驱动电路 20、其它接口说明 电源单元:为系统提供+5V、+12V、-12V、+3.3V的电源,其中+3.3V的电源已经在实验箱底板上用红色LED(POWER)灯指示出来。 时钟单元:采用我公司现成的时钟模块,通过接插件连入实验箱的底板上,看丝印注释选择相应的拨码开关状态即可获得所需的时钟输出。可作EDA部分的时钟输入。
第2章 开发环境安装使用说明一、KeilC51集成开发环境的安装1、Keil uVision2的安装步骤如下 将安装文件拷贝到电脑根目录下,然后双击图标,如图2-1所示: 注意:去掉属性里的只读选项。
图2-1启动安装环境对话框 2、选择Eval Version。然后然后一直next直至安装完成,如图2-2所示:
图2-2 完成安装 二、在Keil uVision2中新建一个工程以及工程配置1、打开Keil C环境,如图2-3所示。 图2-3 打开工程对话框 2、新建工程或打开工程文件:在主菜单上选“Project”项,在下拉列表中选择“New Project”新建工程,浏览保存工程文件为扩展名为“.Uv2”的文件。或在下拉列表中选择“Open project”打开已有的工程文件。如题2-4所示: 图2-4 新建工程 3、环境设置:新建工程文件后,在工具栏中选择如下图选项设置调试参数及运行环境 ,或从主菜单“Project”项中选择“Options for Target ‘Target1’”,打开如下图2-5设置窗口。 图2-5 选择目标器件 在“Device”项下选择要仿真的芯片类型,如:Atmel –> AT89S51。 在“Target”项下的晶振设置中修改为硬件电路所用晶振频率,如:6MHz。 在“Output”项下如在Creat HEX File选项前打勾,则在编译的同时生成可下载执行的HEX文件,用仿真芯片仿真时可以不进行此项设置。 在“Debug”项下选择“Use: Keil Moniter-51 Driver ”使用硬件仿真。如图2-6所示: 图2-6Debug窗口设置 点击“Settings”按钮,进入串口选择及波特率设置窗口(如图2-7所示)。 图2-7端口设置 选择合适的波特率及串口号。“Serial Interrupt”项不可选,把前面的勾打掉。点OK保存设置。 在“Option for Target ‘Target1’”窗口中,点确定,退出环境设置。 4、新建文件:在主菜单的“File”下拉列表中选“New…”新建文件。编辑文件并保存文件。文件保存为扩展名为“.C”或“.ASM”的文件,如图2-8所示。 图2-8新建main.C或.ASM文件
5、添加文件:在左边的“Project Window”窗口中,用右键选取“Source Group 1”,在弹出的列表中选择“Add Files to Group ‘Source Group 1”,弹出浏览窗口,如图2-9所示: 图2-9 添加main.c或.asm文件 浏览添加编辑好的C或ASM文件。添加完毕点“Close”,关闭窗口。 这时发现添加的文件名已出现在“Project Window”窗口中。双击刚添加的C或ASM文件。打开编辑文件窗口如图2-10所示: 图2-10 工程窗口 三、工程的编译、调试以及ISP下载1、译链接:在“Build Bar” 工具条中,选第二项编译当前文件,第三项为编译全部。编译完成,在下方“Output”窗口中出现编译结果,如图2-11所示: 图2-11编译窗口 2、仿真调试:点击调试按钮 ,或从主菜单选取调试“Start/Stop Debgu Session CTRL+F5”(快捷键CTRL+F5),程序下载到仿真芯片中。窗口下方显示下载进度条。100%下载完成后出现如图2-12所示。 图2-12下载窗口 - 序仿真:运用运行“Debug Bar”调试工具条,进行单步、进入、跳出、运行到光标、全速运行等。
全速运行后,程序不受控。如需再次单步调试,需点击调试工具 停止按钮,停止调试。停止后,硬件复位仿真芯片,再次运行第7步。 4、使用ISP烧写hex文件。 (1)、双击次目录下的文件IspPgm.exe即可打开软件进入如图2-13的界面 图2-13 ISP窗口 (2)、芯片选择左击界面右面芯片选择窗口的下拉箭标,选择编程芯片的型号。 (3)、导入hex文件到缓冲区 (4)、左击界面上的“Open File”按钮,选择需要写入的hex文件。 (5)、向芯片写入文件(写文件时要保证编程电缆连接正确,且CPU工作正常) (6)、左击界面上的“Write”按钮,开始编程向芯片写入程序。 (7)、写入结束,出现如图2-14界面表示完成写入编程。 图2-14 ISP下载完毕 (8)、退出程序,左击界面右上角的“x”按钮,退出此程序。
第3章 基于51单片机系统资源实验一、单片机的IO编程实验1 IO开关量输入实验 目的:学习单片机读取IO引脚状态的的方法。 内容:编程读取IO引脚状态。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:首先要把相关的引脚设置在IO的输入状态,然后写一个循环,不停地检测引脚的状态。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将试验箱上的的IO1--- IO8分别连接到SWITCH的8个拨码开关的K1---K8的输出端子K1---K8上,连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_INPUT下的工程文件IO_INPUT.Uv2编译程序,上电,在程序注释处设置断点,进入调试状态,打开窗口Peripherals-->IO-Port-->P0,改变开关状态, 运行程序到断点处,观察窗口的数值与开关的对应关系。
实验2 IO输出驱动继电器(或光电隔离器)实验 目的:学习IO输出控制方法。 内容:通过单片机的IO引脚驱动继电器(或光电隔离器)动作。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:首先要把相关的引脚设置在IO的输出状态,然后写一个循环,依次输出高低电平。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1、IO2分别连接到RELAY的输入R_IN和PHOTO的输入P_IN上,R_OUT和P_OUT分别连接到发光二极管LAMP的输入孔L1和L2上。连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_OUTPUT下的工程文件IO_OUTPUT.Uv2编译程序,上电,进入调试状态,打开窗口Peripherals-->IO-Port-->P0,单步运行程序,观察窗口的数值变化。 4、全速运行程序,观察继电器的发光二极管的亮灭变化,同时确定继电器动作(或光电隔离器导通)与IO输出电平的关系。
实验3 IO输入/输出---半导体温度传感器DS18B20实验 目的:学习IO引脚编程实现交替输入、输出的方法。 内容:通过单片机的IO引脚与半导体温度传感器实现单线通讯。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:根据18B20的资料(见备注),将IO引脚设置在输出状态,分别模拟出不同的命令时序,例如复位、读寄存器等;再改变IO引脚的为输入状态,接收传感器输出的数据。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1连接到TEMP SENSOR DS18B20的DQ。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_INOUTPUT下的工程文件IO_INOUTPUT.Uv2编译程序,上电,进入调试状态,按照程序注释说明设置断点,全速运行程序到断点处,观察寄存器R7中的数据,用手摸住传感器DS18B20芯片,再运行到断点处,比较R7的变化。 4、备注: DSl8B20数字温度计提供9位(二进制)温度读数指示,器件的温度信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线),DSl8B20的电源可以由数据线本身提供而不需要外部电源。因为每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件。DSl8B20的测量范围从-55到+125增量值为0.5可在l s(典型值)内把温度变换成数字。 二、单片机的中断系统实验 1外部中断----脉冲计数实验 目的:学习单片机的外部中断使用方法。 内容:对外部中断计数显示。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:首先第一步设置单片机的IO为输入状态,第二步设置引脚的中断触发方式,一般设置为边沿触发,第三步,设置外部中断的优先级,第四步,编写中断服务程序,包括中断入口跳转等,第五步,设置中断使能,允许外部引脚触发中断。第六步,设置死循环,主程序结束,交给中断服务程序完成计数。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的INT0连接到单脉冲输出孔P-,连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹EXT_INT1下的工程文件EXT_INT1.Uv2,编译程序,上电,进入调试状态,按照程序注释说明设置断点,全速运行程序,每按下一次单脉冲开关Paulse,程序运行到断点处一次,观察寄存器R1的变化。 三、单片机的定时器/计数器实验1 计数器实验 目的:学习单片机的定时/计数器的计数功能使用方法。 内容:对外部单脉冲信号进行计数,计数10个后产生计数中断。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:使用定时/计数器的计数功能,将外部时钟信号加在计数器的计数时钟输入引脚上,当计数10次后,计数器溢出,触发标志位,编程控制分频输出引脚电平翻转,产生分频后的时钟信号。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1和T0分别连接到发光二极管L1的输入L1上和单脉冲输出孔P-,连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹COUNTER下的工程文件COUNTER.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、上电全速运行程序,按下5次单脉冲按键后发光二极管点亮,再按5次后发光二极管熄灭,如此重复。
实验2 秒时钟发生器实验 目的:学习单片机的定时/计数器的定时功能使用方法。 内容:产生频率为0.5Hz的时钟输出。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:使用定时/计数器的定时功能,时钟源采用系统时钟,根据时钟源的频率配置初值寄存器,使能定时器中断,在中断服务程序中翻转一个IO引脚输出,产生0.5Hz的时钟输出。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1连接到发光二极管L1的输入L1上,连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹TIMER_SECOND下的工程文件TIMER_SECOND.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、全速运行程序,观察发光二极管的亮灭情况。 5、备注:现在的单片机系统时钟较高,难于产生1秒的定时中断,所以,可以设置定时时间为50毫秒,在中断服务程序中设置程序计数,当累加到1秒后,控制输出IO引脚电平翻转,驱动发光二极管。 四、单片机的串口特点和编程实验1 PC机串口通讯实验 目的:学习单片机串口的使用方法。 内容:与PC机实现通讯。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:第一步,配置串口工作在8位,波特率可变异步通讯工作方式,波特率由定时器1确定,同时使能其中断并清除其中断标志位;第二步,配置定时器1,工作在8位自动重装入模式,根据波特率计算其初值。第三步,编写串口中断服务程序,只处理接收中断,对发送中断只清除标志,不做其他处理。第四步,设置死循环,交由中断服务程序处理。
步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用附带的直连串口线连接试验箱的DB9和计算机的串口,接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹RS232下的工程文件RS232.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化,全速运行程序,拔掉开发板上的串口线,强制关闭RS232工程,然后将串口线连接到实验箱上的的串口上。 4、实验箱上MCU部分的TXD、RXD连接到RS232的TXD和RXD上,并将开发板上的跳线帽JP2短接在下侧。 4、打开PC机的超级终端,设置波特率9600、数据位8、无流控、无校验等信息,PC机全速运行实验程序,在超级终端里输入可显示字符,观察超级终端的显示,断开连接的串口线,再输入字符,观察显示有什么不同。 5、备注:在串口中断服务程序中,要清除中断标志位。在发送数据前,要检测发送状态位在发送结束状态。
实验2 RS485通讯实验 目的:学习单片机串口的使用方法以及RS485通讯。 内容:使用Max485芯片进行电平转换,实现差分方式通讯。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。AT89S51/52/53芯片两个(需2套) 步骤: 1、将两个实验箱的CPU板正确安放在CPU接口插座上,跳线帽JP2端都跳在下侧。 2、连线: 发送设备: (1)用导线将MCU的TXD、RXD、IO1、INT0分别连接到RS485的TXD、RXD、E485和单脉冲输出P-孔。 (3)用两根导线顺序连接两个实验箱的UR1差分接口(上、下分别对接)。 接收设备: (1)用导线将MCU的TXD、RXD分别连接到RS485的TXD、RXD; (2)用导线将MCU的SDA连接到RS485的E485; (3)用导线将MCU的IO1-IO8分别连到LAMP的L1-L8; (4)用两根导线顺序连接两个实验箱的UR1差分接口(A、B分别对接)。 3、分别连接好仿真器,试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹RS485下的RS485_TX里的工程,编译程序,将程序下载到“发送设备”的CPU板中。再打开RS485下的RS485_RX里的工程,编译程序,将程序下载到“接收设备”的CPU板中。 4、同时给两个实验箱上电。按下发送设备上的单脉冲按键。观察“接收设备”实验箱上的LED灯变化。再结合程序分析为什么。 5、备注:在该RS485的通讯中,关键是设置RS485的E485端的状态,从而决定是接收回来数据还是发送出去数据。
五、存储器实验1 RAM存储器读写实验 目的:学习存储器数据读写方法。 内容:将内部RAM中的一段数据复制到另一RAM空间。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:首先设置源的首地址和目的首地址,再设置数据块的长度,设置一个变量,先从源读取一个字节,再写入到目的地址中,如此循环,直至到数据块的长度。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹RAM下的工程文件RAM.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、按照注释设置断点,打开变量观察窗口,全速运行实验程序到断点处,观察2个数组内容的变化。 5、备注:在汇编中,对内部存储器的操作使用指令MOV,外部存储器的操作使用MOVX和MOVC,其他相同。 6、Keil C环境下观察变量的方法: 在地址框填写: C:0000 查看 CODE 区 D:0000 查看 DATA 区 I:0000 查看 IDATA 区 X:0000 查看 XDATA 区
六、PWM发生器实验1 PWM发生器(模拟)实验 目的:学习利用定时器和IO产生PWM的方法。 内容:产生占空比变化的PWM波形输出。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板,示波器。 编程:使用定时/计数器的定时功能,分别产生PWM的高电平和低电平。第一步,首先选择使用单片机的定时/计数器0的定时功能,确定工作方式。第二步,根据PWM频率要求确定初值。第三步,使能定时器的中断。第四步,编写定时器中断服务程序,确定PWM波形高低电平的保持时间,控制IO引脚输出翻转电平。做一个死循环,一切交给中断处理。
步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹PWM_IO下的工程文件PWM_IO.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、全速运行程序,用示波器的单片机的IO1的波形。 5、备注:定时器产生中断的定时时间是PWM波形占空比调整的最小单位,即分辨率,在定时器中断服务程序中对中断计数,控制IO电平的翻转。
实验2蜂鸣器实验 目的:学习AT89S51的定时器定时功能使用方法。 内容:用定时器产生PWM方波驱动蜂鸣器鸣叫。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、用导线将MCU的IO1连接到BUZZER的BUZZER孔,连接好仿真器。 3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹BUZZER下的工程文件BUZZER.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、全速运行程序,观察蜂鸣器的鸣叫情况,同时伴随继电器动作。
七、WDG看门狗实验1 外扩WDG(MAX705)实验 目的:学习外扩看门狗控制器的使用方法。 内容:配置外扩看门狗电路。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:配置一个IO输出翻转电平信号喂狗,配置一个IO输出驱动发光二极管显示状态。 步骤: 1、将CPU板正确安放在CPU接口插座上。 2、用导线将MCU的IO1、IO2分别连接到WDG的WDI和发光二极管L1的输入孔L1上,用导线将WDG的RST连接到光耦的的P_IN孔,P_OUT连接到74LS244的D0,74LS244的Q0接MCU的RST上,74LS244的/G1、/G2接GND。连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹EXT_WDG下的工程文件EXT_WDG.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、将CPU板上的仿真芯片换成可烧录的芯片AT89S51/52/53,通过ISP电缆烧录HEX文件。复位后运行程序,观察发光二极管在上电时亮一次,然后保持熄灭状态。去除IO1到WDI的连线,观察发光二极管会重复亮灭。 5、备注:在程序开始处,点亮发光二极管约1秒钟,在程序正常运行中,发光二极管熄灭,如果在设定的时间内不能喂狗,程序回到开始处运行,重新点亮发光二极管。
实验2 WDG(内部)实验 目的:学习内部看门狗控制器的使用方法。 内容:配置内部看门狗。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:配置一个IO输入控制信号,控制喂狗。 步骤: 1、将CPU板正确安放在CPU接口插座上。 2、连线:用导线将MCU的IO1、IO2分别连接到平推开关K1的输出插孔K1和发光二极管L1的输入孔L1上。连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹INT_WDG下的工程文件INT_WDG.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、将CPU板上的仿真芯片换成可烧录的芯片AT89S51/52/53,通过ISP电缆烧录HEX文件。复位后运行程序,把平推开关K1拨到H侧,观察发光二极管L1的状态。把平推开关K1拨到L侧,比较发光二极管L1的状态变化。 5、备注:在程序开始处,点亮发光二极管约1秒钟,在程序正常运行中,发光二极管熄灭,如果在设定的时间内不能喂狗,程序回到开始处运行,重新点亮发光二极管。
八、SPI总线实验1 SPI(模拟)实验-----TLC2543 AD转换实验 目的:学习SPI总线通讯编程方法、串行AD应用。 内容:利用SPI总线配置AD转换芯片,并读取转换结果。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:编程3个IO引脚为输出,一个IO为输入;3个输出引脚一个模拟CLK,一个模拟CS,另一个模拟DO,1个输入引脚模拟DI。根据芯片的技术资料,模拟输出3个输出引脚的时序。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、用导线将MCU的IO1--IO5分别连接到AD的AD_CS、AD_CLK、AD_IN、AD_OUT、AD_EOC,用导线将AD_IN1连接到ANOUT.。连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹EXT_ADC下的工程文件EXT_ADC.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、上电,运行程序,在程序的注释处设置断点,全速运行程序到断点,调节输入的模拟量,观察30H、31H单元中的数的变化 实验2 SPI(模拟)实验-----TLV5616 DA转换实验 目的:学习SPI总线通讯编程方法、串行DA应用。 内容:利用SPI总线配置DA转换芯片,并用万用表测量输出电压值。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:编程4个IO引脚为输出, 4个输出引脚:一个模拟CLK,一个模拟CS,一个模拟DATA,另一个模拟FS。根据芯片的技术资料,模拟出4个输出引脚的时序。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、用导线将MCU的IO1--IO4分别连接到DA的DA_CS、DA_CLK、DA_IN、DA_FS,用导线将DA_REF连接到插孔Vref 2.5V.。连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹EXT_DAC下的工程文件EXT_DAC.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、上电,全速运行程序,用万用表观察插孔DA_OUT的电压值;再修改程序中31H-30H单元的值,看电压值的变化。 九、 I2C总线实验1 I2C(模拟)实验-----IC卡(AT24C01)读写实验 目的:学习I2C总线通讯编程方法。 内容:利用I2C总线读取存储器IC卡(AT24C01)的数据。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:编程2个IO引脚模拟I2C总线,按照AT24C01的操作时序,访问AT24C01存储器的内容。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1--IO4分别连接到IC_CARD的SCK、SDA、DET、PWR。连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IIC_CARD下的工程文件IIC_CARD.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、实验箱上电,按照注释设置断点,插入IC卡,全速运行程序到断点处,观察30H~36H单元的数据是否与写入数据一致!
十、综合实验所谓混合总线,是指由3线组成的总线:CS、CLK、IO,典型应用是芯片HD7279,特别分出来单独实验。 实验1 HD7279LED数码管显示实验 目的:学习HD7279的通讯方法。 内容:利用IO向HD7279写入控制命令和数据。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:配置IO,向HD7279写入控制命令,控制数码管的显示。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1----IO3分别连接到HD7279的7279_CS、7279_CLK、7279_DATA。用导线将HD7279的7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP分别连接到LED DISP的LED_A、LED_B、LED_C、LED_D、LED_E、LED_F、LED_G、LED_DP;用导线将HD7279的7279_C1、7279_C2、7279_C3、7279_C4分别连接到LED DISP的LED_C1、LED_C2、LED_C3、LED_C4。连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹HD7279DISP下的工程文件HD7279DISP.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、全速运行程序,观察LED数码管的显示变化。
实验2 HD7279键盘实验 目的:学习HD7279的通讯方法。 内容:利用总线向HD7279写入控制命令并显示键值。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:配置2个IO输出作为SPI的CS和CLK,配置1个IO做I2C的LDA。使能外部中断,并将中断引脚连接到 HD7279的中断输出INT上。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1----IO3、INT0分别连接到HD7279的7279_CS、7279_CLK、7279_DATA、7279_KEY;用导线将HD7279的7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP分别连接到LED DISP的LED_A、LED_B、LED_C、LED_D、LED_E、LED_F、LED_G、LED_DP;用导线将HD7279的7279_C1、7279_C2、7279_C3、7279_C4分别连接到LED DISP的LED_C1、LED_C2、LED_C3、LED_C4;用导线将HD7279的7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP分别连接到KEY的KEY7、KEY6、KEY5、KEY4、KEY3、KEY2、KEY1、KEY8;用导线将HD7279的7279_C1连接到KEY的插孔KEY。连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹HD7279下的工程文件HD7279.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、上电,运行程序,按键,观察LED显示的数据是否与键盘一一对应。 实验3 电机转速实验 目的:学习外部中断的应用方法。 内容:对外部中断计数处理,显示电机的转速。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:首先第一步设置单片机的IO为输入状态,第二步设置引脚的中断触发方式,一般设置为边沿触发,第三步,设置外部中断的优先级,第四步,编写中断服务程序,包括中断入口跳转等,第五步,设置定时器中断,中断时间设为1秒(方法在定时器部分详细说明)。第六步,设置中断使能,允许外部引脚触发中断。设置死循环,主程序结束,交给中断服务程序完成计数并显示。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的INT0连接到DC_MOTOR的SPEED,DC_MOTOR的DRV连接到ANOUT,连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹EXT_INT下的工程文件EXT_INT.Uv2,编译程序,进入调试状态。按照程序注释说明设置断点,全速运行程序到断点处,观察采样的速度也会相应的变化(观察寄存器R0的数值)。调节电位器POT1,调整电机转速,再运行到断点处,观察寄存器R0的数值 4、备注: 在电机的同轴转盘上,安装有磁体,在转盘下面由对磁体敏感的霍尔传感器,随着转盘转动,当磁体正对传感器时,传感器的输出电压发生变化,单片机利用此电压变化触发中断。单片机在固定时间内累计发生中断的数值,即电机的转速。
十一、步进电机实验实验1步进电机正反转实验 目的:学习步进电机的控制方法。 内容:用单片机的IO口控制步进电机正转。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:用单片机的IO口模拟产生PWM,使步进电机正转。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1---- IO4分别连接到STEP MOTOR的ORANGE、YELLOW、PINK、BLUE管脚。连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹BuJin4下的工程文件BuJin4.Uv2,编译程序,进入调试状态,单步运行程序,观察IO口的变化。 4、全速运行程序,电机开始正转,交换ELLOW与BLUE两根线,电机反转。
十二、TFT液晶显示实验实验1TFT液晶显示彩色条纹实验 目的:学习TFT液晶显示的控制方法。 内容:用单片机的IO口控制TFT液晶显示。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:用单片机的IO口控制TFT液晶显示字符。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1---- IO8分别连接到TFT LCD的ED0、ED1、ED2、ED2、ED4、ED5、ED6、ED7,MCU的SDA、SCL、PWM0、CADC0、CDAC0分别接CS、R/D、W/R、EA、RST。 3、将液晶屏下面的拨码开关K33、KT1拨到上端。 4、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹TFT下的工程文件TFT.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 5、全速运行程序(或按下复位键),观察TFT液晶上显示的内容。
十三、16X16LED点阵显示汉字实验实验116X16LED点阵显示汉字实验 目的:学习16X16LED点阵显示汉字的控制方法。 内容:用单片机的IO控制74LS138和74LS595驱动16X16LED点阵显示汉字。 设备:DICE-DS01试验箱、EXP-89S51/52/53 CPU板。 编程:用单片机的IO口控制74LS138译码产生16位行选通信号,74LS595用串转并的方式传送16位的数据。 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将MCU的IO1---IO4分别连接到16*16LED的A0、A1、A2、A3;MCU的SDA、SCL、PWM0分别连接到16*16LED的SHCP、STCP、DS,连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹LED下的工程文件LED.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。 4、全速运行程序,观察16X16LED点阵上显示的汉字。
附录芯片管脚与实验箱上面MCU模块部分的二号孔对应说明:管脚说明见下表: 注意:NC表示该管脚没有跟芯片连接。 芯片管脚与实验箱MCU部分二号孔的对应关系表
第4章 基于Altera CPLD系统设计实验一、EXP-EPM3128 CPU板卡上的CPLD芯片引脚与实验箱上标示的对应表:
二、说明及注意事项: 每次实验完成后,请一定将芯片内下载的实验程序擦除!以防上次定义的IO口状态和下次将要使用的不同,这样在接线上电后(还没有下载下次实验程序前)会造成芯片的IO烧坏。擦除方法如下图4-1所示:(勾选Erase项)
图4-1 CPLD片内程序的擦除方法 实验一 简单门电路实验 一、实验目的: 1、掌握QuartusII 6.0集成开发环境的使用及CPLD的程序下载方法; 2、学会门电路的设计方法。 二、实验内容: 使用CPLD来实现一个简单的门电路(图形输入法、VHDL语言输入法)。 三、实验设备: 1、DICE-DS01教学实验箱,EXP-EPM3128板卡,PentiumII以上的PC机,USB Blaster(Altera)仿真器; 2、PC操作系统WIN98或WIN2000或WINXP,QuartusII 6.0集成开发环境,USB Blaster(Altera)仿真调试驱动程序。 四、实验步骤: 1、编程:采用图形输入法或VHDL语言输入法两种方式编写。即:创建工程后,一种方法是:选择图形编辑器,添加一个逻辑门(例如“与门”),再添加引脚并命名;第二种方法,编写VHDL语言实现“与门”,定义端口并分配到引脚。 2、检查无误后,综合、编译,保证没有错误存在。打开图形仿真界面,将3个引脚全部添加进去,设置2个输入引脚的波形信号,在设定输入的预设波形时,要保证各种组合状态能被仿真到,点击仿真按钮,开始仿真,完成后,弹出仿真结果波形,验证输出波形与输入波形的关系是否符合设计功能。 3、将CPU板正确安放在CPU接口插座上。 4、连线:将EDA/CPLD/FPGA侧的IO1和IO2分别连接到平推开关K1和K2的输出K1和K2上.,将IO3连接到发光二极管L1的输入L1上。连接好编程器。 5、试验箱上电,在PC机上打开Quartus II 6.0环境,进入文件夹Gate,打开工程Gate.qpf,编译程序,创建仿真图形文件,将端口加进去,设置可能出现的输入的波形,进行图形仿真,确认逻辑的正确;进入下载界面,下载程序到芯片上。或者进入文件夹Gate1打开工程Gate1.qpf编译程序,进入下载界面,下载程序到芯片上。 6、验证:改变2个拨码开关的电平状态组合,观察发光二极管的亮灭状态是否与设计的“与门”逻辑功能相符。 7、将芯片内下载的实验程序擦除。
实验二 地址译码电路实验 一、实验目的: 1、掌握QuartusII 6.0集成开发环境的使用及CPLD的程序下载方法; 2、学习地址译码电路的设计方法。 二、实验内容: 使用CPLD来实现一个组合逻辑“3-8译码电路”。 三、实验设备: 1、DICE-DS01教学实验箱,EXP-EPM3128板卡,PentiumII以上的PC机,USB Blaster(Altera)仿真器; 2、PC操作系统WIN98或WIN2000或WINXP,QuartusII 6.0集成开发环境,USB Blaster(Altera)仿真调试驱动程序。 四、实验步骤: 1、编程:创建工程,根据要求写出真值表,根据真值表编写VHDL语言,定义端口并分配引脚。 2、检查无误后,综合、编译,保证没有错误存在。打开图形仿真界面,将引脚全部添加进去,设置输入引脚的波形信号,在设定输入的预设波形时,要保证各种组合状态能被仿真到,点击仿真按钮,开始仿真,完成后,弹出仿真结果波形,验证输出波形与输入波形的关系是否符合设计功能。 3、将CPU板正确安放在CPU接口插座上,将板上的跳帽J4跳至左侧(短接1-2脚)。 4、连线:将EDA/CPLD/FPGA侧的IO1--IO4分别连接到平推开关K1--K4的输出K1--K4上,将IO10---IO17连接到发光二极管L1---L8的输入L1---L8上。连接好编程器。 5、试验箱上电,在PC机上打开Quartus II环境,进入文件夹Decode,打开工程Decode.qpf编译程序,创建仿真图形文件,将端口加进去,设置输入可能出现的波形,进行图形仿真,确认逻辑正确,进入下载界面,下载程序到芯片上。 6、验证:将拨码开关K4拨到H侧,改变K1—K3的状态,观察发光二极管的亮灭情况,再将拨码开关K4拨到L侧,改变K1—K3的状态,观察发光二极管的亮灭情况是否与“3-8译码器”逻辑功能相符。 7、将芯片内下载的实验程序擦除。
实验三 分频器电路实验 一、实验目的: 1、掌握QuartusII 6.0集成开发环境的使用及CPLD的程序下载方法; 2、学习分频器的设计方法。 二、实验内容: 使用CPLD来实现秒时钟电路。 三、实验设备: 1、DICE-DS01教学实验箱,EXP-EPM3128板卡,PentiumII以上的PC机,USB Blaster(Altera)仿真器、示波器; 2、PC操作系统WIN98或WIN2000或WINXP,QuartusII 6.0集成开发环境,USB Blaster(Altera)仿真调试驱动程序。 四、实验步骤: 1、编程:用示波器测量输入信号的频率,此频率值即分频系数,创建工程,编写VHDL语言,定义端口并分配引脚。 2、检查无误后,综合、编译,保证没有错误存在。打开图形仿真界面,将引脚全部添加进去,设置输入引脚的波形信号,点击仿真按钮,开始仿真,完成后,弹出仿真结果波形,验证输出波形与输入波形的关系是否符合设计功能。 3、将CPU板正确安放在CPU接口插座上,将EPM3128板上的跳线J9短接右侧(在10MHz侧,短接2-3脚)。 4、连线:将EDA/CPLD/FPGA侧的IO10---IO17连接到发光二极管L1---L8的输入L1---L8上。连接好仿真器。 5、试验箱上电,在PC机上打开Quartus II环境,进入文件夹FreqDivider,打开工程FreqDivider.qpf编译程序,创建仿真图形文件,将端口加进去,设置输入可能出现的波形,进行图形仿真,确认逻辑正确,进入下载界面,下载程序到芯片上。 6、验证:用示波器观察输入时钟信号(10MHz的时钟)和输出信号(8路中的每一路)的频率关系是否与设计要求相符。 8、将芯片内下载的实验程序擦除。 6、说明:输入时钟也可从外部给定,原始时钟信号的要求:TTL 电平方波,最高电平(峰值):大于3.5V,小于5V,最低电平(谷值):大于0V,小于0.8V。
实验四 8位锁存器电路实验 一、实验目的: 1、掌握QuartusII 6.0集成开发环境的使用及CPLD的程序下载方法; 2、学习锁存器的设计方法。 二、实验内容: 使用CPLD来实现数据锁存电路。 三、实验设备: 1、DICE-DS01教学实验箱,EXP-EPM3128板卡,PentiumII以上的PC机,USB Blaster(Altera)仿真器; 2、PC操作系统WIN98或WIN2000或WINXP,QuartusII 6.0集成开发环境,USB Blaster(Altera)仿真调试驱动程序。 四、实验步骤: 1、编程:创建工程,编写VHDL语言,定义端口并分配引脚。 2、检查无误后,综合、编译,保证没有错误存在。打开图形仿真界面,将引脚全部添加进去,设置输入引脚的波形信号,点击仿真按钮,开始仿真,完成后,弹出仿真结果波形,验证输出波形与输入波形的关系是否符合设计功能。 3、将CPU板正确安放在CPU接口插座上,将板上的跳帽J4、J6、J8都跳至左侧(短接1-2脚)。 4、连线:将EDA/CPLD/FPGA侧的IO9连接到单脉冲开关输出孔P-上;-将IO10---IO17连接到发光二极管L1---L8的输入L1---L8上;将IO1---IO8连接到平推开关K1---K8的输入K1---K8上。连接好仿真器。 5、试验箱上电,在PC机上打开Quartus II环境,进入文件夹Lock,打开工程Lock.qpf编译程序,创建仿真图形文件,将端口加进去,设置输入可能出现的波形,进行图形仿真,确认逻辑正确,进入下载界面,下载程序到芯片上。 6、验证:比较按下单脉冲开关Pulse和不按下单脉冲开关Pulse两种情况下,改变拨码开关的变化对发光二极管亮灭的影响,再结合锁存器电路的真值表看是否正确。 7、将芯片内下载的实验程序擦除。
实验五 4位共阴极数码管动态显示实验 一、实验目的: 1、掌握QuartusII 6.0集成开发环境的使用及CPLD的程序下载方法; 2、学习LED数码管动态显示的设计方法。 二、实验内容: 使用CPLD来实现LED数码管动态显示。 三、实验设备: 1、DICE-DS01教学实验箱,EXP-EPM3128板卡,PentiumII以上的PC机,USB Blaster(Altera)仿真器; 2、PC操作系统WIN98或WIN2000或WINXP,QuartusII 6.0集成开发环境,USB Blaster(Altera)仿真调试驱动程序。 四、实验步骤: 1、编程:创建工程,编写VHDL语言,定义端口并分配引脚。 2、检查无误后,综合、编译,保证没有错误存在。打开图形仿真界面,将引脚全部添加进去,设置输入引脚的波形信号,点击仿真按钮,开始仿真,完成后,弹出仿真结果波形,验证输出波形与输入波形的关系是否符合设计功能。 3、将CPU板正确安放在CPU接口插座上,将板上的跳帽J4跳至左侧(短接1-2脚)。 4、连线:将EDA/CPLD/FPGA侧的IO1--IO4分别连接到数码管的输入插孔LED_C1---LED_C4上,将IO10---IO17连接到数码管的输入插孔LED_A、LED_B、LED_C、LED_D,LED_E、LED_F、LED_G、LED_P上。连接好仿真器。 5、试验箱上电,在PC机上打开Quartus II环境,进入文件夹DynamicDisp,打开工程DynamicDisp.qpf,编译程序,创建仿真图形文件,将端口加进去,设置输入可能出现的波形,进行图形仿真,确认逻辑正确,进入下载界面,下载程序到芯片上。 6、说明:将EPM3128板上的跳线J9短接右侧(在10MHz侧,短接2-3脚)。 7、验证:观察数码管上的显示,结合程序分析其正确性。 8、将芯片内下载的实验程序擦除。
附录A QuartusII 6.0安装方法1、在1号盘中打开install.exe,如右图图标所示: 2、在跳出的框中点击第一个进行安装: 3、按下图所示选择安装:(其他未选的是外端仿真、编译类的软件)一直点击NEXT: 4、进入安装环节(慢慢等到选择安装2号盘的提示信息): 5、当安装过程中跳出如下图所示提示框时,点击 按钮进行选择安装2号盘(4步骤中提及的): 6、选择第二盘的 文件夹然后确定再点击 开始安装2号盘: 7、看见了完成的曙光了,点击FINISH:
8、接下来点击EXIT,关闭安装窗口:
安装完后,开始装补丁以及破解部分: 1、点击打开2号盘的 文件夹,点击 安装补丁;
2、修改license.dat,(也在 文件夹中),将所有的XXXXXXXXXXXX替换为你的网卡MAC,并拷贝到Quartus II 6.0安装目录(默认为c:\altera)。
获取网卡MAC方法: 点击开始——>运行——>输入CMD——>在DOS窗口输入 ipconfig /all>Enter如下所示得到 就是你的MAC地址(注意替换时将连接符“—”去掉):
3、确定将新换的license.dat放好后,运行 Quartus_II_6.0+SP1_B202_dll破解器(也在 文件夹中)。点击浏览指定sys_cpt.dll的路径C:\altera\quartus60\win: 点击应用,出现下图的话表示破解成功,点击确定:
4、运行Quartus II出现下图框提示,点击 然后OK : 出现如下框图找到你放的license.dat完成破解安装接下来就能用了
附录B QuartusII 6.0使用说明书1、启动Quartus II,方法有两种,用户可以任选其一。 1)开始→所有程序|Alteta → Quartus II 6.0 → Quartus II 6.0,如下图1所示。 2)单击桌面的快捷方式,也可以启动,如下图2所示。 图 1 图 2 2、新建工作项目 图 3 Quartus II 6.0 的工作界面 1)打开新建项目指南,File→New Project WiZard…;如下图4所示。 图 4 2)弹出以下对话框,点击Next>即可,如下图5所示。 注:如果勾选了Don’t show me this introduction again 前面的复选框,则以后不会出现该对话框,而直接进入图6所示的对话框。 图5 3)设置项目的存放目录、名称和顶层设计名称。如图6所示设置后,点击Next>即可进入下一个选项的设置;若不需要进行其他设置,可以点击Finish结果设置(不推荐)。 图 6 4)添加源文件和用户库,若没源文件和用户库可直接点击Next>进入下一个项目的设置。 图 7 5)选择芯片型号,此步很重要,要根据CPLD的具体的型号来选择。本CPLD系统开发板选用的Altera公司的MAX3000A系列的EMP3128ATC144-10的芯片,如图8设置即可,设置完成后。点击Next>进入下一组选项的设置。 图 8 6)选择EDA工具,若不需要,则可点击Next>跳过,如下图9所示。 图9 7)核实项目设置,如图10所示,列出了您之前所设置的相关信息,若无误点击Finish即可生成一个新的项。 图 10 3、新建一个VHDL源文件。 1)如图11所示,点击 File→New…后弹出如图12所示的源文件类型选项框,选择VHDL File 然后点击OK即可。或单击工具栏上的图标 。 图 11 图 12 2)保存文件,点击File→Save,如图13所示。然后如图14所示的对话框,点击“保存(S)”即可。或单击工具栏上的图标 。 图 13 图14 4、VHDL语言输入与编译 1)如图15所示,在VHDL文本编辑区输入下图所示的文本(一个5输入的与门)。 注:①要采用英文半角符号。 ②文件的实体名要与文件名一致。 ③’0’(零)与O(欧)的的区别。 例程: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
ENTITY test IS PORT( a,b,c,d,e:IN STD_LOGIC; q:OUT STD_LOGIC ); END test;
ARCHITECTURE CHENG OF test IS BEGIN PROCESS(a,b,c,d,e) VARIABLE state:std_logic; VARIABLE delay:time; BEGIN state:=a and b and c and d and e; IF state ='1' THEN delay:=4.5 ns; ELSIF state ='0' THEN delay:=3ns; ELSE delay:=4ns; END IF; q<=state AFTER delay; END PROCESS; END CHENG; 图 15 2)全编译文件,如图16所示,点击Processing → Start Compilation即可。或单击工具栏上的图标 。若编译通过则如图17所示。否则编译不能通过,可根据信息提示的信息修改输入,再编译,直到成功为止。 图16 图 17 3)配置IO管脚。点击Assignments→Pins 如图18所示。然后弹出如图19所示的IO管脚配置对话框。或单击工具栏上的图标 。 图 18 根据本CPLD系统开发的原理图所示,选用拨动开关做为与门的输入,LED作为输出。则对5输入与门的管脚分配如下:a~e:PIN_?~PIN_?,q:PIN_?。如图19所示。 图19 设置完毕后,进行全编译如图16所示,若能通过,则可以进入下载阶段,否则重新设置IO管脚,再编译,直至成功为止。 5、文件下载 在文件下载之要确保下载线与计算机和CPLD开发板连接好,开发板上电,且电源指示的全亮。 在文件编译成功的前提下,进行如下操作: 1)点击Tools→Progammer。如图20所示。或单击工具栏上的图标 。然后弹出如图21所示的下载对话框。 图 20 2)点击Hardwar Setup弹出如图21所示的设置对话框,选择USB-Blaster,设完后点colse关闭对话框即可。 图 21 3)下载,选中要下载的文件,勾选这Program/Configue和Verify下的复选框后,如图22所示,点击Stat即可。 图22 若下载不能成功,且出现如图23所示的错误提示信息,则可能是下载线与CPLD系统板没有接好,或者是电源没有接好,在排除错误后,再点击Start重新下载即可。 图23
完整的Word格式文档51黑下载地址:
DICE-DS01配51开发板的实验指导书.doc
(4.61 MB, 下载次数: 8)
|