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

下载本文档

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

文档简介

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实验十八 打印机

2、实验 .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实验三十二 步进电机驱动实验

3、.57实验三十三 usb 通信实验.59实验三十四 以太网测控实验 .62实验三十五 数字电子秤实验 .64实验三十六 c/os-实时操作系统移植实验.67c -1 1实验一实验一 i/o 口交叉开关设置口交叉开关设置实验实验一、实验目的一、实验目的熟悉c8051f优先权交叉开关译码器,掌握i/o口交叉开关设置和如何配置引脚。二、实验说明二、实验说明优先权交叉开关译码器,或称为“ 交叉开关”,按优先权顺序将端口0-3的引脚分配给器件上的数字外设(uart、smbus、pca、定时器等)。端口引脚的分配顺序是从p0.0开始。下图为数字外设分配端口引脚的优先权顺序表。优先权交叉开关译码表(优先权交

4、叉开关译码表(emifle=0;p1mdin0xff)当交叉开关配置寄存器xbr0、xbr1和xbr2中外设的对应允许位被设置为逻辑1时,交叉开关将端口引脚分配给外设,相关的特殊功能寄存器的定义见数据手册或相关书籍。给c -2 2i/o口分配数据外设的方法有两种:第一、按照“优先权交叉开关译码表”并参考相关特殊功能寄存器的值来定义(参考下面的例子)。另一种方法是用配置向导,在cygnal ide中,选择tools-cygnal configuration wizard,进入配置向导界面进行i/o口配置。三、实验内容三、实验内容本实验将配置交叉开关,为uart0 smbus uart1/int0

5、和/int1分配端口引脚(共8个引脚)。另外,将外部存储器接口配置为复用方式并使用低端口。并将p1.2、 p1.3 和p1.4配置为模拟输入,以便用adc1测量加在这些引脚上的电压。配置步骤如下:1按uart0en=1 smb0en=1 int0e=1 int1e=1和emifle=1设置xbr0、xbr1和xbr2 ,则有xbr0=0 x05,xbr1=0 x14,xbr2=0 x022。2将外部存储器接口配置为复用方式并使用低端口,有:prtsel0,emd0。3将作为模拟输入的端口1引脚配置为模拟输入方式:设置p1mdin为0xe3(p1.4、p1.3和p1.2为模拟输入,所以它们的对应

6、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被配置为模拟输入,导致交叉开关跳过这些引脚。-下面

7、优先权高的是/int1,所以下一个未跳过的引脚p1.5被分配给/int1。-在执行对片外操作的movx指令期间,外部存储器接口将驱动端口2和端口3。将uart1 的tx 引脚(tx0,p0.0)、uart1的tx引脚(tx1,p0.4),ale /rd、/wr(p0.7:3)的输出设置为推挽方式,通过设置p0mdout=0 xf1来实现。5通过设置p2mdout0xff和p3mdout0xff,将emif端口(p2、p3)的输出方式配置为推挽方式。6通过设置p2mdout0xff(配置输出为漏极开路)和p10xff(逻辑1选择高阻态),禁止3个模拟输入引脚的输出驱动器。四、实验参考程序四、实验

8、参考程序下面的代码段说明如何配置交叉开关寄存器sckequ p0.0 miso equ p0.1 mosi equ p0.2 nssequ p0.3 tx equ p0.4 rx equ p0.5 c -3 3cex0 equ p0.6 cex1 equ p0.7 int0 equ p1.0 t2 equ p1.1 org 00h ljmp reset org 0b3hreset:mov xbr0, 00010110b ; 允许spiuart和两个外部捕捉模块mov xbr1, 00100100b ; 允许/int0和t2mov xbr2, 01000000b ; 允许交叉开关和弱上拉 ;端口

9、引脚分配如下 ; 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.2.7, p2.0.7 为gpiomov prt0cf, #01010101b ;ex0txmosi和sck为推挽输出mov prt1cf, #00000000b ;t2和/int0是由交叉开关分配的输入;因此与它们的端口配置值无关mov prt2cf, #00000000b ;

10、配置端口2全部为输入mov p2, #11111111b ;了将未被分配的通用i/o脚配置为输入 ;输出类型必须为漏极开路且端口位必须被置1ljmp main; 主程序代码;main: sjmp $ ;原地跳转 ; 此处为主程序代码; 结束 ;endc -4 4实验二实验二 配置内部和外部振荡器实验配置内部和外部振荡器实验一、实验目的一、实验目的掌握如何配置和使用c8051f内部和外部振荡器。二、实验说明二、实验说明每个c8051f系列mcu都有一个内部振荡器和一个外部振荡器驱动电路,每个驱动电路都能产生系统时钟,mcu在复位后从内部振荡器启动。系统时钟可在内部振荡器和外部振荡器之间进行切换。

11、也可以在选择内部振荡器时让外部振荡器保持在允许状态,这样可以避免在系统时钟被切换到外部振荡器时的启动延迟。外部振荡器具有很高的可配置性,为系统设置者提供了多种选择。时基信号可以从外部cmos电平时钟源、晶体或陶瓷谐振器、rc组合电路或外部电容获得。内部和外部振荡器的工作受两个sfr寄存器控制,即oscicn内部振荡器控制寄存器和oscxcn外部振荡器控制寄存器。1内部振荡器 在系统复位时内部振荡器被选为系统时钟,并工作在2mhz。内部振荡器可以被编程为表2-1中所示的四种频率之一。内部振荡器的频率可以在运行中切换,频率改变只需要几个系统周期。如果工作频率对于改变振荡器操作之后的指令是很重要的话

12、,可以查询ifrdy(内部振荡器频率准备好标志oscicn.4)。ifcn1:0标称频率0 02 mhz0 14 mhz1 08 mhz1 116 mhz表2-1:内部振荡器频率选择2外部cmos时钟 系统时钟可以由一个接到xtal1脚的外部cmos电平时钟源提供,例如晶体振荡器模块或来自另一个微控制器的时钟。 3外部晶体 通常在需要一个精确的时基信号才会选择晶体,例如adc的绝对采样速率比较关键,或需要用于产生一个标准uart波特率时。一个替换方案是用一个低频率的音叉晶体,例如32.768khz钟表晶体,使器件工作在低功耗方式,当系统需要时再切换到高频率的内部振荡器。4外部rc 时间基准还可

13、以通过一个外部串连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

14、 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 ; 等待新频率有效 j

15、nb acc.4, osc_wait ; 注意只有在对于后面的指令来说绝对频率是很 ; 重要的情况下才有必要查询这不是本例的情况 ; 我们只是将它作为一个例子来说明频率改变只 ; 需要几个时钟周期 orl eie2, #10000000b ; 设置 exvld (xtlvld 中断允许) anl eip2, #not(10000000b) ; xtlvld 是一个低优先级中断 mov sp, #stack_top ; 初始化堆栈指针 setb ea ; 允许全局中断 c -6 6ljmp main ; xtlvld 中断向量 ; ; 低优先级中断 ; ; 当外部晶体振荡器有效标志被置位时该中断

16、服务程序被调用 ; 它将时钟切换到外部振荡器然后显式禁止xtlvld 中断因为不存在中断标志并且 ; xtlvld位是不可写的)该例程还允许时钟丢失检测器这样就会在振荡器由于任何理由 ; 停止工作时产生复位 ; xtlvld_isr: orl oscicn, #00001000b ; 选择外部振荡器作为时钟源 anl oscicn, #not(00000100b); 禁止内部振荡器 orl oscicn, #10000000b ; 允许时钟丢失检测器 ; 如果晶体频率低于 70 khz则必须 ; 在选择外部振荡器作为系统时钟源之 ; 后完成这项工作 anl eie2, #not(1000000

17、0b) ; 禁止xtlvld中断 reti jmp $ ; 原地跳转 endc -7 7实验三实验三 二进制转换成十进制实验二进制转换成十进制实验一、实验目的一、实验目的掌握汇编语言设计和实验步骤,熟悉在cygnal ide环境下观察内部ram 的方法。二、实验内容二、实验内容单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基本功。本实验内容是将一个给定的一字节二进制数,通过编程将其转换成十进制码。三、实验步骤三、实验步骤1启动 pc 机,打开 cygnal ide 集成软件。在 cygnal ide 环境下打开“实验程序/c8051实验程序/二十进制转换”文件夹下

18、 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 寄存器窗口,选择单步或跟踪执行方式运行程序,观

19、察各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。四、四、实验程序参考框图实验程序参考框图c -8 8五、五、实验参考程序实验参考程序 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

20、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)(都是高位在前、低位在

21、后)。三、实验步骤三、实验步骤1在 cygnal ide 环境下打开“实验程序/c8051 实验程序/ 加法”文件夹下的项目文件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

22、0000hajmp startorg 0100hstart:mov 30h,#data0mov 31h,#data1 ;被加数送31h,30h mov 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,50

23、h,51h,52hc -10 10end 实验五实验五 数据传送实验数据传送实验一、实验目的一、实验目的1掌握对c8051f020 内部ram 及外部ram 的数据操作。2掌握对c8051f020片内外扩ram的操作方法。二、实验内容二、实验内容本例程将内部ram 70h7fh 的16 个数据送到外部ram 7000h700fh 。三、实验步骤三、实验步骤1在 cygnal ide 环境下打开“实验程序/c8051 实验程序/ 数据传送”文件夹下项目文件transfer.wsp,打开项目中的文件,阅读、分析、理解程序。用适配器连接 pc 机和系统mcu,编译、生成项目、下载程序。2打开 ram

24、、exterranl ram 数据窗口,分别观察 ram、exterranl ram 地址中 70h、7000h(输入 70、7000 按回车)的值。运行程序,观察内外 ram 相对应的数据区的数据是否一致。3可单步执行程序,观察数据传送过程。四、实验参考程序四、实验参考程序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 d

25、ptrinc r1djnz r7,loop ;判断数据是否送完stop: ajmp stop endc -11 11实验六实验六 数据排序实验数据排序实验一、实验目的一、实验目的掌握排序程序的设计方法。二、实验内容二、实验内容本例程采用交换排序法将内部ram 中的5059h 单元中的10个单字节无符号二进制数按从小到大的次序排列,并将这一列排序后的数据从小到大依次存贮到外部ram 1000h开始处。三、实验步骤三、实验步骤1在 cygnal ide 环境下打开“实验程序/c8051 实验程序/ 排序”文件夹下项目文件order.wsp,打开项目中的文件,阅读、分析、理解程序。用适配器连接 pc

26、 机和系统 mcu,编译、生成项目、下载程序。2打开 ram、exterranl ram 数据窗口,ram、exterranl ram 地址分别观察50h、1000h(分别输入 50、1000 按回车) 。3可在程序指令nop 处设置断点,在第一个断点处可观察5059h 单元内容是否为10 个任意排列原始数据。4在第二个断点处可观察每次排序的结果。5可单步执行程序观察排序过程。四、实验参考程序四、实验参考程序org 0000hjmp main org 0100hmain: mov r0,#50h mov r0,#5fh inc r0 mov r0,#56h inc r0 mov r0,#5ah

27、 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 12inc r0 mov r0,#57h inc r0 mov r0,#55h ;将10 个随机数送入内部ram 的5059h 单元 nop ;可在此处设置断点 acall que ;调用排序子程序out: mov r0,#50hmov dptr,#1000hmov r7,#10 out1: mov a,r0movx dptr,ainc r0inc dptrdjnz r7,out1 here:

28、 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 ;可在此处设置断点,观察每次排序结果 jnb 00h,stop mov r1,a inc r1 djnz r6,i3stop: ret end c -13 13实验七实验七 i/o 口输入、输出实验口输入、输出实验一、实验目的一、实验目的1掌

29、握单片机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(全部

30、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显

31、示模块”的发光二极管的亮灭随之变化。五、源程序五、源程序: 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 endc -14 14实验八实验八 定时器实验定时器实验一、实验目的一、实验目的掌握定时器t0t4的方式选择和编程方法,了解定时器中断服务程序设计方法。二、二、实验内容实验内容本实验使用片内定时器t3,使用中断控

32、制软件计数,计数器每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

33、模块”的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口

34、接八位逻辑电平显示,脉冲个数以二进制形式显示出来。试编写一个程序,用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 控制器单元”实验挂箱上)的“

35、p-” 。并给系统上电。4打开“实验程序/c8051实验程序/计数器”文件夹下项目文件counter.wsp,打开项目中的文件,阅读、分析、理解程序。用适配器连接pc机和系统mcu,编译、生成项目、下载程序,全速运行。5按下“脉冲模块”处的按键(每按一次,p-处产生一个负脉冲),观察发光管显示的二进制数的情况。开始开始计数设置 t0 工作方式计数,输出计数值c -16 16实验十实验十 8279 扩展键盘显示实验扩展键盘显示实验一、实验目的一、实验目的1掌握八段数码管硬件线路原理,掌握用hd8279a芯片实现显示的编程方法。2熟悉键盘的工作原理,掌握用hd8279a芯片实现键盘扫描程序设计方法

36、。二、实验内容二、实验内容8279芯片是一种通用的可编程键盘、显示接口器件,能完成对64位按键和16位led显示器的管理。8279有多种功能和多种工作模式,其功能和模式靠设定命令字来确定。8279的命令字近10种,所以使用8279之前,应详细阅读其器件手册。本实验是通过8279扩展了键盘及显示接口,程序实现的功能是当有键按下时,则显示模块显示相应的键值。实验系统中的地址: 8279 状态/命令口地址 8602h 8279 数据口地址 8600h三三、实验程序参考框图、实验程序参考框图四、实验电路四、实验电路本实验电路请参见系统原理图的附图3。五、实验步骤五、实验步骤1实验用到的实验模块: “s

37、mp-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用短路帽短接,j

38、2的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 模块实验模块实验一、实验目的一

39、、实验目的1了解 8255 芯片结构及接口方式。2掌握 8255s 输入、输出的编程方法。二、实验说明二、实验说明8255 是可编程的并行输入、输出接口芯片,通用性强且使用灵活。按功能可分为三部分,即:总线接口电路,口电路和控制逻辑电路。本实验是利用 8255 可编程并行口芯片实现数据的输入、输出。可编程通用芯片 8255a 有三个八位的并行的 i/o 口,它有三种工作方式。本实验采用方式 0:pa、pc 口输入,pb 口输出。工作方式 0 是一种基本的输入输出方式。在这种工作方式下,三个端口都可以由程序设置输入或输出。本实验中,8255 的端口地址由 cpld(译码模块)分配,其控制口的地址

40、为: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),sw

41、4(全部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,编译、生成项目、下载程序,全速运行程序,对比观察“显示模块”显示的开关量状态与“开关

42、量模块”输出的开关量的状态是否一致。c -19 19实验十二实验十二 动态显示模块实验动态显示模块实验一、实验目的一、实验目的1掌握数字、字符转换成显示段码的软件译码方法。2掌握动态显示的显示原理和相关程序的编写。二、实验说明二、实验说明1实验电路图请参考实验指导书附录中的“动态显示模块电路图”部分,如附图8。其中slaslh为8位段码输出端口,w1w8为8位扫描输出口,扫描码用来轮流接通各位led数码管,以达到显示的效果。显示器的亮度同点亮时间与关闭时间的比例有关。通过编程来调整它们的关系,可以实现亮度较高且较稳定的显示。2本实验中,所操作端口地址由 cpld(译码模块)分配,其控制口的地址

43、为:写段码数据地址为: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用短路帽短接,确保

44、无误后,给系统上电。4打开“实验程序/c8051实验程序/动态显示”文件夹下“dynamic.wsp”项目文件,打开项目中的文件,阅读、分析、理解程序。用适配器连接pc机和系统mcu,编译、生成项目、下载程序,全速运行程序,观察显示的效果。c -20 20实验十三实验十三 键盘模块实验键盘模块实验一、实验目的一、实验目的掌握阵列式键盘的硬件组成和软件编程方法。二、实验说明二、实验说明1实验电路图请参考实验指导书附录中的“键盘模块电路图”部分,如附图10所示,其中sk15sk18行线为输出端口,sk11sk14列线为输入端口。2通过行扫描法来识别按键。先在行线上输出全“0”测试是否有健按下,如果

45、有,才在各输出线上依次送“0”进行逐行扫描,以确定所按下的键号。3本实验中,所操作端口地址由cpld(译码模块)分配,其控制口的地址为:写扫描键码数据地址为:d700hd7ffh;读键状态码数据地址为:df00hdfffh。三三、实验程序参考框图、实验程序参考框图键查询子程序流程框图键检测子程序流程图四、实验步骤四、实验步骤1本实验用到的实验模块:“smp-202 c8051模块”,“smp-204 译码模块”, “smp-402 动态显示模块”,“smp-404 cpld接口模块”,“smp-405 键盘模块”。2把实验模块插放到相应的实验挂箱上,用数据扁平线连接“smp-2”实验挂箱的j6

46、到“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 扩展模块实验扩展模块

47、实验一、实验目的一、实验目的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 译码模块

48、”, “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用短路帽短接,用

49、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扩

50、展模块”文件夹下“io.wsp”项目文件,打开项目中的文件,阅读、分析、理解程序。用适配器连接pc机和系统mcu,编译、生成项目、下载程序。7全速运行程序,按下“开关量模块”中的任意一个开关键,则“led显示模块”中相应的led灯亮暗发生相应的变化。c -22 22实验十五实验十五 交通灯控制实验交通灯控制实验一、实验目的一、实验目的1了解 8255 芯片结构及接口方式。2掌握十字路口交通信号灯的控制方法。二、实验说明二、实验说明本实验使用 8255 可编程并行口芯片,实现数据的输入、输出。8255 除能提供并行接口外还包括有 256 字节 ram 存储器和 14 位定时器/计数器。8255

51、具有三个可编程 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 秒) ,东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段

52、时间后(2 秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20 秒),南北路口的绿灯闪烁若干次后(3 秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2 秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。四、四、实验电路实验电路本实验电路请参考附图 25。五、实验程序参考框图五、实验程序参考框图(如右图如右图)六、实验步骤六、实验步骤1本实验用到的实验模块:“smp-501 交通灯模块”,“smp-202 c8051模块”,“smp-204 译码模块”,“8255a 模块”(控制器单元挂箱上)。2把实验模块插放到相应的实验挂箱上,

53、用 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 项目文件,打开项目中的文件,阅读、分析、理解程序。用适

54、配器连接 pc 机和系统 mcu,编译、生成项目、下载程序,全速运行程序,察看十字路口交通灯效果。c -24 24实验十六实验十六 双色双色 led 点阵显示实验点阵显示实验一、实验目的一、实验目的1了解 8x8 矩阵 led 显示的基本原理和功能。 2掌握 8x8 矩阵 led 和单片机的硬件接口和软件设计方法。二、实验内容二、实验内容本实验使用双色共阳极 led 点阵,其内部结构如下图所示: 本实验示例程序实现的功能是显示“0f 等字样” 。三、实验电路三、实验电路本实验所需电路请参考附图 26。四、实验步骤四、实验步骤1实验用到的模块: “smp-202 c8051 模块”, “smp-

55、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 255用 8 位数据扁平信号线连接“8255a 模块”的 j1 到“smp-502 双色 led 点阵显示模块

56、”j1,连接“8255a 模块”的 j2 到“smp-502 双色 led 点阵显示模块” 的 j2。确保无误后,给系统上电。6打开“实验程序/c8051 实验程序/双色 led 点阵显示实验”文件夹下 dualcolorled.wsp项目文件,打开项目中的文件,阅读、分析、理解程序。用适配器连接 pc 机和系统 mcu,编译、生成项目、下载程序。可在根据程序注释修改点阵显示颜色。7全速运行程序,查看点阵显示效果。c -26 26实验十七实验十七 液晶显示实验液晶显示实验一、实验目的一、实验目的 了解点阵型液晶显示器的工作原理。二、实验电路图及编程说明二、实验电路图及编程说明 1实验接口电路图

57、请参考实验指导书附录中的“液晶显示模块接口电路图”部分,请参考附图 9。 2本实验采用的液晶显示屏内置控制器为 sed1520,点阵为 122*32,由两片 sed1520组成,由 e1、e2 分别选通,控制显示屏的左右两半屏。 3内置 sed1520 图形液晶显示模块的特性 3.1 模块电路特性:sed1520 系列属于行列驱动及控制合一的液晶显示驱动控制器。模块的接口定义如下表所示:序号符号状态功能1vcc-逻辑电源正2gnd-逻辑电源地3vo-液晶显示驱动电源4res-复位5e1输入主工作方式 ic 的使用信号6e2输入从工作方式 ic 的使用信号7r/w输入读/写选择信号8a0输入寄存

58、器选择信号9db0三态数据总线(最低位)10db1三态数据总线11db2三态数据总线12db3三态数据总线13db4三态数据总线14db5三态数据总线15db6三态数据总线16db7三态数据总线(最高位) 3.2 软件特性: 要使用内置 sed1520 图形液晶显示模块还需要了解其软件特性,即 sed1520 的指令功能,才能很好的应用内置 sed1520 图形液晶显示模块。c -27 27ed1520 指令一览表如下表所示:控制信号控制代码指令名称a0 r/w d7 d6 d5 d4 d3 d2 d1 d0 复位0 01 1 1 0 0 0 0 0 显示开关设置0 01 0 1 0 1 1

59、1 di 地址排序设置0 01 0 1 0 0 0 0 0 休闲状态设置0 01 0 1 0 0 1 0 s 占空比设置0 01 0 1 0 1 0 0 du 显示起始行设置0 01 1 0 l4 l3 l2 l1 l0 页面地址设置0 01 0 1 1 0 0 p1 p0 列地址设置0 00 c6 c5 c4 c3 c2 c1 c0 启动改写方式0 01 1 1 0 0 0 0 0 结束改写方式0 01 1 1 0 0 0 0 0 读状态字0 1busy adc on/off reset 0 0 0 0 写显示数据1 0数据读显示数据1 1数据 sed1520 的 13 条指令从作用上可以分

60、为两大类:一类为显示方式的设置指令,前六条指令为这一类指令,它们只需在初始化程序中写入一次就可以了。另一类为显示数据读/写操作的指令,从第七条往下(包括状态字)都是这类指令,它们需要经常地使用。下面详细解释各个命令的功能: a读状态字(readstatus)busyadcon/offreset0000 状态字是计算机了解 sed1520 当前状态,或是 sed1520 向计算机提供其内部工作状态。 busy 表示当前与计算机接口电路的运行状态。busy=1 表示 sed1520 正在处理上一次计算机发来的指令或数据,接口电路被封锁,此时不能接受计算机访问。busy=0 表示sed1520 已准

温馨提示

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

评论

0/150

提交评论