单片机实验报告 附含说明书
更新时间:2024-06-19 22:24:01 阅读量: 综合文库 文档下载
- 单片机实验报告推荐度:
- 相关推荐
第一章 DICE-5208K开发型单片机综合实验仪概述
一、系统简介
DICE-5208K型单片机实验系统由DICE-5208K开发型单片机综合实验箱、DICE-3000型仿真器、扩展卡和DICE-51仿真开发系统软件等组成。是《MCS-51单片机原理与接口》、《单片机控制技术》、《C8051Fxxx高速SOC单片机原理及应用》、《EDA》、《VHDL硬件描述语言》、《CPLD/FPGA应用基础》等课程教学的配套实验设备。新增加了几乎所有最实用、新颖的接
2
口电路(如1 WIRE /IC/SPI总线等)和通讯类接口实验(如USB2.0通讯/TCP/IP网络通讯/CAN总线/红外线收发等)。可进行MCS-51、C8051F嵌入式单片机、CPLD/FPGA等课程的开放式实验教学。
二、主要特点
1.该实验系统配置DICE-3000型高性能MCS-51硬件仿真器,64K数据空间,64K程序空间全部开放,不占用CPU资源,采用双CPU模式,仿真CPU和用户CPU独立运行,上位仿真软件支持汇编、C语言、PL/M语言。可运行于WIN98/2000/NT/XP操作系统平台。
2.实验系统带有ISP在线下载电路,学生在完成实验后可脱离仿真机和PC机独立运行学生自行设计的单片机系统。(可在线编程AT89S51/52/53系列单片机)。
3.该实验系统可扩展C8051F020嵌入式实验开发模块, 并配有DICE-EC5型USB高速通讯仿真器,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试、仿真;集成开发环境支持Silicon Labs IDE和KEIL C软件。
4.该实验系统可扩展CPLD/FPGA模块,并配有相应的并口下载电路,轻松变成一台EDA实验开发平台。
5.该实验系统可扩展“数控式电子演示装置”,该装置是本公司的专利产品,结合上位演示软件和USB接口,可为该实验系统扩展多达十五个生动、形象、复杂的实验,其中大部分是闭环实验,实验践性非常强。
6.实验电路单元尽可能独立开放,如开放式键盘, 开放式显示器,开放式串口等,为适应多种方式实验提供可能。
三、系统地址分配
1.I/0地址分配
1
地 址 扩展名称 用 途 8000H ~ 8FFFH 自定义 实验用口地址 9000H ~ 9FFFH 自定义 实验用口地址 0A000H~0AFFFH 自定义 实验用口地址 0B000H ~ 0BFFFH 自定义 实验用口地址 0C000H~ 0CFFFH 自定义 实验用口地址 0D000H ~ 0DFFFH 自定义 实验用口地址 0E000H ~ 0EFFFH 自定义 实验用口地址 0F000H ~ 0FEFFH 自定义 实验用口地址 0FF20H 8155控制口 写方式字 0FF21H 8155PA口 字位口 0FF22H 8155PB口 字形口 0FF23H 8155PC口 键入口 0FF28H 8255PA口 扩展用 0FF29H 8255PB口 扩展用 0FF2AH 8255PC口 扩展用 0FF2BH 8255控制口 写方式字 2.存储器地址分配 地 址 器 件 用 途 0000H ~ 0FFFFH AT89S52/27C512 用户程序空间 0000H ~ 7FFFH 62256 用户数据空间 2
第二章 开发环境简介
一、硬件安装
1.DICE-5208K(MCS-51单片机)硬件安装说明 (F1区)
首先用串行通讯电缆连接DICE-3000型仿真器串行口和PC机串行口,然后用34芯扁平线连接DICE-3000型仿真器和5208K开发型单片机综合实验仪的JF_1仿真接口。将5208K开发型单片机综合实验仪上的KB1开关设置在“一般模式”,KB2开关用两个短路块插在‘1’和‘2’(MCS-51)位置。从而完成实验系统与PC机的联机。
*注:实验系统上的CZ11串行口(F5区)为用户实验串行口。 2.系统开关设置 (F1区)
(1)SW1(EA端):程序空间选择开关,SW1→IP,选择CPU内部(一般不设置此模式,如果将目标程序通过烧写器写入单片机内部FALSH ROM中,要运行写入的程序时需设置到该模式,一般用于工程人员的目标系统开发),SW1→UP(出厂模式),选择CPU外部,此时可脱机运行EPROM中固化的程序,也可用仿真器进行联机实验。(用短路块选择)
(2)SW3、SW4、SW5:为键盘/显示选择开关,开关置ON(出厂模式),键盘/显示控制选择系统配置的8155接口芯片,反之由用户选择自定义的I/O接口芯片控制,在本机实验中,除8279实验外,键盘/显示为出厂模式。
(3)KB1开关:KB1开关有两种工作模式,平时都工作在“一般模式”,当我们用到单片机ISP在线编程功能时,将KB1开关打在“编程模式”。(ISP在线可编程AT89S系列单片机)。 (4)KB2 开关(用短路块实现):为 “MCS-51系统”与“C8051F系统”读写信号切换开关。当使用“MCS-51系统”时,将两个短路插在‘1’和‘2’位置,使用“C8051F系统”时,将两个短路块插在‘2’和‘3’位置。
(5)仿真器所接实验系统的JF_1 (IDC34)口为系统通讯口,用于程序的仿真、连接、装载 。而实验系统的CZ11口为用户实验通讯口,用于实验系统与PC机之间的串行口通讯实验。
二、DICE-51仿真器软件安装步骤
1.DICE-51仿真器软件安装步骤
(1)将所配光盘放入光驱,双击我的电脑,然后双击光盘驱动器图标; (2)双击 DICE-5208K开发型单片机综合实验仪文件夹; (3)双击MCS-51系统资料文件夹; (3)双击DICE-51仿真开发系统.exe;
(4)按界面上的提示(下一步)进行操作直到安装结束。 2. 选择通讯端口
双击桌面上的“DICE-51仿真开发系统”图标启动程序运行,根据弹出的对话框选择与仿真器实际连接的串行通讯端口即可。
3
3.仿真模式的选择
在调试程序前您必须设置仿真模式,其中包括仿真CPU、RAM与ROM的选择等。具体操作是打开“设置/仿真模式”对话框,当完成仿真模式的设置后单击“确认”。
联机实验时的设置如下:
CPU:选8031/8032 RAM:选用户RAM ROM:选系统ROM
脱机实验时,从矩阵键盘模块输入相应实验序号(如实验一,输入“01”),再按F0/EX即可运行该实验程序。
4
三、菜单及其命令简介
1. 文件菜单
新文件(N) Ctrl+N:建立一个新的源文件。
打开文件(O) Ctrl+O:弹出对话框,选取列表中的文件或在输入框输入文件名,
单击“打开”,文件编辑窗口即显示该文件内容。
关闭(C):关闭当前的活动窗口。
存储(S):将当前编辑窗口中的文件存到磁盘上。
另存为(A):将当前编辑窗口中的文件换成另一个文件名再存盘。 输出列表文件:将当前ROM地址空间的代码保存为.LST列表文件。
保存程序区?:弹出文件列表对话框,输入要保存的文件名并单击“保存”。 保存数据区?:弹出文件列表对话框,输入要保存的文件名并单击“保存”。 退出(E) Alt+X:执行该命令可退出DICE-51仿真系统。
2.编辑菜单
取消操作(U) Ctrl+Z:使用该命令能恢复文件编辑中最后一次所做的修改。 剪切(T) Ctrl+X:清除编辑窗口中选定的文件,并放置在剪贴板上。只有在选定文
本后,这一命令才有效。放置在剪帖板上的文件始终保留在那里,直到新内容替换掉它们。
复制(C) Ctrl+C:使用该命令可将选定的文本复制到剪贴板上。只有在选定文本
后,这一命令才有效。复制到剪贴板上的文本将替换掉先前的内容 。
粘贴(P) Ctrl+V:使用该命令可以将剪贴板内容插入到当前编辑窗口的光标位置。
如果在编辑窗口中已选定内容。使用该命令可用剪贴板上的内容替换掉选定的内容。如果剪贴板上无内容,这一命令将是无效的。
查找(S)? Ctrl+F:使用该命令可以在当前编辑窗口中查找文本字符串。该命令
包含两参数,您可选择使用:Whole Word 整字匹配、Match Case 区分大小写。
查找下一个 Ctrl+L:使用该命令可以继续查找在“查找”命令中指定的文本。
跳到行? Ctrl+G:使用该命令可以跳转到编辑窗口中指定的行。 字体(F):对编辑窗口中的文本进行字体、字号、颜色等设置。 刷新(R):重新显示当前编辑窗口。
5
3. 编译菜单
文件编译、连接:对当前编辑窗口源文件或当前工程组进行编译、连接,生成目标代码。 文件编译、连接、装载 Ctrl+F9:对当前编辑窗口源文件或当前工程组进行编译、连
接,并将生成的目标代码装入ROM。
装载(L) F3:将磁盘上存在的目标代码直接装入ROM。
浏览模块(B)? Ctrl+F3:该命令可在调试窗口中浏览源文件内容,通常适用于
浏览工程组中的源文件。
编译选项(J)?:使用该命令您可设置源文件编译的各选项。
4.调试菜单
连续运行(G) F9:执行该命令便开始连续运行用户程序,当遇到断点或按下Esc
暂停键时停止。
运行到指定地址(A)?:以连续方式运行程序,运行到指定的地址停下。如果在源文件方式下调试,可以选择符号地址。
运行到光标处(C) F4:以连续方式运行程序,运行到光标所在行停下。如果光标
移在非执行语句行,将不响应此命令。
单步运行(S) F7:逐步运行用户程序,遇到调用子程序,则跟踪进入子程序运行。 宏单步运行(O) F8:逐步运行用户程序,遇到调用子程序,一步执行完整个过程
而不进入子程序运行。
自动单步:以连续单步方式运行用户程序。 自动宏单步:以连续宏单步方式运行用户程序。
增加变量? Ctrl+F5:将程序中想要观察的变量增加到变量窗口,在程序运行时您要随时观察变量的内容。
设置或清除断点 Ctrl+F8:当光标移到调试窗口可执行语句行时,可以用该命令设
置断点,重复该命令也可清除断点。技巧:将鼠标移到调试窗口的可执行语句行左侧,单击鼠标即可设置断点。重复此操作也可清除断点。
浏览断点?:执行此命令即弹出对话框,您可通过对话框查看断点个数、断点所在的模块、断点地址、断点在源文件中的行号,您也可用此命令增加或清除断点。
清除所有断点:该命令可清除各个调试模块中所有设置的断点。
6
复位(R) Ctrl+F2:该命令可对(目标系统)CPU复位,同时将PC指针回复到装载
文件的初始值(如0000)。
重新开始运行(PC=0000):将当前PC置初始值(如0000)后再以连续方式运行。 暂停(O) Esc:该命令可停止当前程序的运行(适用于连续运行、自动单步/自动
宏单步运行方式),返回待令状态。
夭折处理(H):强制停下当前正在运行的程序。一般来讲,“暂停”命令即可停止,
如果正在运行和程序无法用“暂停”命令停止,可使用此命令。
设置PC?:将当前PC指针指向您输入的地址。如果在源文件方式下调试,可以选择符号地址。
PC=当前地址:将PC指针指向当前光标所在的可执行语句行。 用行断点进行调试:用行断点进行调试。
5.工程菜单
新建(N)?:打开文件列表框,创建新工程文件。
打开(O)?:弹出文件列表框,打开已存在的工程文件。
编辑(E)?:打开对话框,增加或删除工程中的文件。 关闭(C):关闭当前使用的工程文件。
文件列表?:打开工程文件列表对话框,可指定编辑工程中的源文件。
6.设置菜单
仿真模式(M)?:打开对话框,可对仿真CPU、RAM、ROM读写控制等选项进行设置。 通讯端口选择(P)?:选择与仿真器实际连接的通讯端口。
重新连接(C):通讯失败、检查硬件连接或重新选择通讯端口后,该命令可重新进
行通讯测试。
7.视图菜单
调试(D):打开程序调试窗口。如果未装载程序,可看到随机代码。 寄存器(R):打开寄存器窗口。您可对该窗口进行增加、删除操作。
存储空间1、存储空间2:IDE允许同时打开两窗口,可在该窗口切换查看程序存储器、数据存储器、CPU内部存储器、特殊寄存器等内容。
变量(V):打开变量窗口,可随时观察变量的变化。
编译连接信息:打开编译连接信息窗口,可查看源文件编译是否有错。
7
8.窗口菜单
层叠(C):以重叠方式排列已打开的窗口,但保持每窗口的标题栏都可见。 平铺(H):把已打开的窗口水平排列,使已打开的窗口都可见。 平铺(V):把已打开的窗口垂直排列,使已打开的窗口都可见。 前一窗口 F5:切换到前一窗口。 后一窗口 F6:切换到后一窗口。
关闭所有窗口(A):关闭所有已打开的窗口。
选择“窗口”菜单下已打开窗口的名称及编号可以激活该窗口。 9.帮助菜单
系统使用指南:可以打开DICE-51仿真器使用手册。 实验指导 8
实验一 彩灯控制实验
一、实验目的
(1)掌握MCS-51型单片机输入/输出端口的使用方法; (2)学习汇编语言的编程方法及调试技巧。
二、实验内容
根据K1(P3.0)、K2(P3.1)的状态,编程使P1口驱动的8位发光二极管按要求点亮。 要求:
(1)当K1(P3.0)=0、K2(P3.1)=0时,点亮方式为:L1(亮)、L2~L8(灭)→延时1秒→L2(亮)、L1、L3~L8(灭)→延时1秒→?→L8(亮)、L1~L7(灭)→延时1秒,不断循环;
(2)当K1(P3.0)=1、K2(P3.1)=0时,点亮方式为:L1、L2(亮)、L3~L8(灭)→延时1秒→L3、L4(亮)、L1、L2、L5~L8(灭)→延时1秒→?→L7、L8(亮)、L1~L6(灭)→延时1秒,不断循环;
(3)当K1(P3.0)=0、K2(P3.1)=1时,点亮方式为:L1(亮)、L2~L8(灭)→延时1秒→L1、L2(亮)、L3~L8(灭)→延时1秒→L1、L2、L3(亮)、L4~L8(灭)→延时1秒→?→L1~L8(亮)→延时1秒,不断循环;
(4)当K1(P3.0)=1、K2(P3.1)=1时,点亮方式为:L4、L5(亮)、L1~L3、L6~L8(灭)→延时1秒→L3、L6(亮)、L4、L5、L1~L2、L7、L8(灭)→延时1秒→?→L1、L8(亮)、L3~L7(灭)→延时1秒,不断循环。
三、实验接线图
9
四、实验程序框图
五、程序清单 文件名:DPJ01.ASM
ORG 0000H LJMP P010
ORG 0030H P010: MOV P3,#0FFH P011: MOV P1,#0FFH LCALL DELY
JB P3.0,P012 JB P3.1,P013 LCALL PRG1 ; P3.1=0,P3.0=0
AJMP P011
P012: JB P3.1,P014
LCALL PRG2
; P3.1=0,P3.0=1
10
P013:
P014:
PRG1: AJMP LCALL AJMP LCALL AJMP MOV LCALL P011
PRG3 ; P3.1=1,P3.0=0 P011
PRG4 ; P3.1=1,P3.0=1 P011
P1,#11111110B DELY
MOV LCALL MOV LCALL MOV LCALL MOV LCALL MOV LCALL MOV LCALL MOV LCALL
RET PRG2: MOV LCALL MOV LCALL MOV LCALL MOV LCALL
RET PRG3: MOV LCALL MOV LCALL MOV LCALL MOV
LCALL
P1,#11111101B DELY
P1,#11111011B DELY
P1,#11110111B DELY
P1,#11101111B DELY
P1,#11011111B DELY
P1,#10111111B DELY
P1,#01111111B DELY
P1,#11111100B DELY
P1,#11110011B DELY
P1,#11001111B DELY
P1,#00111111B DELY
P1,#11111110B DELY
P1,#11111100B DELY
P1,#11111000B DELY
P1,#11110000B DELY
11
MOV P1,#11100000B LCALL DELY
MOV P1,#11000000B LCALL DELY
MOV P1,#10000000B LCALL DELY
MOV P1,#00000000B LCALL DELY
RET PRG4: MOV P1,#11100111B LCALL DELY
MOV P1,#11011011B LCALL DELY
MOV P1,#10111101B LCALL DELY
MOV P1,#01111110B LCALL DELY
RET DELY: MOV R7,#10 DEL0: MOV R6,#200 DEL1: MOV R5,#250 DEL2: DJNZ R5,DEL2 ;250×2us =500us DJNZ R6,DEL1 ;200×500us=100ms DJNZ R7,DEL0
;10×100ms=1s
RET END
六、实验步骤
(1)将P3.1、P3.0用导线连至拨动开关K2、K1,将P1.7~P1.0用导线连至L8~L1;(2)拨动K2、K1选择好LED灯的点亮方式;
(3)观察LED灯的点亮情况是否与开关的状态一致。
七、思考题
如何修改程序,可实现更多不同的二极管点亮方式。
12
实验二 定时/计数器实验(脉冲计数)
一、实验目的
熟悉单片机内部定时/计数器的功能,掌握定时/计数器的初始化编程方法。
二、实验内容
将定时/计数器T0设为计数器方式,对外部输入(P3.4)的脉冲序列进行计数,并送显示器显示。计满数时,将P1.0置为低电平发出提示信号,延时后恢复P1.0为高电平。
三、实验接线图
将P3.4接C2区(单脉冲与时钟模块)的“二极管输出模块)的L1端。
”或“
”端,P1.0接E5区(发光
单脉冲电路
四、实验程序框图
13
主程序及中断服务程序流程图
五、程序清单 文件名:DPJ02.ASM
ORG 0000H LJMP MAIN ORG 000BH
LJMP TINT ;转中断服务程序
ORG 0100H
MAIN: MOV SP,#53H ;设置堆栈
MOV R0,#79H ;显示缓冲区清零 MOV R7,#06H
MOV A,#00H DIPP: MOV @R0,A INC R0
DJNZ R7,DIPP SETB P1.0
MOV TMOD,#06H ;置T0工作方式 MOV TH0,#0FBH
MOV TL0,#0FBH ;计数初值送计数器
14
XIAN: SETB ET0 ;允许T0中断 SETB EA ;CPU开中断 SETB TR0 ;启动T0 MOV A,TL0 SUBB A,#0FAH ANL A,#0FH MOV 79H,A LCALL DIS
AJMP XIAN ; DIS: PUSH DPH PUSH DPL SETB RS1
MOV P2,#0FFH
MOV A,#43H MOV R1,#20H ;FF20H MOVX @R1,A
MOV R1,#21H ;FF21H MOV A,#0FFH ; MOVX @R1,A
MOV R0,#7EH ; MOV R2,#20H ;00100000B MOV R3,#00H
MOV DPTR,#LS0
LS2: MOV A,@R0 ; MOVC A,@A+DPTR ; MOV R1,#22H ;8155PB MOVX @R1,A ; MOV A,R2 ; DEC R1 ; CPL A ; MOVX @R1,A ; CPL A
DEC R0 ;LS1: DJNZ R3,LS1 ; CLR C
RRC A ; MOV R2,A ; JNZ LS2 ;
INC R1 ;
;8155循环显示计数值 的定时器停止计数,PA、PB输出,PC输入为8155控制口地址 为8155PA口地址(字位口) 关显示 显示缓冲区首地址送R0
(位选码)从右向左显示 取待显示的数据 查表(段码)
口地址(字形口) 输出段码 取位选码 指向8155PA口
位选码取反(外部有反向驱动器75451) 输出位码 取下一位数据 延时 修改位选码(准备显示下一位数据) 保存
六位显示完否? 指向8155PB口
15
MOV A,#0FFH ;关显示 MOVX @R1,A CLR RS1 POP DPL POP DPH RET
LS0: DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;012345 DB 82H,0F8H,80H,90H,88H,83H,0C6H ;6789Abc DB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH ;dEF灭PH.-
TINT: CLR P1.0 ;中断服务程序 LCALL DELY
SETB P1.0
RETI
DELY: MOV R7,#10 ;延时程序 DEL0: MOV R6,#200 DEL1: MOV R5,#250
DEL2: DJNZ R5,DEL2 ;250×2us =500us DJNZ R6,DEL1 ;200×500us=100ms DJNZ R7,DEL0 ;10×100ms=1s RET END
六、实验步骤
1.执行程序,按动单脉冲产生按钮(AN0),观察数码管上的计数值是在按钮按下时加“1”还是在按钮松开时计数数值加“1”。
2.观察发光二极管L1在单脉冲产生按钮(AN0)按动多少次时发生变化。
七、思考
1.计数器是在外部输入脉冲的上升沿还是下降沿加“1” 计数的。 2.外部输入的计数脉冲的频率最高不得超过单片机振荡频率的多少倍?
16
实验三 可编程I/O接口芯片8255实验
一、实验目的
1.掌握单片机系统中扩展可编程I/O接口芯片8255的方法; 2.掌握可编程I/O接口芯片8255的初始化编程方法。
二、实验内容
将8255 PA口设置为输入,接一组拨动开关。将PB口设置为输出,接一组发光二极管。将PC口设置为输出,PC0接一蜂鸣器。编程将PA口所接拨动开关的状态在PB口所接的发光二极管上显示出来。当PA口的值为FFH和00H时,蜂鸣器响,当PA口的值为其他值时,蜂鸣器关闭。
三、实验程序框图
17
8255 PC0与蜂鸣器的接口电路
8051与8255的接口电路
18
四、实验接线图
8255PA口与拨动开关的接口电路
8255PB口与发光二极管的接口电路
19
五、程序清单 文件名: DPJ03.ASM
MAIN: LOOP:
ORG LJMP ORG MOV MOV MOVX MOV MOVX INC
MOVX
CJNE SJMP
LOFF: CJNE L034: MOV
MOV MOVX SJMP
LOOW: MOV MOV
MOVX
SJMP END
0000H MAIN 0100H
DPTR,#0FF2BH A,#90H @DPTR,A DPTR,#0FF28H A,@DPTR DPTR @DPTR,A A,#00H,LOFF L034
A,#0FFH,LOOW DPTR, #0FF2BH A,#00H @DPTR,A LOOP
DPTR,#0FF2BH A,#01H @DPTR,A LOOP
;FF2BH为8255控制口地址 ;90H为控制字
;PA口方式0输入、PB、PC方式0输出 ;FF28H为8255 PA口地址 ;读拨动开关状态
;FF29H为8255 PB口地址 ;显示拨动开关状态 ;与设定状态00H比较
;与设定状态FFH比较
;开关的状态为00H或FFH时开蜂鸣器 ;01H为PC0置位控制字 ;开蜂鸣器
;开关的状态非00H或FFH时关蜂鸣器 ;00H为PC0复位控制字
六、实验步骤
8255 PA口接K1~K8,PB口接L1~L8运行程序,PC0接蜂鸣器输入端SP。运行程序,拨动K1~K8,观察L1~L8发光二极管是否对应点亮,蜂鸣器在PA口的值为FFH和00H时,是否会响。
七、思考
修改程序,8255 PB口接K1~K8,PA口接L1~L8运行程序,PC6接蜂鸣器输入端SP。运行程序,拨动K1~K8,观察L1~L8发光二极管是否对应点亮,蜂鸣器在PA口的值为FFH和00H时,是否会响。
20
实验四 ADC0809实验
一、实验目的
1.了解模/数转换器ADC0809的工作原理及性能; 2.掌握单片机与ADC0809的接口及编程方法; 3.通过实验了解单片机如何进行数据采集。
二、实验内容
利用实验系统上的ADC0809做A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,通过数码管显示出来。
三、实验接线图
四、实验程序框图
21
五、程序清单 文件名:DPJ04.ASM
ORG 0000H LJMP SE11 ORG 0590H SE11: MOV SP,#53H MOV P2,#0FFH MOV A,#43H MOV DPTR,#0FF20H MOVX @DPTR,A
MOV 7EH,#00H MOV 7DH,#08H MOV 7CH,#00H MOV 7BH,#09H MOV 7AH,#10H MOV 79H,#10H LO18: LCALL SSEE MOV A,#00H
MOV DPTR,#8000H MOVX @DPTR,A L019: JNB P3.2,L019 MOVX A,@DPTR
;命令字(停止计时,PA、PB输出,PC输入) ;FF20H为8155控制口地址 ;‘0’ →7EH ;‘8’ →7DH ;‘0’ →7CH ;‘9’ →7BH ;‘灭’→7AH ;‘灭’→79H ;调显示子程序
; 8000H为A/D转换器地址 ;启动A/D转换 ;读转换结果
22
MOV R0,#79H ;显示缓冲区首地址→R0 LCALL PTDS ;调拆字子程序 SJMP LO18
PTDS: MOV R1,A ;拆字子程序 ACALL PTDS1 MOV A,R1 SWAP A
PTDS1: ANL A,#0FH MOV @R0,A INC R0 RET
SSEE: SETB RS1 ;切换工作寄存器区 MOV R5,#05H ;
SSE2: MOV 30H,#20H ;20H=00100000B位选码 MOV 31H,#7EH ;显示区首地址7EH送31H MOV R7,#06H ;循环计数器置初值,6位显示 SSE1: MOV R1,#21H ;FF21H为8155A口地址(字位口) MOV A,30H ;取出位选码 CPL A ;取反11011111B
MOVX @R1,A ;输出位选码(扫描字) MOV R0,31H ;显示区首地址7EH送R0 MOV A,@R0 ;取待显示数据 MOV DPTR,#DDFF ;表首地址送DPTR
MOVC A,@A+DPTR ;查表得待显示数据的ASC2码
MOV R1,#22H ;FF22H为8155B口地址(字形口) MOVX @R1,A ;输出待显示数据的ASC2码(字形码) MOV A,30H ;
RR A ;修改扫描字 MOV 30H,A ;保存扫描字
DEC 31H ;修改待显示数据地址 MOV A,#0FFH ;“灭” MOVX @R1,A ;关显示器
DJNZ R7,SSE1 ;6位显示完否?未完继续 DJNZ R5,SSE2 ;刷新5次
CLR RS1 ;返回原工作寄存器区 RET
DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0~9共阳极
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH ;AbcdEF‘灭’PH┌ END
23
六、实验步骤
接线: 500k→CLK Vin→+5V IN0→Vout
JX6(ADC0809的D0~D7)→JX0(P0) WR→/IOWR RD→/IORD ADDA→A0 ADDB→A1 ADDC→A2 CS4→8000H
启动IN0~IN7各通道进行A/D转换的地址对应为8000H~8007H。
运行程序,数码管上显示0809.XX,后二位显示当前采集的电压转换的数字量,调节RW1(可调电压),该二位将随着电压变化而相应变化。
七、思考
修改程序,用其它通道轮流采样显示。
24
实验五 DAC0832实验
一、实验目的
1.掌握DAC0832与单片机的接口方法; 2.掌握DAC0832的性能及编程方法;
3.了解单片机系统中扩展D/A转换芯片的基本方法。
二、实验内容
利用DAC0832输出一周期三角波,其电压范围为0~5V。
三、实验接线图
单缓冲型接口电路
四、实验程序框图
25
五、程序清单 文件名: DPJ05.ASM ORG 0000H LJMP SE13 ORG 0100H
SE13: MOV SP,#53H
MOV P2,#0FFH ;8155 地址(FF20H~FF23H 控制口、A、B、C口) MOV A,#43H ;8155 控制字
MOV DPTR,#0FF20H ;FF20H为8155控制口地址 MOVX @DPTR,A ;8155 初始化
MOV 7EH,#00H ;7BH~7EH为显示缓冲区高4位,显示0832 MOV 7DH,#08H MOV 7CH,#03H MOV 7BH,#02H
LO20: MOV R6,#00H ;待转换数据初始值→R6 LO21: MOV DPTR,#8000H ;8000H为0832的地址
26
MOV MOVX MOV LCALL LCALL MOV LCALL INC A,R6 ;待转换数据→A @DPTR,A ;启动D/A转换
R0,#79H ;79H~7AH为显示缓冲区低2位 PTDS ;调拆字子程序 SSEE ;调显示子程序 R2,#08H ;延时初值送R2 DELYA ;调延时子程序 R6 ;待转换数据加1 CJNE LO22: MOV DEC MOV MOVX MOV LCALL LCALL MOV LCALL CJNE LJMP PTDS: MOV LCALL MOV SWAP PTDS1: ANL MOV INC RET SSEE: SETB MOV SSE2: MOV MOV MOV SSE1: MOV MOV CPL MOVX MOV MOV
R6,#0FFH,LO21 DPTR,#8000H
R6 A,R6
@DPTR,A R0,#79H PTDS SSEE
R2,#08H DELYA
R6,#00H,LO22 L020
R1,A PTDS1 A,R1
A A,#0FH @R0,A R0 RS1 R5,#05H 30H,#20H 31H,#7EH R7,#06H R1,#21H A,30H A @R1,A R0,31H A,@R0 ;升压结束否? ;待转换数据减1 ;启动D/A转换 ;延时初值送R2 ;降压结束否? ;待显示数据送R1临时保存 ;待显示数据高、低4位交换 ;屏蔽高4位
;待显示数据低4位送39H ;待显示数据高4位送3AH ;切换工作寄存器区 ;
;20H=00100000B位选码 ;显示区首地址7EH送31H ;循环计数器置初值,6位显示 ;FF21H为8155A口地址(字位口);取出位选码 ;取反11011111B
;输出位选码(扫描字) ;显示区首地址7EH送R0 ;取待显示数据
27
MOV DPTR,#DDFF ;表首地址送DPTR
MOVC A,@A+DPTR ;查表得待显示数据的ASC2码
MOV R1,#22H ;FF22H为8155B口地址(字形口) MOVX @R1,A ;输出待显示数据的ASC2码(字形码) MOV A,30H ;
RR A ;修改扫描字 MOV 30H,A ;保存扫描字
DEC 31H ;修改待显示数据地址 MOV A,#0FFH ;“灭” MOVX @R1,A ;关显示器
DJNZ R7,SSE1 ;6位显示完否?未完继续 DJNZ R5,SSE2 ;刷新5次
CLR RS1 ;返回原工作寄存器区 RET
DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0~9共阳极
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH ;AbcdEF‘灭’PH DELYA: PUSH 02H ;将R2的内容压入堆栈 DELYB: PUSH 02H DELYC: PUSH 02H
DELYD: DJNZ R2,DELYD ;延时8×2×1us=16us LCALL SSEE ;刷新显示
POP 02H ;还原R2中的值 DJNZ R2,DELYC ;16us×8=128us POP 02H
DJNZ R2,DELYB ;128us×8=1024us POP 02H
DJNZ R2,DELYA ;1024us×8=8192us RET END
六、实验步骤
CS5→8000H JX2→JX0 WR→/IOWR AOUT→DJ
运行程序,数码管上显示不断加大或减小的数字量,观察小直流电动机的转速与数码管上所显示数据的对应关系。
七、思考
修改程序,使能产生锯齿波。
28
键盘显示电路
29
MCS-51单片机实验指导书
机电工程学院单片机实验室
2010年4月
30
目 录
第一章 DICE-5208K开发型单片机综合实验仪概述 第二章 开发环境简介
实验一 彩灯控制实验
实验二 定时/计数器实验(脉冲计数) 实验三 可编程I/O接口芯片8255实验 实验四 ADC0809实验 实验五 DAC0832实验
31
正在阅读:
单片机实验报告 附含说明书06-19
信息化竞赛(初赛)理论复习题及答09-18
幂函数的性质,函数综合07-20
2014年高考数学一轮复习 热点难点精讲精析 2.6对数函数05-22
部编人教版语文二年级下册第18课《太空生活趣事多》教案03-21
统计学2013年上半学年第一次作业1答案06-11
管理会计实践心得3篇(完整版)10-09
2000级化工系化工原理试题-四川大学09-30
- 人教新课标必修4 Unit2 Working the land名师导航
- 毕业生“校漂族”大行其道 - 0
- 江苏各市中考作文题出炉 - 0
- 暑期精品班 - 三角形 - 图文
- 情人节送什么礼物好??超强礼物已抵达
- 工程项目管理制度1
- 第四次业务学习 2016
- 会计要素与会计科目
- 欠发达地区小企业会计准则运用问题研究
- 一级锅炉水G4题库
- BBD双进双出筒式磨煤机安装使用说明书 SM-1
- 初一数学有理数教案
- 渝北区房地产评估市场调研报告
- iWebMall 数据字典
- 2018年小学入学教育工作计划
- 计量专业实务与案例分析 - 模拟题三 - 2013年版
- 启示录讲义
- 路基灰土改良(方案)
- 人行反洗钱岗位准入培训测试题集
- 2015电大《学前儿童发展心理学》期末试题及答案
- 单片机
- 说明书
- 实验
- 报告
- 附2013级全英语硕士学位项目拟录取名单
- 山东大学材料科学基础试题库
- 行政管理学教案(自考) - 图文
- 活动单导学教学模式
- 隧道工程复习纲要
- 国家科学技术进步奖提名书-湖南农业科学院
- 2012届夏令营高考化学一轮复习练习9
- 供应链绩效管理策略研究--毕业论文
- 默纳克3000new系统调试与运行举例
- 西方为何在涉藏涉疆问题上与中国过不去
- 化工实验(思考题)
- 论中小企业购地建厂与租赁厂房之利弊
- 中国华电集团公司电力安全应急技能大赛题库
- 四川省大学专业排名 - 图文
- 中国挖沙船市场发展研究及投资前景报告(目录) - 图文
- 2014北京市工伤辅助器具配置项目及费用限额标准
- SQL Server 2008 R2数据库技术及应用(第3版)-配套习题
- 瑜伽师地论卷第八本地分中有寻有伺等三地之五
- 南京市各区2013年中考一模语文试卷分类汇编:名句默写专题
- (精选)汽车底盘构造考试题库