找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2795|回复: 1
收起左侧

DICE-DS01配51单片机开发板的实验指导书下载

[复制链接]
ID:426405 发表于 2018-11-14 15:53 | 显示全部楼层 |阅读模式
目   录
第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板上)

下面分别介绍各个单元:

1CPU板接口
              该实验系统采用外设底板加CPU最小系统板的结构方式,CPU通过双排针扩展槽扩展。用户可根据自己的需求选用不同类型的CPU板。不同类型的CPU板在实验箱的硬件资源上是完全兼容的。支持不同种类的CPU板混合使用。
CPU最小系统板主要由以下几个模块组成:
☆              CPU芯片部分
☆              时钟产生部分
☆              复位电路部分
☆              扩展接口部分
☆              电源变换部分
☆              UART接口部分
☆              USB主从接口部分(部分CPU具有
☆              以太网接口部分(部分CPU板)
EXP-89S51CPUPCB布局图,如图1-2所示
1-2外观和接口示意图
1-1接口说明
序号
1
2
3
4
5
含义
CPU
扩展接口
P1
电源接口
POWER
UART接口
+5V电源指示灯
序号
6
7
8
9
10
含义
扩展接口
P2
扩展接口
P4
复位按钮
RST
串口复用跳线
ISP下载口
ISP下载口EXP-89S51的JISP下载口,符合51接口标准,引脚分配图如下图1-3所示:(PCB中的方形焊盘为第一脚)
1-3ISP下载口管脚定义
POWER电源接口,CPU板单独使用时,从此接口给CPU板供电,+5V,内正外负。CPU板插在实验箱底板上时,不需要从POWER电源插口供电
RST复位按钮,按下系统复位。
P1:CPU数据地址总线扩展接口。
1-2P1管脚定义
编号
定义
备注
1
DGND
数字地
2
DD0/I/O
数据总线0/通用双向I/O口
总线双向数据线
3
DD1/I/O
数据总线1/通用双向I/O口
4
DD2/I/O
数据总线2/通用双向I/O口
5
DD3/I/O
数据总线3/通用双向I/O口
6
DD4/I/O
数据总线4/通用双向I/O口
7
DD5/I/O
数据总线5/通用双向I/O口
8
DD6/I/O
数据总线6/通用双向I/O口
9
DD7/I/O
数据总线7/通用双向I/O口
10
DD8/I/O
数据总线8/通用双向I/O口
11
DD9/I/O
数据总线9/通用双向I/O口
12
DD10/I/O
数据总线10/通用双向I/O口
13
DD11/I/O
数据总线11/通用双向I/O口
14
DD12/I/O
数据总线12/通用双向I/O口
15
DD13/I/O
数据总线13/通用双向I/O口
16
DD14/I/O
数据总线14/通用双向I/O口
17
DD15/I/O
数据总线15/通用双向I/O口
18
DGND
数字地
19
A17/I/O
地址总线17/通用双向I/O口
总线中的地址线
20
A16/I/O
地址总线16/通用双向I/O口
21
A19/I/O
地址总线19/通用双向I/O口
22
A18/I/O
地址总线18/通用双向I/O口
23
A1/I/O
地址总线1/通用双向I/O口
24
A0/I/O
地址总线0/通用双向I/O口
25
A3/I/O
地址总线3/通用双向I/O口
26
A2/I/O
地址总线2/通用双向I/O口
27
A5/I/O
地址总线5/通用双向I/O口
28
A4/I/O
地址总线4/通用双向I/O口
29
A7/I/O
地址总线7/通用双向I/O口
30
A6/I/O
地址总线6/通用双向I/O口
31
A9/I/O
地址总线9/通用双向I/O口
32
A8/I/O
地址总线8/通用双向I/O口
33
A11/I/O
地址总线11/通用双向I/O口
34
A10/I/O
地址总线10/通用双向I/O口
35
A13/I/O
地址总线13/通用双向I/O口
36
A12/I/O
地址总线12/通用双向I/O口
37
A15/I/O
地址总线15/通用双向I/O口
38
A14/I/O
地址总线14/通用双向I/O口
39
+5V
主电源
40
+5V

P2:CPU外设总线扩展接口
1-3P2管脚定义
编号
定义
备注
1
DGND
数字地
2
DGND
3
READY / I/O
准备好/通用I/O
4
PS / I/O
程序空间片选信号
5
DS / I/O
数据空间片选信号
6
IS / I/O
地址空间片选信号
7
R/W0 / I/O
读写信号0
8
/CE1 / I/O
外部存储器选中信号1
9
/CE0 / I/O
外部存储器选中信号0
10
MSC
微状态完成信号
11
XF/XPLLDSIS
I/O输出口
12
/BHOLDA
外部DMA保持确认信号
13
IAQ
指令地址采集信号
14
HOLD
外部DMA保持请求信号
15
BIO / I/O
I/O输入信号
16
DGND
数字地
17
SPICLK2 / I/O
SPI2时钟信号/通用I/O(TXD1)
18
SPICLK1 / I/O
SPI1时钟信号/通用I/O
19
SPISTE2 / I/O
SPI2从动发送使能/通用I/O(RXD2)
20
SPISTE1 / I/O
SPI1从动发送使能/通用I/O
21
SOMI2 / I/O
SPI2从出主入/通用I/O(TXD1)
22
SOMI1 / I/O
SPI1从出主入/通用I/O
23
SPICLK2 / I/O
SPI2时钟信号/通用I/O(RXD1)
24
SPICLK1 / I/O
SPI1时钟信号/通用I/O
25
SPISTE2 / I/O
SPI2从动发送使能/通用I/O(TXD0)
26
SPISTE1 / I/O
SPI1从动发送使能/通用I/O
27
SIMO2 / I/O
SPI2从入主出/通用I/O(RXD0)
28
SIMO1 / I/O
SPI1从入主出/通用I/O
29
NMI
不可屏蔽中断信号
30
IACK
中断响应信号
31
INT1/TA0/ TICTRIP / I/O
外部中断1/捕捉0/定时器1比较器输出/通用I/O
32
INT0/TACLK / I/O
外部中断0/定时器A时钟/通用I/O
33
INT3/TA2 / I/O
外部中断3/捕捉2/通用I/O
34
ADCSOC/INT2 / I/O
外部中断2/ADC转换启动 /通用I/O
35
CLKOUT
CPU时钟输出
36
TOUT
定时器1输
37
C6TRIP / I/O
比较单元6输出
38
RESET
复位信号
39
DGND
数字地
40
DGND

P4:总线输入输出接口
1- 4P4管脚定义
编号
定义
备注
1
CAP0 / I/O
捕获引脚0/通用I/O
2
CAP1 / COMPIN+/I/O
捕获引脚1/外部比较器输入端+/通用I/O
3
CAP2 /COMPIN-/ I/O
捕获引脚2/外部比较器输入端-/通用I/O
4
COMPOUT / I/O
外部比较器输出端/通用I/O
5
SDA / I/O
IC数据接口/通用I/O
6
SCL / I/O
IC时钟接口/通用I/O
7
PWM0 / I/O
PWM输出0/通用I/O
8
PWM1 / I/O
PWM输出1/通用I/O
9
PWM2 / I/O
PWM输出2/通用I/O
10
PWM3 / I/O
PWM输出3/通用I/O
11
LCDD0 /I/O
LCD数据线0/通用I/O
12
LCDD1 /I/O
LCD数据线1/通用I/O
13
LCDD2 /I/O
LCD数据线2/通用I/O
14
LCDD3 /I/O
LCD数据线3/通用I/O
15
LCDD4/I/O
LCD数据线4/通用I/O
16
LCDD5 /I/O
LCD数据线5/通用I/O
17
LCDD6 /I/O
LCD数据线6/通用I/O
18
LCDD7 /I/O
LCD数据线7/通用I/O
19
T1PWM/PWM4
PWM输出/ PWM输出4
20
REQ / I/O
LCD请求信号/通用I/O
21
T2PWM/PWM5
PWM输出/ PWM输出5
22
BUSY / I/O
LCD应答信号/通用I/O
23
TDIRA / I/O
定时器方向/通用I/O
24
TDIRB / I/O
定时器方向/通用I/O
25
TCLKINA
时钟输入A (外部定时器0)
26
CANTX 0
CAN 0发送数据引脚
27
CADC0 / I/O
模数转换0通用I/O口
28
CADC1 / I/O
模数转换1/通用I/O口
29
CADC2 / I/O
模数转换2/通用I/O口
30
CANRX 0
CAN 0接收数据引脚
31
CANTX 1
CAN 1发送数据引脚
32
CANRX 1
CAN 1接收数据引脚
33
CDAC0 / I/O
CPU内部数模转换0/通用I/O口
34
CDAC1 / I/O
CPU内部数模转换1/通用I/O口
35
CADC3 / I/O
模数转换3/通用I/O口
36
CADC4 / I/O
模数转换4/通用I/O口
37
CADC5 / I/O
模数转换5/通用I/O口
38
IISCDCLK / I/O
IIS编解码时钟/通用I/O
39
IISDO / I/O
IIS数据输出/通用I/O
40
IISLCK / I/O
IIS时钟/通用I/O
41
IISLRCK / I/O
IIS通道选择时钟/通用I/O
42
IISDI / I/O
IIS数据输入/通用I/O
43
VREFHI
AD输入高电平参考
44
VREFLO
AD输入低电平参考
45
RD / I/O
读信号线/通用I/O
46
WE / I/O
写使能信号线/通用I/O
47
DGND
数字地
48
+5V
主电源

LED指示灯:D1:程序运行灯、D2:+3.3V。

2E_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外扩看门狗电路图
5IC卡模块
该模块主要完成 I2C总线读写IC卡的实验,既可以采用GPIO口模拟I2C时序的方式也可以采硬件I2C的方式,具体取决于所选择的MCU是否自带I2C控制器。原理图如图1-8所示:


1-8 IC卡电路图
6RS485模块
该模块主要完成485通信实验,由MAX485芯片完成485电平的转换。电路图如图1-9所示:


1-9RS485电路图
7、温度采集模块
该模块采用单总线通信方式的数字温度传感器DS18B20实时采集当前的温度。电路图如图1-10所示:


1-10DS18B20电路图
8A/D转换模块
                 该模块主要完成模拟量与数字量的转换,使用TI的TLC2543芯片,该芯片是12位的串行A/D转换芯片,采用SPI的通信模式,电路图如图1-11所示:



1-11 A/D转换电路图
9D/A转换模块
该模块主要完成数字量与模拟量的转换,使用TI的TLC5616芯片,该芯片是12位的串行D/A转换芯片,采用SPI的通信模式,电路图如图1-12所示:


1-12 DA转换电路图
10CAN总线模块
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电路图
18LCD模块
              该模块采用台湾晶采公司生产的AM176220JTNQW-00真彩液晶,该液晶参数为262K色,176X220像素,2.0寸液晶,在实验箱上采用8位数据线与5根控制线的方式驱动该液晶显示字符。实验箱上的拨码开关K33为液晶的背光开关,KT1为液晶电源开关,使用的时候将两个拨码开关拨到上侧,不使用的时候均拨到下侧,达到节约资源的目的。电路图如图1-22所示:


1-22  TFT 2.0真彩液晶电路图
1916X16LED阵显示模块
              该模块主要显示汉字的功能。采用两片74LS138控制行信号,两片74LS595传送数据,实现串入并出的方式,这样可以节省MCU的GPIO口。74LS138控制的行给低电平,数据位给高电平的时候对应的点会点亮。驱动电路图如图1-23所示:






1-23  16X16 LED点阵显示行列驱动电路
20、其它接口说明
电源单元:为系统提供+5V、+12V、-12V、+3.3V的电源,其中+3.3V的电源已经在实验箱底板上用红色LED(POWER)灯指示出来。
时钟单元:采用我公司现成的时钟模块,通过接插件连入实验箱的底板上,看丝印注释选择相应的拨码开关状态即可获得所需的时钟输出。可作EDA部分的时钟输入。



第2章  开发环境安装使用说明一、KeilC51集成开发环境的安装
1Keil 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   外扩WDGMAX705)实验
目的:学习外扩看门狗控制器的使用方法。
内容:配置外扩看门狗电路。
设备: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部分二号孔的对应关系表
二号空名称
51芯片管脚
备注
IO1
P0.0

IO2
P0.1

IO3
P0.2

IO4
P0.3

IO5
P0.4

IO6
P0.5

IO7
P0.6

IO8
P0.7

IO9
NC

IO10
NC

IO11
NC

IO12
NC

CAP0
P1.0

COMP+
NC

COMP-
NC

COMPOUT
NC

SDA
P1.1

SCL
P1.2

PWM0
P1.3

PWM1
NC

PWM2
NC

PWM3
NC

T0
P3.4

CADC0
P1.4

CDAC0
P1.5

CANRX
NC

CANTX
NC

SPICLK
P1.6

SPISTE
P1.7

SOMI
NC

SIMO
NC

TXD
P3.1

RXD
P3.0
板子上的跳线帽JP2短接在下侧
INT0
P3.2

INT1
P3.3

T1
P3.5

RST
RST
















第4章  基于Altera CPLD系统设计实验

一、EXP-EPM3128 CPU板卡上的CPLD芯片引脚与实验箱上标示的对应表:

标示
引脚
标示
引脚
标示
引脚
标示
引脚
IO1
132
IO9
15
IO17
109
IO24
53
IO2
134
IO10
25
IO18
113
IO25
55
IO3
137
IO11
83
IO19
118
IO26
IO4
143
IO12
88
CLK
117
IO27
125
IO5
6
IO13
98
IO20
127
IO28
128
IO6
8
IO14
102
IO21
IO29
70
IO7
9
IO15
101
IO22
141
IO30
72
IO8
11
IO16
106
IO23
41
IO31
80

二、说明及注意事项:

每次实验完成后,请一定将芯片内下载的实验程序擦除!以防上次定义的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

4VHDL语言输入与编译

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/ConfigueVerify下的复选框后,如图22所示,点击Stat即可。
图22
    若下载不能成功,且出现如图23所示的错误提示信息,则可能是下载线与CPLD系统板没有接好,或者是电源没有接好,在排除错误后,再点击Start重新下载即可。
图23


完整的Word格式文档51黑下载地址:
DICE-DS01配51开发板的实验指导书.doc (4.61 MB, 下载次数: 8)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:426726 发表于 2018-11-15 09:14 来自手机 | 显示全部楼层
资料挺全的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表