C8051实验指导书.doc_第1页
C8051实验指导书.doc_第2页
C8051实验指导书.doc_第3页
C8051实验指导书.doc_第4页
C8051实验指导书.doc_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目目 录录 实验一 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 实验二十一 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 c -1 1 实验一实验一 i/o 口交叉开关设置口交叉开关设置实验实验 一、实验目的一、实验目的 熟悉c8051f优先权交叉开关译码器,掌握i/o口交叉开关设置和如何配置引脚。 二、实验说明二、实验说明 优先权交叉开关译码器,或称为“ 交叉开关”,按优先权顺序将端口0-3的引脚分配给器 件上的数字外设(uart、smbus、pca、定时器等)。端口引脚的分配顺序是从p0.0开始。 下图为数字外设分配端口引脚的优先权顺序表。 优先权交叉开关译码表(优先权交叉开关译码表(emifle=0;p1mdin0xff) 当交叉开关配置寄存器xbr0、xbr1和xbr2中外设的对应允许位被设置为逻辑1时, 交叉开关将端口引脚分配给外设,相关的特殊功能寄存器的定义见数据手册或相关书籍。给 c -2 2 i/o口分配数据外设的方法有两种:第一、按照“优先权交叉开关译码表”并参考相关特殊功 能寄存器的值来定义(参考下面的例子)。另一种方法是用配置向导,在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设置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被分配给tx1。由于外部存储器接口选在低端口(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)的输出设置为推挽方式,通过设置p0mdout=0xf1来实现。 5通过设置p2mdout0xff和p3mdout0xff,将emif端口(p2、p3)的输出方 式配置为推挽方式。 6通过设置p2mdout0xff(配置输出为漏极开路)和p10xff(逻辑1选择高 阻态),禁止3个模拟输入引脚的输出驱动器。 四、实验参考程序四、实验参考程序 下面的代码段说明如何配置交叉开关寄存器 sck equ p0.0 miso equ p0.1 mosi equ p0.2 nss equ p0.3 tx equ p0.4 rx equ p0.5 c -3 3 cex0 equ p0.6 cex1 equ p0.7 int0 equ p1.0 t2 equ p1.1 org 00h ljmp reset org 0b3h reset: mov xbr0, 00010110b ; 允许spiuart和两个外部捕捉模块 mov xbr1, 00100100b ; 允许/int0和t2 mov 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 ; p1.27, p2.07 为gpio mov prt0cf, #01010101b ;ex0txmosi和sck为推挽输出 mov prt1cf, #00000000b ;t2和/int0是由交叉开关分配的输入 ;因此与它们的端口配置值无关 mov prt2cf, #00000000b ;配置端口2全部为输入 mov p2, #11111111b ;了将未被分配的通用i/o脚配置为输入 ;输出类型必须为漏极开路且端口位必须被置1 ljmp main ; 主程序代码; main: sjmp $ ;原地跳转 ; 此处为主程序代码 ; 结束 ; end c -4 4 实验二实验二 配置内部和外部振荡器实验配置内部和外部振荡器实验 一、实验目的一、实验目的 掌握如何配置和使用c8051f内部和外部振荡器。 二、实验说明二、实验说明 每个c8051f系列mcu都有一个内部振荡器和一个外部振荡器驱动电路,每个驱动电路都 能产生系统时钟,mcu在复位后从内部振荡器启动。 系统时钟可在内部振荡器和外部振荡器之间进行切换。也可以在选择内部振荡器时让外部 振荡器保持在允许状态,这样可以避免在系统时钟被切换到外部振荡器时的启动延迟。 外部振荡器具有很高的可配置性,为系统设置者提供了多种选择。时基信号可以从外部 cmos电平时钟源、晶体或陶瓷谐振器、rc组合电路或外部电容获得。 内部和外部振荡器的工作受两个sfr寄存器控制,即oscicn内部振荡器控制寄存器和 oscxcn外部振荡器控制寄存器。 1内部振荡器 在系统复位时内部振荡器被选为系统时钟,并工作在2mhz。内部振荡器可以被编程为表 2-1中所示的四种频率之一。内部振荡器的频率可以在运行中切换,频率改变只需要几个系统 周期。如果工作频率对于改变振荡器操作之后的指令是很重要的话,可以查询ifrdy(内部振 荡器频率准备好标志oscicn.4)。 ifcn1:0标称频率 0 02 mhz 0 14 mhz 1 08 mhz 1 116 mhz 表2-1:内部振荡器频率选择 2外部cmos时钟 系统时钟可以由一个接到xtal1脚的外部cmos电平时钟源提供,例如晶体振荡器模块或 来自另一个微控制器的时钟。 3外部晶体 通常在需要一个精确的时基信号才会选择晶体,例如adc的绝对采样速率比较关键,或 需要用于产生一个标准uart波特率时。一个替换方案是用一个低频率的音叉晶体,例如 32.768khz钟表晶体,使器件工作在低功耗方式,当系统需要时再切换到高频率的内部振荡器。 4外部rc 时间基准还可以通过一个外部串连rc电路获得。 5时钟丢失检测器 当系统时钟频率降到10khz左右时产生复位。 c -5 5 三、实验内容三、实验内容 本实验以配置外部振荡器的示例源代码,使用外部11.0592 mhz晶体。由xtlvld中断从 内部振荡器切换到外部振荡器。用实例说明如何从内部振荡器的缺省频率2mhz切换到 16mhz,以及如何通过查询ifrdy(内部振荡器频率准备好oscicn.4),等待内部振荡器稳 定到其编程值。 四、四、实验参考程序实验参考程序 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中断处理程序选择外部振荡器 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 ; 初始化堆栈指针 setb ea ; 允许全局中断 c -6 6 ljmp main ; xtlvld 中断向量 ; ; 低优先级中断 ; ; 当外部晶体振荡器有效标志被置位时该中断服务程序被调用 ; 它将时钟切换到外部振荡器然后显式禁止xtlvld 中断因为不存在中断标志并且 ; xtlvld位是不可写的)该例程还允许时钟丢失检测器这样就会在振荡器由于任何理由 ; 停止工作时产生复位 ; xtlvld_isr: orl oscicn, #00001000b ; 选择外部振荡器作为时钟源 anl oscicn, #not(00000100b); 禁止内部振荡器 orl oscicn, #10000000b ; 允许时钟丢失检测器 ; 如果晶体频率低于 70 khz则必须 ; 在选择外部振荡器作为系统时钟源之 ; 后完成这项工作 anl eie2, #not(10000000b) ; 禁止xtlvld中断 reti jmp $ ; 原地跳转 end c -7 7 实验三实验三 二进制转换成十进制实验二进制转换成十进制实验 一、实验目的一、实验目的 掌握汇编语言设计和实验步骤,熟悉在cygnal ide环境下观察内部ram 的方法。 二、实验内容二、实验内容 单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基 本功。本实验内容是将一个给定的一字节二进制数,通过编程将其转换成十进制码。 三、实验步骤三、实验步骤 1启动 pc 机,打开 cygnal ide 集成软件。在 cygnal 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 寄存器窗口,选择单步或跟踪执行方式运行程序,观察各寄存器的变化,可 以看到程序执行的过程,加深对实验的了解。 四、四、实验程序参考框图实验程序参考框图 c -8 8 五、五、实验参考程序实验参考程序 result equ 30h $include(c8051f020.inc) org 0000h jmp start org 0100h start: mov sp,#40h mov a,#0ffh call bintobcd nop ;此处设置断点,察看 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 ;余数除以 10 得十位数 mov result+2,b ;余数为个位数 ret end c -9 9 实验四实验四 无符号数十进制加法实验无符号数十进制加法实验 一、实验目的一、实验目的 掌握无符号数、十进制加法,熟悉在cygnal ide环境下观察内部ram 的方法。 二、实验内容二、实验内容 编写并调试一个双字节无符号十进制数加法程序,其功能为将被加数写入30h、31h单元, 加数写入40h、41h单元,运行程序结果写入52h、51h、50h单元中,则加法程序功能为: (31h) (30h)+(41h) (40h)=(52h) (51h) (50h)(都是高位在前、低位在后)。 三、实验步骤三、实验步骤 1在 cygnal ide 环境下打开“实验程序/c8051 实验程序/ 加法”文件夹下的项目文件 add.wsp,打开项目中的文件,阅读、分析、理解程序。用适配器连接 pc 机和系统 mcu, 编译、生成项目、下载程序。 2打开 ram 观察窗口,根据示例程序注释设置断点,运行程序,观察 ram 地址 30h、31h、40h、41h、50h、51h、52h 的数据变化。示例程序执行: 3412h+7856h,结果为 0ac68h。 四、四、实验参考程序实验参考程序 data0 equ 12h data1 equ 34h data2 equ 56h data3 equ 78h org 0000h ajmp start org 0100h start:mov 30h,#data0 mov 31h,#data1 ;被加数送31h,30h mov 40h,#data2 mov 41h,#data3 ;加数送41h,40h mov a,30h add a,40h ;(30h)+(40h)a mov 50h,a ;保存低位结果 mov a,31h addc a,41h ;(40h)+(50h)+cya mov 51h,a ;保存高位结果 mov 52h,#0 mov a,#0 addc a,52h mov 52h,a ;进位52h sjmp $ ;此处设置断点,察看ram 30h,31h,40h,41h,50h,51h,52h c -10 10 end 实验五实验五 数据传送实验数据传送实验 一、实验目的一、实验目的 1掌握对c8051f020 内部ram 及外部ram 的数据操作。 2掌握对c8051f020片内外扩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可单步执行程序,观察数据传送过程。 四、实验参考程序四、实验参考程序 org 0000h jmp main org 0100h main: mov r7,#16 mov r1,#70h ;内部ram地址70h送r1 mov dptr,#7000h ;dptr指向xram地址7000h loop: mov a,r1 ;内部ram内容送累加器a movx dptr,a ;将累加器a的值送到xram inc dptr inc r1 djnz r7,loop ;判断数据是否送完 stop: ajmp stop end c -11 11 实验六实验六 数据排序实验数据排序实验 一、实验目的一、实验目的 掌握排序程序的设计方法。 二、实验内容二、实验内容 本例程采用交换排序法将内部ram 中的5059h 单元中的10个单字节无符号二进制数 按从小到大的次序排列,并将这一列排序后的数据从小到大依次存贮到外部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可单步执行程序观察排序过程。 四、实验参考程序四、实验参考程序 org 0000h jmp main org 0100h main: 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 c -12 12 inc r0 mov r0,#57h inc r0 mov r0,#55h ;将10 个随机数送入内部ram 的5059h 单元 nop ;可在此处设置断点 acall que ;调用排序子程序 out: mov r0,#50h mov dptr,#1000h mov r7,#10 out1: mov a,r0 movx dptr,a inc r0 inc dptr djnz r7,out1 here: ajmp here que: clr 00h ;清交换标志 mov r1,#50h mov r6,#09h i3: mov a,r6 mov r7,a mov a,r1 mov r0,a mov a,r0 i2: inc r0 mov r2,a subb a,r0 mov a,r2 jc i1 setb 00h xch a,r0 i1: djnz r7,i2 nop ;可在此处设置断点,观察每次排序结果 jnb 00h,stop mov r1,a inc r1 djnz r6,i3 stop: ret end c -13 13 实验七实验七 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 控制器单元”挂箱的“切换模块”切换到下列状态: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观察“led显示模块”发光二极管的亮灭与“开关量输出模块”的状态是否一致。改 变“开关量输出模块”的输出状态,则“led显示模块”的发光二极管的亮灭随之变化。 五、源程序五、源程序: org 0000h ljmp start org 0100h main: mov p2,#0ffh mov a,p2 mov p3,a lcall delay ljmp main delay: mov r6,#20 dloop1: mov r7,#0 dloop2: djnz r7,dloop2 djnz r6,dloop1 ret end c -14 14 实验八实验八 定时器实验定时器实验 一、实验目的一、实验目的 掌握定时器t0t4的方式选择和编程方法,了解定时器中断服务程序设计方法。 二、二、实验内容实验内容 本实验使用片内定时器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 c8051模块”的j2(p2口)到“smp-503 led显示模块”的j1,“smp-202 c8051模块”的j3(p3 口)到“smp-503 led显示模块”的j2,给系统上电。 3打开“实验程序/c8051实验程序/定时器”文件夹下项目文件time.wsp,打开项目中 的文件,阅读、分析、理解程序。用适配器连接pc机和系统mcu,编译、生成项目、下载程 序,全速运行。 4观察发光管的显示是否实现了走马灯的效果。 c -15 15 实验九实验九 计数器实验计数器实验 一、实验目的一、实验目的 掌握定时/计数器t0t4的方式选择和编程方法。 二、二、实验内容实验内容 本实验使用片内定时/计数器,t0接外部脉冲输入,p2口接八位逻辑电平显示,脉冲个数 以二进制形式显示出来。 试编写一个程序,用t0定时/计数器,实现上述效果。 三、实验电路三、实验电路 本实验电路请参考系统原理图的附图27。 四、四、实验程序参考框图实验程序参考框图 五、实验步骤五、实验步骤 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打开“实验程序/c8051实验程序/计数器”文件夹下项目文件counter.wsp,打开项目中 的文件,阅读、分析、理解程序。用适配器连接pc机和系统mcu,编译、生成项目、下载程 序,全速运行。 5按下“脉冲模块”处的按键(每按一次,p-处产生一个负脉冲),观察发光管显示的 二进制数的情况。 开始开始计数设置 t0 工作方 式 计数,输出计数 值 c -16 16 实验十实验十 8279 扩展键盘显示实验扩展键盘显示实验 一、实验目的一、实验目的 1掌握八段数码管硬件线路原理,掌握用hd8279a芯片实现显示的编程方法。 2熟悉键盘的工作原理,掌握用hd8279a芯片实现键盘扫描程序设计方法。 二、实验内容二、实验内容 8279芯片是一种通用的可编程键盘、显示接口器件,能完成对64位按键和16位led显示器 的管理。8279有多种功能和多种工作模式,其功能和模式靠设定命令字来确定。8279的命令字 近10种,所以使用8279之前,应详细阅读其器件手册。 本实验是通过8279扩展了键盘及显示接口,程序实现的功能是当有键按下时,则显示模块 显示相应的键值。 实验系统中的地址: 8279 状态/命令口地址 8602h 8279 数据口地址 8600h 三三、实验程序参考框图、实验程序参考框图 四、实验电路四、实验电路 本实验电路请参见系统原理图的附图3。 五、实验步骤五、实验步骤 1实验用到的实验模块: “smp-202 c8051模块”,“8279模块”(控制器单元挂箱上), “smp-204 译码模块”,“smp-402 动态显示模块”,“smp-405 键盘模块”。(注意:注意:做做 此实验时,此实验时,“smp-404 cpld接口模块接口模块”不要用到,即不能把不要用到,即不能把“smp-404 cpld接口模块接口模块”插放插放 c -17 17 到挂箱上到挂箱上。 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,确保无误后,给系统上电。 5打开“实验程序/c8051实验程序/ 8279实验”文件夹下8279.wsp项目文件,打开项目中 的文件,阅读、分析、理解程序。用适配器连接pc机和系统c8051模块,编译、生成项目、下 载程序。 6全速运行程序,按下键盘上的按键,则显示模块显示相应的按键值。 c -18 18 实验十一实验十一 8255 模块实验模块实验 一、实验目的一、实验目的 1了解 8255 芯片结构及接口方式。 2掌握 8255s 输入、输出的编程方法。 二、实验说明二、实验说明 8255 是可编程的并行输入、输出接口芯片,通用性强且使用灵活。按功能可分为三部分, 即:总线接口电路,口电路和控制逻辑电路。本实验是利用 8255 可编程并行口芯片实现数据 的输入、输出。可编程通用芯片 8255a 有三个八位的并行的 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 开关量模块”, “smp-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实验”文件夹下8255.wsp项目文件,打开项目中 的文件,阅读、分析、理解程序。用适配器连接pc机和系统mcu,编译、生成项目、下载程 序,全速运行程序,对比观察“显示模块”显示的开关量状态与“开关量模块”输出的开关量 的状态是否一致。 c -19 19 实验十二实验十二 动态显示模块实验动态显示模块实验 一、实验目的一、实验目的 1掌握数字、字符转换成显示段码的软件译码方法。 2掌握动态显示的显示原理和相关程序的编写。 二、实验说明二、实验说明 1实验电路图请参考实验指导书附录中的“动态显示模块电路图”部分,如附图8。其中 slaslh为8位段码输出端口,w1w8为8位扫描输出口,扫描码用来轮流接通各位led数 码管,以达到显示的效果。显示器的亮度同点亮时间与关闭时间的比例有关。通过编程来调整 它们的关系,可以实现亮度较高且较稳定的显示。 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将“smp-404 cpld接口模块”上的插针j1的2、3用短路帽短接,j2的1、2用短路帽短 接,确保无误后,给系统上电。 4打开“实验程序/c8051实验程序/动态显示”文件夹下“dynamic.wsp”项目文件,打开 项目中的文件,阅读、分析、理解程序。用适配器连接pc机和系统mcu,编译、生成项目、 下载程序,全速运行程序,观察显示的效果。 c -20 20 实验十三实验十三 键盘模块实验键盘模块实验 一、实验目的一、实验目的 掌握阵列式键盘的硬件组成和软件编程方法。 二、实验说明二、实验说明 1实验电路图请参考实验指导书附录中的“键盘模块电路图”部分,如附图10所示,其 中sk15sk18行线为输出端口,sk11sk14列线为输入端口。 2通过行扫描法来识别按键。先在行线上输出全“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), sw2(全部off),sw3(全部off),sw4(全部on)。 4将“smp-404 cpld接口模块”上的插针j1的2、3用短路帽短接,j2的1、2用短路帽短 接。确保无误后,给系统上电。 5打开“实验程序/c8051实验程序/键盘”文件夹下“keyboard.wsp”项目文件,打开项 目中的文件,阅读、分析、理解程序。用适配器连接pc机和系统mcu,编译、生成项目、下 载程序,全速运行程序,按下任意一个键,则显示相应的键值。 c -21 21 实验十四实验十四 io 扩展模块实验扩展模块实验 一、实验目的一、实验目的 1了解系统中i/o口的扩展方法。 2掌握输入输出开关量通过总线与cpu的接口及编程方法。 二、实验说明二、实验说明 本实验包括16路开关量的采集及16路开关量输出,读第1组(8位)开关量的地址: 9400h94ffh;读第2组(8位)开关量的地址:9500h95ffh;输出第1组(8位)开关量 的地址:9600h96ffh;输出第2组(8位)开关量的地址:9700h97ffh,其地址由 cpld(译码模块)分配。 三、实验电路图三、实验电路图 本实验电路图请参考附图33。 四、实验步骤四、实验步骤 1本实验用到的实验模块:“smp-202 c8051模块”,“smp-204 译码模块”, “smp-106 io扩展模块”,“smp-504 开关量模块”,“smp-503 led显示模 块”。 2把实验模块插放到相应的实验挂箱上,用扁平信号线连接“smp-1 信号转换单元”挂 箱的“j2”与“smp-2 控制器单元”挂箱的“j8”;“smp-1 信号转换单元”挂箱的“j1” 与“smp-2 控制器单元”挂箱的“j7”。 3将“smp-2 控制器单元”挂箱的“切换模块”切换到下列状态:sw1(全部on), sw2(全部off),sw3(全部off),sw4(全部off)。 4将“smp204 译码模块”上的插针j1的2、3用短路帽短接,j2的2、3用短路帽短接, j3的1、2用短路帽短接,用1号导线连接“smp2 控制器单元”挂箱上的“开关量输出模块” 的“s1”和“smp-204译码模块”上的“clk”,并将“开关量输出模块”上的“sel1”切 换开关切换到“h”端。 5用8位信号扁平线连接“smp-504 开关量模块”的j1到“smp-106 io扩展模块”的 j3;连接“smp-504 开关量模块”的j2到“smp-106 io扩展模块”的j4;连接“smp-503 led显示模块”的j1到“smp-106 io扩展模块”的j5;连接“smp-503 led显示模块”的j2到 “smp-106 io扩展模块”的j6。确保无误后,给系统上电。 6打开“实验程序/c8051实验程序/io扩展模块”文件夹下“io.wsp”项目文件,打开项 目中的文件,阅读、分析、理解程序。用适配器连接pc机和系统mcu,编译、生成项目、下 载程序。 7全速运行程序,按下“开关量模块”中的任意一个开关键,则“led显示模块”中相 应的led灯亮暗发生相应的变化。 c -22 22 实验十五实验十五 交通灯控制实验交通灯控制实验 一、实验目的一、实验目的 1了解 8255 芯片结构及接口方式。 2掌握十字路口交通信号灯的控制方法。 二、实验说明二、实验说明 本实验使用 8255 可编程并行口芯片,实现数据的输入、输出。8255 除能提供并行接口外 还包括有 256 字节 ram 存储器和 14 位定时器/计数器。8255 具有三个可编程 i/o 口,其中 pa、pb 为 8 位口,pc 口为 6 位口,并有多种工作方式。 三、实验内容三、实验内容 本实验使用 8255 的 pc 口驱动发光二极管,来模拟十字路口交通信号灯。 8255 的 pa 口、pb 口不接,pc 口接发光管,对应关系如下: pc.4南北路口绿灯 pc.2东西路口绿灯 pc.5南北路口黄灯 pc.1东西路口黄灯 pc.6南北路口红灯 pc.0东西路口红灯 开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通 车,延时一段时间后(20 秒),东西路口的绿灯,闪烁若干次后(3 秒) ,东西路口的绿灯熄灭, 同时东西路口的黄灯亮,延时一段时间后(2 秒) ,东西路口的红灯亮,南北路口的绿灯亮,南北路 口方向通车,延时一段时间后(20 秒),南北路 口的绿灯闪烁若干次后(3 秒),南北路口的绿 灯熄灭,同时南北路口的黄灯亮,延时一段时 间后(2 秒),再切换到东西路口的绿灯亮,南北 路口的红灯亮,之后重复以上过程。 四、四、实验电路实验电路 本实验电路请参考附图 25。 五、实验程序参考框图五、实验程序参考框图(如右图如右图) 六、实验步骤六、实验步骤 1本实验用到的实验模块:“smp-501 交通灯模块”,“smp-202 c8051模块”, “smp-204 译码模块”,“8255a 模块”(控制器单元挂箱上)。 2把实验模块插放到相应的实验挂箱上,用 8 位数据扁平信号线连接“8255a 模块”的 j2 到“smp-501 交通灯模块”j1。 3将“smp-2 控制器单元”挂箱的“切换模块”切换到下列状态:sw1(全部 on) , sw2(1-5 脚 off,68 脚 on) ,sw3(全部 on) ,sw4(全部 off) 。 4将“smp204 译码模块”上的插针 j1 的 2、3 用短路帽短接,j2 的 2、3 用短路帽短 c -23 23 接,j3 的 1、2 用短路帽短接。确保无误后,给系统上电。 5打开“实验程序/c8051 实验程序/交通灯控制实验”文件夹下 traffic.wsp 项目文件,打 开项目中的文件,阅读、分析、理解程序。用适配器连接 pc 机和系统 mcu,编译、生成项 目、下载程序,全速运行程序,察看十字路口交通灯效果。 c -24 24 实验十六实验十六 双色双色 led 点阵显示实验点阵显示实验 一、实验目的一、实验目的 1了解 8x8 矩阵 led 显示的基本原理和功能。 2掌握 8x8 矩阵 led 和单片机的硬件接口和软件设计方法。 二、实验内容二、实验内容 本实验使用双色共阳极 led 点阵,其内部结构如下图所示: 本实验示例程序实现的功能是显示“0f 等字样” 。 三、实验电路三、实验电路 本实验所需电路请参考附图 26。 四、实验步骤四、实验步骤 1实验用到的模块: “smp-202 c8051 模块”, “smp-204 译码模块” , “8255a 模块” (控 制器单元挂箱上) , “smp-502 双色 led 点阵显示模块” 。 2把实验模块插放到相应的实验挂箱上。 3将“smp-2 控制器单元”挂箱的“切换模块”切换到下列状态:sw1(全部 on) , sw2(16 脚 off,78 脚 on) ,sw3(全部 on) ,sw4(全部 off) 。 4将“smp204 译码模块”上的插针 j1 的 2、3 用短路帽短接,j2 的 2、3 用短路帽短 接,j3 的 1、2 用短路帽短接。 c -25 25 5用 8 位数据扁平信号线连接“8255a 模块”的 j1 到“smp-502 双色 led 点阵显示模 块”j1,连接“8255a 模块”的 j2 到“smp-502 双色 led 点阵显示模块” 的 j2。确保无误 后,给系统上电。 6打开“实验程序/c8051 实验程序/双色 led 点阵显示实验”文件夹下 dualcolorled.wsp 项目文件,打开项目中的文件,阅读、分析、理解程序。用适配器连接 pc 机和系统 mcu, 编译、生成项目、下载程序。可在根据程序注释修改点阵显示颜色。 7全速运行程序,查看点阵显示效果。 c -26 26 实验十七实验十七 液晶显示实验液晶显示实验 一、实验目的一、实验目的 了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论