C8051实验指导书 .doc

上传人:laozhun 文档编号:2392369 上传时间:2023-02-17 格式:DOC 页数:71 大小:1.04MB
返回 下载 相关 举报
C8051实验指导书 .doc_第1页
第1页 / 共71页
C8051实验指导书 .doc_第2页
第2页 / 共71页
C8051实验指导书 .doc_第3页
第3页 / 共71页
C8051实验指导书 .doc_第4页
第4页 / 共71页
C8051实验指导书 .doc_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《C8051实验指导书 .doc》由会员分享,可在线阅读,更多相关《C8051实验指导书 .doc(71页珍藏版)》请在三一办公上搜索。

1、目 录实验一 I/O口交叉开关设置实验1实验二 配置内部和外部振荡器实验4实验三 二进制转换成十进制实验7实验四 无符号数十进制加法实验9实验五 数据传送实验10实验六 数据排序实验11实验七 I/O口输入、输出实验13实验八 定时器实验14实验九 计数器实验15实验十 8279扩展键盘显示实验16实验十一 8255模块实验18实验十二 动态显示模块实验19实验十三 键盘模块实验20实验十四 IO扩展模块实验21实验十五 交通灯控制实验22实验十六 双色LED点阵显示实验24实验十七 液晶显示实验26实验十八 打印机实验31实验十九 RS232通信实验33实验二十 RS485通信实验35实验二

2、十一 SRAM外部数据存储器扩展实验37实验二十二 SPI串行Flash存储器数据读写实验39实验二十三 外部中断实验41实验二十四 模拟多路开关实验43实验二十五 可编程增益放大器实验45实验二十六 片外12位A/D转换实验46实验二十七 片内ADC实验48实验二十八 片外12位D/A转换实验50实验二十九 片外12位AD及D/A转换实验51实验三十 片内DAC实验53实验三十一 直流电动机驱动实验54实验三十二 步进电机驱动实验57实验三十三 USB通信实验59实验三十四 以太网测控实验62实验三十五 数字电子秤实验64实验三十六 C/OS-实时操作系统移植实验67实验一 I/O口交叉开关

3、设置实验一、实验目的熟悉C8051F优先权交叉开关译码器,掌握I/O口交叉开关设置和如何配置引脚。二、实验说明优先权交叉开关译码器,或称为“ 交叉开关”,按优先权顺序将端口0-3的引脚分配给器件上的数字外设(UART、SMBus、PCA、定时器等)。端口引脚的分配顺序是从P0.0开始。下图为数字外设分配端口引脚的优先权顺序表。优先权交叉开关译码表(EMIFLE=0;P1MDIN0XFF)当交叉开关配置寄存器XBR0、XBR1和XBR2中外设的对应允许位被设置为逻辑1时,交叉开关将端口引脚分配给外设,相关的特殊功能寄存器的定义见数据手册或相关书籍。给I/O口分配数据外设的方法有两种:第一、按照“

4、优先权交叉开关译码表”并参考相关特殊功能寄存器的值来定义(参考下面的例子)。另一种方法是用配置向导,在Cygnal IDE中,选择Tools-Cygnal Configuration Wizard,进入配置向导界面进行I/O口配置。三、实验内容本实验将配置交叉开关,为UART0 SMBus UART1/INT0和/INT1分配端口引脚(共8个引脚)。另外,将外部存储器接口配置为复用方式并使用低端口。并将P1.2、 P1.3 和P1.4配置为模拟输入,以便用ADC1测量加在这些引脚上的电压。配置步骤如下:1 按UART0EN=1 SMB0EN=1 INT0E=1 INT1E=1和EMIFLE=1

5、设置XBR0、XBR1和XBR2 ,则有XBR0=0x05,XBR1=0x14,XBR2=0x022。2 将外部存储器接口配置为复用方式并使用低端口,有:PRTSEL0,EMD0。3 将作为模拟输入的端口1引脚配置为模拟输入方式:设置P1MDIN为0XE3(P1.4、P1.3和P1.2为模拟输入,所以它们的对应P1MDIN被设置为逻辑0)。4 设置XBARE = 1 以允许交叉开关:XBR20X42。- UART0有最高优先权,P0.0被分配给TX0,P0.1被分配给RX0。- SMBus的优先权次之,P0.2 被分配给SDA,P0.3被分配给SCL。- 之后是UART1,P0.4被分配给TX

6、1。由于外部存储器接口选在低端口(EMIFLE=1)所以交叉开关跳过P0.6(/RD)和P0.7(/WR),又因外部存储器接口被配置为复用方式,下一个未被跳过的引脚P1.0被分配给RX1。-之后是/INT0,被分配到引脚P1.1。-使P1.2、P1.3 和P1.4被配置为模拟输入,导致交叉开关跳过这些引脚。-下面优先权高的是/INT1,所以下一个未跳过的引脚P1.5被分配给/INT1。-在执行对片外操作的MOVX指令期间,外部存储器接口将驱动端口2和端口3。将UART1 的TX 引脚(TX0,P0.0)、UART1的TX引脚(TX1,P0.4),ALE /RD、/WR(P0.7:3)的输出设置

7、为推挽方式,通过设置P0MDOUT=0xF1来实现。5 通过设置P2MDOUT0XFF和P3MDOUT0XFF,将EMIF端口(P2、P3)的输出方式配置为推挽方式。6 通过设置P2MDOUT0XFF(配置输出为漏极开路)和P10XFF(逻辑1选择高阻态),禁止3个模拟输入引脚的输出驱动器。四、实验参考程序下面的代码段说明如何配置交叉开关寄存器SCKEQU P0.0 MISO EQU P0.1 MOSI EQU P0.2 NSSEQU P0.3 TX EQU P0.4 RX EQU P0.5 CEX0 EQU P0.6 CEX1 EQU P0.7 INT0 EQU P1.0 T2 EQU P1

8、.1 org 00h ljmp Reset org 0B3hReset:Mov XBR0, 00010110b ; 允许SPIUART和两个外部捕捉模块Mov XBR1, 00100100b ; 允许/INT0和T2Mov XBR2, 01000000b ; 允许交叉开关和弱上拉 ;端口引脚分配如下 ; P0.0 = SCK 例主模式; P0.1 = MISO ; P0.2 = MOSI ; P0.3 = NSS ; P0.4 = TX ; P0.5 = RX ; P0.6 = CEX0 - 例输出 ; P0.7 = CEX1 - 例输入 ; P1.0 = /INT0 ; P1.1 = T2;

9、 P1.2.7, P2.0.7 为GPIOmov PRT0CF, #01010101b ;EX0TXMOSI和SCK为推挽输出mov PRT1CF, #00000000b ;T2和/INT0是由交叉开关分配的输入;因此与它们的端口配置值无关mov PRT2CF, #00000000b ;配置端口2全部为输入mov P2, #11111111b ;了将未被分配的通用I/O脚配置为输入 ;输出类型必须为漏极开路且端口位必须被置1ljmp Main; 主程序代码;Main: Sjmp $ ;原地跳转 ; 此处为主程序代码; 结束 ;END实验二 配置内部和外部振荡器实验一、实验目的掌握如何配置和使用

10、C8051F内部和外部振荡器。二、实验说明每个C8051F系列MCU都有一个内部振荡器和一个外部振荡器驱动电路,每个驱动电路都能产生系统时钟,MCU在复位后从内部振荡器启动。系统时钟可在内部振荡器和外部振荡器之间进行切换。也可以在选择内部振荡器时让外部振荡器保持在允许状态,这样可以避免在系统时钟被切换到外部振荡器时的启动延迟。外部振荡器具有很高的可配置性,为系统设置者提供了多种选择。时基信号可以从外部CMOS电平时钟源、晶体或陶瓷谐振器、RC组合电路或外部电容获得。内部和外部振荡器的工作受两个SFR寄存器控制,即OSCICN内部振荡器控制寄存器和OSCXCN外部振荡器控制寄存器。1内部振荡器

11、在系统复位时内部振荡器被选为系统时钟,并工作在2MHz。内部振荡器可以被编程为表2-1中所示的四种频率之一。内部振荡器的频率可以在运行中切换,频率改变只需要几个系统周期。如果工作频率对于改变振荡器操作之后的指令是很重要的话,可以查询IFRDY(内部振荡器频率准备好标志OSCICN.4)。IFCN1:0标称频率0 02 MHz0 14 MHz1 08 MHz1 116 MHz表2-1:内部振荡器频率选择2外部CMOS时钟 系统时钟可以由一个接到XTAL1脚的外部CMOS电平时钟源提供,例如晶体振荡器模块或来自另一个微控制器的时钟。 3外部晶体 通常在需要一个精确的时基信号才会选择晶体,例如ADC

12、的绝对采样速率比较关键,或需要用于产生一个标准UART波特率时。一个替换方案是用一个低频率的音叉晶体,例如32.768kHz钟表晶体,使器件工作在低功耗方式,当系统需要时再切换到高频率的内部振荡器。4外部RC 时间基准还可以通过一个外部串连RC电路获得。 5时钟丢失检测器当系统时钟频率降到10kHz左右时产生复位。三、实验内容本实验以配置外部振荡器的示例源代码,使用外部11.0592 MHz晶体。由XTLVLD中断从内部振荡器切换到外部振荡器。用实例说明如何从内部振荡器的缺省频率2MHz切换到16MHz,以及如何通过查询IFRDY(内部振荡器频率准备好OSCICN.4),等待内部振荡器稳定到其

13、编程值。四、实验参考程序DSEG ; 堆栈org 0e8h ; 临时设置的堆栈地址 STACK_TOP: DS 1 ; 符号表中的占位符表示硬件堆栈起始地址 CSEG org 00h ljmp Reset org 0abh ljmp XTLVLD_ISR ; 晶体振荡器有效中断 org 0b3h Reset: mov WDTCN, #0deh ; 禁止看门狗定时器 mov WDTCN, #0adh mov OSCXCN, #01100101b ; 允许晶体振荡器除1方式 ; 对于11.0592 MHz 晶体XFCN = 101 ; 一旦晶体振荡器启动并稳定几百个微秒之后 ; 通过XTLVLD中

14、断处理程序选择外部振荡器 orl OSCICN, #00000011b ; 允许内部振荡器频率为16MHz. osc_ wait: mov a, OSCICN ; 等待新频率有效 jnb acc.4, osc_wait ; 注意只有在对于后面的指令来说绝对频率是很 ; 重要的情况下才有必要查询这不是本例的情况 ; 我们只是将它作为一个例子来说明频率改变只 ; 需要几个时钟周期 orl EIE2, #10000000b ; 设置 EXVLD (XTLVLD 中断允许) anl EIP2, #NOT(10000000b) ; XTLVLD 是一个低优先级中断 mov SP, #STACK_TOP

15、; 初始化堆栈指针 setb EA ; 允许全局中断 ljmp Main ; XTLVLD 中断向量 ; ; 低优先级中断 ; ; 当外部晶体振荡器有效标志被置位时该中断服务程序被调用 ; 它将时钟切换到外部振荡器然后显式禁止XTLVLD 中断因为不存在中断标志并且 ; XTLVLD位是不可写的)该例程还允许时钟丢失检测器这样就会在振荡器由于任何理由 ; 停止工作时产生复位 ; XTLVLD_ISR: orl OSCICN, #00001000b ; 选择外部振荡器作为时钟源 anl OSCICN, #NOT(00000100b); 禁止内部振荡器 orl OSCICN, #10000000b

16、 ; 允许时钟丢失检测器 ; 如果晶体频率低于 70 kHz则必须 ; 在选择外部振荡器作为系统时钟源之 ; 后完成这项工作 anl EIE2, #NOT(10000000b) ; 禁止XTLVLD中断 reti jmp $ ; 原地跳转 END实验三 二进制转换成十进制实验一、实验目的掌握汇编语言设计和实验步骤,熟悉在Cygnal IDE环境下观察内部RAM 的方法。二、实验内容单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基本功。本实验内容是将一个给定的一字节二进制数,通过编程将其转换成十进制码。三、实验步骤1启动PC机,打开Cygnal IDE集成软件。在C

17、ygnal IDE环境下打开“实验程序/C8051实验程序/二十进制转换”文件夹下toBCD.wsp项目文件,打开项目中的文件,双击项目窗口中toBCD.ASM文件,阅读、分析、理解程序。用适配器连接PC机和系统MCU,编译、生成项目、下载程序。2打开RAM观察窗口,根据示例程序注释设置断点,运行程序。程序具体功能是将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#0ffh。观察RAM地址30H、31H、32H的数据变化,30H更新为02,31H更新为05,32H更新为05。3修改源程序中给累加器A的赋值,重复实验,观察实验效果。4打开CPU寄存器窗口,选择单步或跟

18、踪执行方式运行程序,观察各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。四、实验程序参考框图五、实验参考程序 RESULT EQU 30H$INCLUDE(C8051F020.INC) ORG 0000H JMP START ORG 0100HSTART: MOV SP,#40H MOV A,#0FFH CALL BINTOBCDNOP ;此处设置断点,察看RAM 30H,31H,32H LJMP $BINTOBCD: MOV B,#100 DIV AB MOV RESULT,A ;除以100得百位数 MOV A,B MOV B,#10 DIV AB MOV RESULT+1,A ;

19、余数除以10得十位数 MOV RESULT+2,B ;余数为个位数 RET END 实验四 无符号数十进制加法实验一、实验目的掌握无符号数、十进制加法,熟悉在Cygnal IDE环境下观察内部RAM 的方法。二、实验内容编写并调试一个双字节无符号十进制数加法程序,其功能为将被加数写入30H、31H单元,加数写入40H、41H单元,运行程序结果写入52H、51H、50H单元中,则加法程序功能为:(31H) (30H)+(41H) (40H)=(52H) (51H) (50H)(都是高位在前、低位在后)。三、实验步骤1在Cygnal IDE环境下打开“实验程序/C8051实验程序/ 加法”文件夹下

20、的项目文件ADD.wsp,打开项目中的文件,阅读、分析、理解程序。用适配器连接PC机和系统MCU,编译、生成项目、下载程序。2打开RAM观察窗口,根据示例程序注释设置断点,运行程序,观察RAM地址30H、31H、40H、41H、50H、51H、52H的数据变化。示例程序执行: 3412H+7856H,结果为0AC68H。四、实验参考程序DATA0 EQU 12HDATA1 EQU 34HDATA2 EQU 56HDATA3 EQU 78HORG 0000HAJMP STARTORG 0100HSTART:MOV 30H,#DATA0MOV 31H,#DATA1 ;被加数送31H,30H MOV

21、 40H,#DATA2MOV 41H,#DATA3 ;加数送41H,40HMOV A,30HADD A,40H ;(30H)+(40H)A MOV 50H,A ;保存低位结果MOV A,31HADDC A,41H ;(40H)+(50H)+CYA MOV 51H,A ;保存高位结果MOV 52H,#0 MOV A,#0ADDC A,52HMOV 52H,A ;进位52HSJMP $ ;此处设置断点,察看RAM 30H,31H,40H,41H,50H,51H,52HEND 实验五 数据传送实验一、实验目的1掌握对C8051F020 内部RAM 及外部RAM 的数据操作。2掌握对C8051F020

22、片内外扩RAM的操作方法。二、实验内容本例程将内部RAM 70H7FH 的16 个数据送到外部RAM 7000H700FH 。三、实验步骤1在Cygnal IDE环境下打开“实验程序/C8051实验程序/ 数据传送”文件夹下项目文件TRANSFER.wsp,打开项目中的文件,阅读、分析、理解程序。用适配器连接PC机和系统MCU,编译、生成项目、下载程序。2打开RAM、EXTERRANL RAM数据窗口,分别观察RAM、EXTERRANL RAM地址中70H、7000H(输入70、7000按回车)的值。运行程序,观察内外RAM相对应的数据区的数据是否一致。3可单步执行程序,观察数据传送过程。四、

23、实验参考程序ORG 0000HJMP MAIN ORG 0100HMAIN: MOV R7,#16MOV R1,#70H ;内部RAM地址70H送R1MOV DPTR,#7000H ;DPTR指向XRAM地址7000HLOOP: MOV A,R1 ;内部RAM内容送累加器AMOVX DPTR,A ;将累加器A的值送到XRAMINC DPTRINC R1DJNZ R7,LOOP ;判断数据是否送完STOP: AJMP STOP END实验六 数据排序实验一、实验目的掌握排序程序的设计方法。二、实验内容本例程采用交换排序法将内部RAM 中的5059H 单元中的10个单字节无符号二进制数按从小到大的

24、次序排列,并将这一列排序后的数据从小到大依次存贮到外部RAM 1000H开始处。三、实验步骤1在Cygnal IDE环境下打开“实验程序/C8051实验程序/ 排序”文件夹下项目文件Order.wsp,打开项目中的文件,阅读、分析、理解程序。用适配器连接PC机和系统MCU,编译、生成项目、下载程序。2打开RAM、EXTERRANL RAM数据窗口,RAM、EXTERRANL RAM地址分别观察50H、1000H(分别输入50、1000按回车)。3可在程序指令NOP 处设置断点,在第一个断点处可观察5059H 单元内容是否为10 个任意排列原始数据。4在第二个断点处可观察每次排序的结果。5可单步

25、执行程序观察排序过程。四、实验参考程序ORG 0000HJMP MAIN ORG 0100HMAIN: MOV R0,#50H MOV R0,#5FH INC R0 MOV R0,#56H INC R0 MOV R0,#5AH INC R0 MOV R0,#5EH INC R0 MOV R0,#51H INC R0 MOV R0,#5BH INC R0 MOV R0,#53H INC R0 MOV R0,#58H INC R0 MOV R0,#57H INC R0 MOV R0,#55H ;将10 个随机数送入内部RAM 的5059H 单元 NOP ;可在此处设置断点 ACALL QUE ;调

26、用排序子程序OUT: MOV R0,#50HMOV DPTR,#1000HMOV R7,#10 OUT1: MOV A,R0MOVX DPTR,AINC R0INC DPTRDJNZ R7,OUT1 HERE: AJMP HERE QUE: CLR 00H ;清交换标志MOV R1,#50HMOV R6,#09HI3: MOV A,R6MOV R7,AMOV A,R1MOV R0,A MOV A,R0I2: INC R0 MOV R2,A SUBB A,R0 MOV A,R2 JC I1 SETB 00H XCH A,R0 I1: DJNZ R7,I2 NOP ;可在此处设置断点,观察每次排序

27、结果 JNB 00H,STOP MOV R1,A INC R1 DJNZ R6,I3STOP: RET END 实验七 I/O口输入、输出实验一、实验目的1掌握单片机I/O口输入、输出数据的方法。2熟悉C8051F020 I/O口交叉开关设置。二、实验内容以P2口为输入口,接八位逻辑电平输出,以P3口为输出口,接八位逻辑电平显示,编写一个程序,读入P2口状态并在P3口输出显示。三、实验电路本实验电路请参见系统原理图的附图27。四、实验步骤1 实验用到的模块:“SMP-504 开关量模块”,“SMP-503 LED显示模块”,“SMP-202 C8051模块”。2 将“SMP-2 控制器单元”挂

28、箱的“切换模块”切换到下列状态:SW1(全部OFF),SW2(全部OFF),SW3(全部OFF),SW4(全部OFF)。3 把实验模块插放到相应的实验挂箱上,确保无误后,用8位数据线连接“SMP-504 开关量输出模块”的J1到“SMP-202 C8051模块”的J2(P2口), 连接“SMP-202 C8051模块”的J3(P3口)到“SMP-503 LED显示模块”的J1,给系统上电。4 在Cygnal IDE环境下打开“实验程序/C8051实验程序/LED”文件夹下的项目文件LED.wsp,阅读、分析、理解程序。用适配器连接PC机和系统MCU,编译、生成项目、下载程序,全速运行。5 观察

29、“LED显示模块”发光二极管的亮灭与“开关量输出模块”的状态是否一致。改变“开关量输出模块”的输出状态,则“LED显示模块”的发光二极管的亮灭随之变化。五、源程序: ORG 0000H LJMP START ORG 0100HMAIN: MOV P2,#0FFH MOV A,P2 MOV P3,A LCALL DELAY LJMP MAINDELAY: MOV R6,#20DLOOP1: MOV R7,#0DLOOP2: DJNZ R7,DLOOP2 DJNZ R6,DLOOP1 RET End实验八 定时器实验一、实验目的掌握定时器T0T4的方式选择和编程方法,了解定时器中断服务程序设计方法

30、。二、实验内容本实验使用片内定时器T3,使用中断控制软件计数,计数器每0.1秒加1,当计数器加到5时,改变P2、P3口的状态,P2、P3口驱动发光管实现走马灯效果。设置定时器T3的时钟基准为系统时钟的12分频。系统时钟采用片内2MHz的时钟源。试编写一个程序,用T0T4定时器,实现上述效果。三、实验电路本实验电路请参见系统原理图的附图27。四、实验程序参考框图 (a) 主程序 (b) 定时器中断子程序图五、实验步骤 1实验用到的实验模块:“SMP-503 LED显示模块”,“SMP-202 C8051模块”。2把实验模块插放到相应的实验挂箱上,确保无误后,用8位数据线连接“SMP-202 C8

31、051模块”的J2(P2口)到“SMP-503 LED显示模块”的J1,“SMP-202 C8051模块”的J3(P3口)到“SMP-503 LED显示模块”的J2,给系统上电。3打开“实验程序/C8051实验程序/定时器”文件夹下项目文件TIME.wsp,打开项目中的文件,阅读、分析、理解程序。用适配器连接PC机和系统MCU,编译、生成项目、下载程序,全速运行。4观察发光管的显示是否实现了走马灯的效果。实验九 计数器实验一、实验目的掌握定时/计数器T0T4的方式选择和编程方法。二、实验内容本实验使用片内定时/计数器,T0接外部脉冲输入,P2口接八位逻辑电平显示,脉冲个数以二进制形式显示出来。

32、试编写一个程序,用T0定时/计数器,实现上述效果。三、实验电路本实验电路请参考系统原理图的附图27。四、实验程序参考框图开始开始计数设置T0工作方式计数,输出计数值五、实验步骤1 实验用到的实验模块:“SMP-503 LED显示模块”,“SMP-202 C8051模块”。2 把实验模块插放到相应的实验挂箱上,确保无误后,用8位数据线连接“SMP-202 C8051模块”的J2(P2口)到“SMP-503 LED显示模块”的J1。3 用1号导线连接“SMP-202 C8051模块”的“P1.0”与“脉冲模块”(“SMP-2 控制器单元”实验挂箱上)的“P-” 。并给系统上电。4 打开“实验程序/

33、C8051实验程序/计数器”文件夹下项目文件counter.wsp,打开项目中的文件,阅读、分析、理解程序。用适配器连接PC机和系统MCU,编译、生成项目、下载程序,全速运行。5 按下“脉冲模块”处的按键(每按一次,P-处产生一个负脉冲),观察发光管显示的二进制数的情况。实验十 8279扩展键盘显示实验一、实验目的1掌握八段数码管硬件线路原理,掌握用HD8279A芯片实现显示的编程方法。2熟悉键盘的工作原理,掌握用HD8279A芯片实现键盘扫描程序设计方法。二、实验内容8279芯片是一种通用的可编程键盘、显示接口器件,能完成对64位按键和16位LED显示器的管理。8279有多种功能和多种工作模

34、式,其功能和模式靠设定命令字来确定。8279的命令字近10种,所以使用8279之前,应详细阅读其器件手册。本实验是通过8279扩展了键盘及显示接口,程序实现的功能是当有键按下时,则显示模块显示相应的键值。实验系统中的地址: 8279 状态/命令口地址 8602H 8279 数据口地址 8600H三、实验程序参考框图四、实验电路本实验电路请参见系统原理图的附图3。五、实验步骤1 实验用到的实验模块: “SMP-202 C8051模块”,“8279模块”(控制器单元挂箱上),“SMP-204 译码模块”,“SMP-402 动态显示模块”,“SMP-405 键盘模块”。(注意:做此实验时,“SMP-

35、404 CPLD接口模块”不要用到,即不能把“SMP-404 CPLD接口模块”插放到挂箱上。2 将“SMP-2 控制器单元”挂箱的“切换模块”切换到下列状态:SW1(全部ON),SW2的6,7,8(ON),其他OFF,SW3(全部ON),SW4(全部OFF)。3 将“SMP204 译码模块”上的插针J1的2、3用短路帽短接,J2的2、3用短路帽短接,J3的1、2用短路帽短接。4 把实验模块插放到相应的实验挂箱上,用20位数据扁平信号线连接“8279模块”的J5到“SMP-4”实验挂箱的J2;用8位数据扁平信号线连接“8279模块”的J4到“SMP-4”实验挂箱的J4,确保无误后,给系统上电。

36、5 打开“实验程序/C8051实验程序/ 8279实验”文件夹下8279.wsp项目文件,打开项目中的文件,阅读、分析、理解程序。用适配器连接PC机和系统C8051模块,编译、生成项目、下载程序。6 全速运行程序,按下键盘上的按键,则显示模块显示相应的按键值。 实验十一 8255模块实验一、实验目的1了解8255芯片结构及接口方式。2掌握8255S输入、输出的编程方法。二、实验说明8255是可编程的并行输入、输出接口芯片,通用性强且使用灵活。按功能可分为三部分,即:总线接口电路,口电路和控制逻辑电路。本实验是利用8255可编程并行口芯片实现数据的输入、输出。可编程通用芯片8255A有三个八位的

37、并行的I/O口,它有三种工作方式。本实验采用方式0:PA、PC口输入,PB口输出。工作方式0是一种基本的输入输出方式。在这种工作方式下,三个端口都可以由程序设置输入或输出。本实验中,8255的端口地址由CPLD(译码模块)分配,其控制口的地址为:8403H;A口的地址为:8400H;B口的地址为:8401H;C口的地址为:8402H;三、实验电路图 实验电路图请参考系统原理图的附图1。四、实验程序参考框图(见右图)五、实验步骤1 本实验用到的实验模块:“SMP-202 C8051模块”,“SMP-204 译码模块”,“8255A 模块”(控制器单元挂箱上),“SMP-504 开关量模块”,“S

38、MP-503 LED显示模块”。2 将“SMP-2 控制器单元”挂箱的“切换模块”切换到下列状态:SW1(全部ON),SW2的6,7,8(ON),其他OFF,SW3(全部ON),SW4(全部OFF)。3 将“SMP204 译码模块”上的插针J1的2、3用短路帽短接,J2的2、3用短路帽短接,J3的1、2用短路帽短接。4 把实验模块插放到相应的实验挂箱上,用8位数据扁平信号线连接“8255A 模块”的J1到“SMP-504 开关量模块”的J1;连接“8255A 模块”的J2到“SMP-503 LED显示模块”的J1,确保无误后,给系统上电。5 打开“实验程序/C8051实验程序/8255实验”文

39、件夹下8255.wsp项目文件,打开项目中的文件,阅读、分析、理解程序。用适配器连接PC机和系统MCU,编译、生成项目、下载程序,全速运行程序,对比观察“显示模块”显示的开关量状态与“开关量模块”输出的开关量的状态是否一致。实验十二 动态显示模块实验一、实验目的1掌握数字、字符转换成显示段码的软件译码方法。2掌握动态显示的显示原理和相关程序的编写。二、实验说明1实验电路图请参考实验指导书附录中的“动态显示模块电路图”部分,如附图8。其中SLASLH为8位段码输出端口,W1W8为8位扫描输出口,扫描码用来轮流接通各位LED数码管,以达到显示的效果。显示器的亮度同点亮时间与关闭时间的比例有关。通过

40、编程来调整它们的关系,可以实现亮度较高且较稳定的显示。2本实验中,所操作端口地址由CPLD(译码模块)分配,其控制口的地址为:写段码数据地址为:C700HC7FFH;写位选码数据地址为:CF00HCFFFH。三、实验程序参考框图四、实验步骤1 本实验用到的实验模块:“SMP-202 C8051模块”,“SMP-402 动态显示模块”,“SMP-404 CPLD接口模块”。2 把实验模块插放到相应的实验挂箱上,用数据扁平线连接所需实验挂箱,将“SMP-2 控制器单元”挂箱的“切换模块”切换到下列状态:SW1(全部ON),SW2(全部OFF),SW3(全部OFF),SW4(全部ON)。 3 将“S

41、MP-404 CPLD接口模块”上的插针J1的2、3用短路帽短接,J2的1、2用短路帽短接,确保无误后,给系统上电。4 打开“实验程序/C8051实验程序/动态显示”文件夹下“dynamic.wsp”项目文件,打开项目中的文件,阅读、分析、理解程序。用适配器连接PC机和系统MCU,编译、生成项目、下载程序,全速运行程序,观察显示的效果。实验十三 键盘模块实验一、实验目的掌握阵列式键盘的硬件组成和软件编程方法。二、实验说明1 实验电路图请参考实验指导书附录中的“键盘模块电路图”部分,如附图10所示,其中SK15SK18行线为输出端口,SK11SK14列线为输入端口。2 通过行扫描法来识别按键。先

42、在行线上输出全“0”测试是否有健按下,如果有,才在各输出线上依次送“0”进行逐行扫描,以确定所按下的键号。3 本实验中,所操作端口地址由CPLD(译码模块)分配,其控制口的地址为:写扫描键码数据地址为:D700HD7FFH;读键状态码数据地址为:DF00HDFFFH。三、实验程序参考框图键查询子程序流程框图键检测子程序流程图四、实验步骤1 本实验用到的实验模块:“SMP-202 C8051模块”,“SMP-204 译码模块”, “SMP-402 动态显示模块”,“SMP-404 CPLD接口模块”,“SMP-405 键盘模块”。2 把实验模块插放到相应的实验挂箱上,用数据扁平线连接“SMP-2”实验挂箱的J6到“SMP-4”实验挂箱的J1。3 将“SMP-2 控制器单元”挂箱的“切换模块”切换到下列状态:SW1(全部ON

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号