




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2008-2009学年度第二学期单片机原理实验教案陈善荣物理科学与信息工程学院单片机原理与接口技术实验安排表实验时间班级第一组第二组第三组07电1星期二 第7、8节星期三 第1、2节星期三 第5、6节07电2星期二 第3、4节星期三 第3、4节07电科12星期一 第5、6节星期五 第1、2节星期三 第9、10节07应物星期一 第3、4节实验项目教学周次实验项目名称对应的实验指导书的内容(2006.7)61、软件实验P14,15,16软件实验一、二、三72、软件实验P17,18软件实验四、五83、P3.3输入,P1口输出实验P25 实验一94、简单I/O口扩展实验P35 实验四105、脉冲计数(
2、定时/计数器实验)P22 实验九116、单片机与单片机的串行通信实验P65 实验十六127、单片机与PC机的串行通信实验P66 实验十七137、8155键盘显示接口实验教材P232(单片微型机,复旦大学出版)148、8155键盘显示接口实验教材P232(单片微型机,复旦大学出版)159、电脑时钟(定时、中断综合实验)P23实验十(用8155显示接口显示时钟)169、电脑时钟(定时、中断综合实验)P23实验十(用8155显示接口显示时钟)1710、A/D转换实验P37 实验五实验1 软件实验(一)实验目的1熟悉DVCC52196实验系统;2掌握MCS-51单片机汇编语言程序设计、调试方法。实验重
3、点和难点1MCS-51单片机的存储器结构;2指令系统;实验课时2学时实验仪器DVCC52196JH单片机仿真实验系统、联想启天2400微型计算机。实验原理1教材第4章MCS-51指令系统和程序设计方法2.相关指令: 外存储器的读写:movx dptr,a movx a,dptr 半字节交换: swap a 提取部分位: anl a,#data 程序结构: org 0 ljmp startstart: end实验内容与步骤1.将外存储器地址 7000上70FFH的内容清0;2.将外存储器地址 7000H的BCD码(调试时从键盘输入)拆分,高半字节存于7001H的低4位,高位补0,低半字节存于70
4、02H的低4位,高位补0;3.将外存储器地址 7000H的BCD码(调试时从键盘输入)的低4位和7001H的BCD码(调试时从键盘输入)的低4位拼合,存于7002H;实验记录及总结1独立完成三个程序设计,并调试之,将源程序、调试方法(简要)和调试结果写入实验报告;2记录实验中出现的问题;3. 本次实验的意义,自我评判实验效果以优秀(90以上),良好(8090),中等(7080),及格(6070),不及格(60以下,未达到实验目的)。本实验注意事项1第一次进行实验,请按照指导老师的要求仔细操作2在断电的情况下插拔导线和串行通信线,不要用力过大,以免损坏实验设备;3. 每次实验前检查实验设备,并做
5、好登记,实验结束不必拔掉串行通信线,也不必合上实验箱盖,但其它导线需拔出并放入抽屉,桌面保持整洁;4.联机时需要按实验箱键盘第二行最右端“PCDBG”键,以建立与PC的通信;5文件存放路径为C:DVCC5219下,文件名一定只能是西文8字符以内,而且不能有空格;6本次实验仿真模式为 内程序内数据。附实验参考程序1步骤3的参考程序 ;sy1_1.asm ORG 0000H LJMP STARTSTART:MOV DPTR,#7000H MOV R0,#0FFHLOOP: MOV A,#0 MOVX DPTR,A INC DPTR DEC R0 DJNZ R0,LOOP SJMP $ END; s
6、y1-2 ORG 0000H LJMP START START:MOV DPTR ,#7000H MOVX A,DPTR MOV R1,A ANL A,#0F0H INC DPTR MOVX DPTR,A MOV A,R1 ANL A,#0FH INC DPTR MOVX DPTR,A SJMP $ END;sy1-3 ORG 0000H LJMP STARTSTART:MOV DPTR,#7000H MOVX A,DPTR ANL A,#0FH SWAP A MOV R0,A INC DPTR MOVX A,DPTR ANL A,#0FH ORL A,R0 INC DPTR MOVX DPT
7、R,A SJMP $ END实验2 软件实验(二)实验目的1熟悉DVCC52196实验系统;2掌握MCS-51单片机汇编语言程序设计、调试方法。实验重点和难点1指令系统;实验课时2学时实验仪器DVCC52196JH单片机仿真实验系统、联想启天2400微型计算机。实验原理1教材第4章MCS-51指令系统和程序设计方法2.相关指令: 外存储器的读写:movx dptr,a movx a,dptr 条件转移指令:JZ rel ; JNZ rel ; JC rel ;JNC rel;JB bit,rel; JNB bit,rel;JBC bit,rel; CJNE A,direct,rel;CJNE
8、A,#data,rel;CJNE Rn,#data,rel; CJNE Rn,#data,rel; DJNZ Rn,rel;DJNZ direct,rel 程序结构: org 0 ljmp startstart: end实验内容与步骤1. 把外存首地址为(R2、R3)的源RAM中的(R6、R7)个字节数据,传送到外存首地址为(R4、R5)目的RAM区;(如源地址7000H,R2=70H R3=00H;数量120H:R6=1H R7=20H;目的地址7200H:R4=72H R5=00H);2. 编写并调试一个排序子程序,其功能将内部RAM地址为30H起的10H个单元字节无符号字节数,按从小到大
9、的次序重新排列。(运行程序之前先修改内存30H起的10H个无符号字节数据);实验记录及总结1独立完成二个程序设计,并调试之,将源程序、调试方法(简要)和调试结果写入实验报告;2记录实验中出现的问题;3. 本次实验的意义,自我评判实验效果以优秀(90以上),良好(8090),中等(7080),及格(6070),不及格(60以下,未达到实验目的)。本实验注意事项1请按照指导老师的要求仔细操作2在断电的情况下插拔导线和串行通信线,不要用力过大,以免损坏实验设备;3. 每次实验前检查实验设备,并做好登记,实验结束不必拔掉串行通信线,也不必合上实验箱盖,但其它导线需拔出并放入抽屉,桌面保持整洁;4.联机
10、时需要按实验箱键盘第二行最右端“PCDBG”键,以建立与PC的通信;5文件存放路径为C:DVCC5219下,文件名一定只能是西文8字符以内,而且不能有空格;6本次实验仿真模式为 内程序内数据。附实验参考程序1步骤3的参考程序 ;sy2_1.asm org 0h LJMP STARTSTART: MOV R2,#70H MOV R3,#00H MOV R4,#72H MOV R5,#00H MOV R6,#02H MOV R7,#00HLOOP: mov a,r7 jz testH djnz r7,movedatatestH: mov a,r6 jz done dec r7 djnz r6,mo
11、vedatamovedata:MOV DPH,R2 MOV DPL,R3 MOVx A,DPTR INC DPTR MOV R2,DPH MOV R3,DPL MOV DPH,R4 MOV DPL,R5 MOVx DPTR,A INC DPTR MOV R4,DPH MOV R5,DPL ajmp loopdone: sjmp $ end;sy2_2 org 0h LJMP STARTSTART: MOV R0,#30H ;zhizhen1 MOV R1,#9H ;CI SHU MOV R2,#10H ;ge shuNEXT: CLR C MOV A,R0 INC R0 SUBB A,R0 D
12、EC R0 JC EXCHANGE INC R0 DJNZ R2,NEXT DJNZ R1,NEXTNUM AJMP DONEEXCHANGE:MOV A,R0 INC R0 XCH A,R0 DEC R0 MOV R0,A INC R0 DJNZ R2,NEXT DJNZ R1,NEXTNUM SJMP DONENEXTNUM: MOV R0,#30H MOV A,#10H MOV R2,A AJMP NEXTdone: sjmp $ end实验3 P3.3输入,P1口输出实验实验目的1掌握P3口,P1口简单使用。2学习延时程序的编写和使用。实验重点和难点1MCS-51单片机的结构2并行口编
13、程实验课时2学时实验仪器DVCC52196JH单片机仿真实验系统、联想启天2400微型计算机。实验原理1教材第4章MCS-51指令系统和程序设计方法2教材5.1节并行口3.P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P1口作为输出口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20K40K,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。4.延时子程序的延时计算问题。对于延时子程序DELAY: MOV R6,#00HDELAY1:MOV R7,#80 DJNZ R7,$ DJNZ R6,DELA
14、Y1查指令表可知MOV指令需用一个机器周期,DJNZ指令需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:(1+(1+80*2+2)*256)*(12/)=83.458ms。5. 实验连线图实验内容与步骤1 检测P1口是否能正常工作首先将PC机的串行口COM1或COM2用专用的串行线连接到实验箱右上角的串行口插座(9针);然后打开实验箱电源开关,此时实验箱上的LED灯显示”P.”并闪烁,表示实验配置是正确的;将P1口的P10,P11P17分别连接到L1,L2L8,在DVCC实验系统中新建文件,输入以下程序:;sy1_1.asmorg 0ljmp starto
15、rg 100start: mov p1,#0mov a,#1l1: mov p1,arl asjmp l1end;sy1_2.asmorg 0ljmp startorg 100start:mov p3,#0ffhl1: mov c,p3.3sjmp l1end存盘到C:DVCCsy1_1.asm。编译该程序,直到没有错误信息,然后打开实验箱电源开关,此时实验箱上的LED灯显示”P.”并闪烁,按一次实验箱键盘第二行最右边的”PCDBG”键准备联机,此时LED灯熄灭,实验箱等待接收PC机上的命令。按“调试”命令,并且单步执行程序,可以发现L1、L2L7依次被点亮和熄灭,表明P1口工作正常。2 检测
16、P3.3引脚的输入功能是否工作正常将P3.3与K1相连接,K1打上去连接的是5V,打下来连接的是0V,将K1固定到一个位置,然后调试运行以下程序,观察寄存器窗口中P3口的值是否为“FF”或“F7”(PSW为或).如果观察到上述值,表示P3.3引脚功能正常3 按照流程图编写程序,实现将P3.3口做输入口,外接一脉冲K1,每输入一个脉冲,P1口按十六进制加一;P1口做输出口,使P1口接的8个发光二极管L1L8按16进制加一方式点亮发光二极管。 本实验注意事项1第一次进行实验,请按照指导老师的要求仔细操作2 实验总结1 2 附实验参考程序1步骤3的参考程序 ;sy1_3.asm ORG 0HLJMP
17、 START org 100START: MOV A,#0 mov p1,#0 MOV P3,#0FFHHIGHT1: JB P3.3,HIGHT1 acall delay jb p3.3,hight1LOW1: JNB P3.3,LOW1 acall delay jnb p3.3,low1 INC A mov p1,a SJMP HIGHT1delay: mov r6,#00hdelay1:mov r7,#80 djnz r7,$ djnz r6,delay1 ret END实验4 简单I/O口扩展实验 实验目的1学习并了解单片机时序图;2学习并了解地址译码方法; 3学习在单片机系统中扩展I
18、/O口的基本方法,常用的并行输入/输出扩展芯片的特性。实验内容1. 用74LS244扩展并行输入口,输入口地址为B000H;用74LS273扩展并行输出口,输出口地址为A000H;2. 在输入口连接K1K8 8个开关,输出口连接L1L8 8个LED灯,编写程序实现开关对LED灯的控制。实验课时2学时实验仪器DVCC52196JH单片机仿真实验系统、联想启天2400微型计算机。实验原理1并行I/O扩展的应用背景MCS51外部扩展空间很大,但数据总线和控制信号的负载能力是有限的,若单片机系统需要扩展的芯片较多时,MCS51总线口负载过重,可能会导致单片机系统的抗干扰能力下降,甚至无法正常工作。因此
19、对输入口加输入缓冲器,输出器加驱动器,使得外设与总线隔离,可以有效地保障系统的正常工作。2. 并行输入口扩展74LS244是一种 8 输入3态缓冲电路。它把8个输入分成2组,4个一组。其逻辑图如图41所示。图41 74LS244逻辑图引出端符号:1A11A4,2A12A4输入端/1G, /2G三态允许端(低电平有效)1Y11Y4,2Y12Y4输出端输出端的电平可以有三种:H高电平、L低电平、Z高阻;三态允许端:G0 的时候,输入输出;G1的时候,输出为高阻态;在单片机应用系统中,通常为了布线方便,即使在不考虑双向传输的时候,通常也是使用74LS245来做缓冲。另外74LS240也可以作为数据选
20、通的输入并行口扩展。3. 并行输出口扩展为了扩展并行输出口,必须使用带数据锁存功能的器件,如74LS373、74LS 273、74LS 573、74LS 374、74LS 574等带D触发器的芯片。本次实验中采用74LS273作为同向输出口,控制8个发光二极管的亮灭。图42 74LS273的封装图和真值表4. 实验电路原理图图43 实验电路原理图内容和步骤1按照图43原理图连接好电路。2. 检测输出扩展74LS273部分电路,根据电路连线图,自编小段程序依次点亮和熄灭L1L8,单步调试程序,记录实验现象。3检测输入扩展74LS244部分电路,根据电路连线图,自编小段程序读取开关状态,单步调试程
21、序,记录累加器A中的结果是否与开关拨动的位置一样。4编写程序,实现用开关控制LED灯的亮灭。本实验应注意的事项1. 仿真模式为内程序外数据。实验总结本次实验内容较少,绝大多数学生能够迅速掌握,但学生对读写时序的理解还不够深。附实验源程序1. 实验内容与步骤2中所涉及的源程序汇编语言源程序:org 0 mov dptr,#0b000h mov a,#1l1: movx dptr,a rl a sjmp l1 end程序说明及调试结果:1.根据图4-3,可知74LS273访问地址为0xb000.2.单步运行程序可以看到与74LS273输出口PO所连接的LED灯依次点亮和熄灭。3.高电平使得PO口所
22、连接的LED灯亮。2. 实验内容与步骤3中所涉及的源程序汇编语言源程序: org 0 ljmp start org 30hstart: mov dptr,#0a000hl1: movx a,dptr sjmp l1 end程序说明及调试结果:1.根据图43,可知74LS244访问地址为0xa000.2.单步运行程序,执行完指令movx a,dptr后可以看到累加器A的值与开关的状态相一致。3. 实验内容与步骤4中所涉及的源程序汇编语言源程序: org 0 ljmp start org 30hstart: mov dptr,#0a000h movx a,dptr mov dptr,#0b000h
23、 movx dptr,a sjmp start end#include #include absacc.h#define i1 XBYTE0xa000#define o1 XBYTE0xb000void main(void) while(1) o1=i1; 实验5 脉冲计数(定时/计数器实验)一、实验目的熟悉8032定时/计数功能,掌握定时/计数初始化编程方法。二、实验内容对定时器0外部输入的脉冲进行计数,并送显示器显示。三、实验程序框图开始堆栈、定时/计数初始化开定时器取出TL0、TH0内容 调用二转十进制子程序结果送显示缓冲器调显示子程序 二进制转十进制子程序:NY0送R4 R5 R616
24、送位计数器R70送CYR2 R3右移一位2*(R4R5R6)+CY送R4R5R6(R7)-1送R7R7=0?结束 四、实验步骤(1)把8032CPU的P3.4插孔接T0-T7任一根信号线或单脉冲输出孔“SP”(2)在闪动“P.”状态,按PCDBG键(3)在PC机处于在Win98/2000软件平台下,单击DVCC图标(4)在系统设置选项中设定仿真模式为内程序、内数据(5)根据屏幕提示进入51/96动态调试菜单(6)联接DVCC实验系统(Ctrl+H)(7)装载目标文件(Ctrl+L)或新建源程序文件(8)编译、连接、传送文件(9)设置PC起始地址,从起始地址开始连续运行程序(F9)或单步(F8)
25、或断点运行程序(10)观察数码管显示的内容应为脉冲个数。五、思考修改程序使显示器止可显示到个脉冲个数。实验5 脉冲计数实验目的1熟悉8032定时/计数功能,掌握定时/计数初始化编程方法。实验重点和难点1 定时/计数初始化编程方法2 实验课时2学时实验仪器DVCC52196JH单片机仿真实验系统、联想启天2400微型计算机。实验原理1 参考教材内部定时器章节2 实验接线要求:单片机外部中断0(P3.2)接单脉冲输出孔“SP”,P1.0P1.7接LED灯(L1L7)实验内容与步骤1按要求接线;2编程,采用查询方式对输入的脉冲计数,以二进制数的方式显示在LED灯上;3. 编程,采用中断的方式对输入的
26、脉冲计数,以二进制数的方式显示在LED灯上;4编程,测试输入的负脉冲的宽度,以二进制数的方式显示在LED灯上,低8位计数值即可;本实验注意事项1 2 实验总结1 2 附实验参考程序1 2 实验6、7 串行通信实验目的(1)掌握串行口工作方式和程序设计方法;(2)了解实现串行通信的硬环境,数据格式的协议,数据交换的协议;(3)了解PC机通信的基本要求和程序设计方法。实验重点和难点(1)串行口工作方式1下的单片机端编程方法;(2)PC端串行通信程序的编程方法。实验课时4学时实验仪器DVCC52196JH单片机仿真实验系统、联想启天2400微型计算机。实验原理串行通信基础串行通信是一种能把二进制数据
27、按位传送的通信,它所需传输线极少,适用于分级、分层和分布式控制系统及远程通信。串行通信可分为异步通信和同步通信。在异步通信中字符帧格式和波特率是两个重要的指标。(1)字符帧 也称为数据帧,由起始位、数据位、奇偶校验位和停止位组成。起始位位于字符帧开头,只占1位,始终为逻辑0低电平,用于向接收设备表示发送端开始发送一帧信息;数据位紧跟起始位之后,可取5、6、7或8位,低位在前高位在后;奇偶校验位在数据位之后仅占1位,用于表征串行通信中采用奇校验还是偶校验;停止位位于字符帧末尾,为逻辑1高电平,通常可以取1、1.5或2位。(2)波特率 波特率定义为每秒钟传送的二进制的位数(bps),用于表征数据传
28、输的速度。图81异步通信的字符帧格式同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息,这里的信息帧和异步通信中的字符帧不同,通常含有若干个数据字符。它由同步字符、数据字符和校验字符CRC等部分组成。图82同步通信中的字符帧结构串行通信中串行I/O数据的实现方式可以分为两种:软件方式和硬件方式。软件方式中,采用两层循环,外层循环控制发送字符的个数,内层循环控制字符帧的位数,如需要将内部RAM20H起,长度为LEN的数据,按照字符帧格式为11位(1位起始位,7位数据位,1位奇偶校验位和2位停止位)从P1.0引脚串行输出字符帧,实现的示例程序如下:ORG 0SOUT:MOV R0,#
29、20H;数据块的起始地址送R0NEXT:MOV R2,#0BH;字符帧长度送R2CLR C;清CyMOV A,R0;待发送数据送ARLC A;起始位送ACC.0INC R0;数据块指针指向下一个待传输的数据LOOP:MOV R1,A;发送字符暂存于R1ANL A,#01H;屏蔽A中的高7位ANL P1,#0FEH;清除P1.0ORL P1,A;在P1.0上输出串行数据MOV A,R1;恢复A中的值ACALL DELAY;延时RRC A;准备输出下一位SETB C;在Cy中形成停止位DJNZ R2,LOOP;若一帧未发完,则LOOPDJNZ LEN,NEXT;若所有字符未发完则NEXTRET;若
30、所有字符已发完,则返回硬件实现方式中采用UART芯片,其硬件框图如图3所示。其工作原理是:当串行发送时,CPU通过数据总线将8位并行数据送到“发送数据缓冲器”,然后并行送给“发送移位寄存器”,在发送时钟和发送电路的控制下通过TXD线逐位地发送出去,起始位和停止位是由UART在发送时自动添加上去的,UART发送完一帧后产生中断请求,CPU响应中断后可以把下一个字符送到“发送数据缓冲器”,重复上述过程;当串行接收时,UART监视RXD线,并在检测到RXD线上有一个低电平时就开始一个新的字符接收过程,UART每接收到1位二进制数据位后则使“接收移位寄存器”左移一次,连续接收到一个字符后则并行传送到“
31、接收数据缓冲器”,并通过中断促使CPU从中取走所接收的字符。UART的硬件结构框图如图83所示。图83 UART硬件框图2.MCS51单片机的串行接口MCS51内部含有一个可编程的全双工串行通信接口SIO,具有UART的全部功能,该接口电路不仅能同时进行数据的发送和接收,也可以作为一个同步移位寄存器使用。其电路功能框图如图84所示。在异步通信中,发送和接收都是在发送时钟和接收时钟控制下进行的,发送时钟和接收时钟必须同字符位数的波特率保持一致,它们既可以由主机时钟经分频获得,也可由内部定时器T1或T2的溢出率经16分频后提供。串行口的发送过程源于CPU执行如下一条指令:MOV SBUF,A ,当
32、发送电路成功地将这一字节发送出去后,产生一中断请求,CPU清除发送中断标志后,可执行下一条MOV SBUF,A指令将下一个数据放入发送缓冲区并发送出去。串行口完成一个字符的接收后,将产生一个中断,CPU可执行MOV A,SBUF 将数据读走,并清除接收中断标志。串行控制寄存器SCON和PCON负责对串行通信工作方式的配置,同时在方式1和方式3中还需要结合T1定时器完成配置。MCS51对串行口的控制是通过SCON实现的,也与电源控制寄存器PCON有关。图85描述了SCON和PCON各位的含义。串行口的工作方式和所用的波特率对照表如表81所示。图84 MCS-51串行口发送和接收电路框图 图85
33、SCON和PCON中各位定义3.串行口的通信波特率方式0 的波特率:在方式0 下,串行口的波特率是固定的,其值为fosc/12(fosc为主机晶振频率);方式2的波特率:在方式2下,通信波特率为fosc/32或fosc/64,其选定公式为:波特率(2SMOD64)fosc方式1或方式3的波特率:在这两种方式下,串行口的波特率是由定时器的溢出率决定的,因而波特率是可变的,相应的公式为:波特率(2SMOD32)定时器T1的溢出率而 定时器T1的溢出率(fosc/12)(1(2K初值)因此 波特率(2SMOD32)(fosc/12)(1(2K初值)(式中,K为定时器T1的位数,它和定时器T1的设定方
34、式有关)。实验内容和步骤1. 软件仿真,要求单片机与单片机之间的通信,大家可以先在protues中仿真出来,再在实验箱上调试。protues原理图已上传到共享。要求编写程序实现A机的开关控制B机的LED灯,B机的开关控制A机的LED灯,用查询方式和中断方式编程。编程环境:keil或DVCC实验系统+protues6中断方式例程:org 0ljmp startorg 23hljmp scon_int org 30hstart:mov scon,#50hmov tmod,#20hmov tl1,#0fdhmov th1,#0fdhsetb tr1clr et1setb essetb eamov s
35、buf,#0 sjmp $ scon_int:jnb ti,receive clr timov a,p1mov sbuf,areceive:jnb ri,exitclr ri mov a,sbufmov p0,aexit:retiend2.硬件实验2.1将串行口配置为方式0,利用实验箱上移位寄存器电路检测串行口是否能正常工作;硬件连接如图6所示。图86 测试串行口的硬件连接示意图 ORG 0 LJMP START ORG 100START: MOV SCON,#0;初始化为方式0MOV A,#0FCH ;0的字形码 MOV SBUF,AMOV A,#60H ;1的字形码 MOV SBUF,AM
36、OV A,#0DAH ;2的字形码 MOV SBUF,AMOV A,#0F2H ;3的字形码 MOV SBUF,A END实验现象及结论:1.单步执行左边的程序可以看到LED上依次显示0,1,2,3的字形;2.表明串行口工作基本正常。注:通过简单方法可以检测移位寄存器74LS164电路是否正常工作:将data端连接一个开关K1,clk端与/sp相连接,按动脉冲开关可以发送一个负脉冲,它作为移位寄存器的时钟信号,可以将K1的数据逐位送入74LS164,使得七段数码管逐段点亮和熄灭,从而判断其是否正常工作。然后按照软件仿真的电路进行硬件实验。2.2单片机与PC的通信A) 电路连接:J10PC串行口
37、,P3.0RXD,P3.1TXD。如图8-7所示。图87 单片机与PC通信电路连接图B)运行DVCC系统所带的“串行口发送程序”,根据样例程序,编写相同功能的单片机程序,在LED是显示“串行口发送程序”按下的字符。“串行口发送程序”如图88所示,首先根据单片机程序中对串行口的波特率的初始化设置,选择正确的波特率和通信端口,并打开端口。然后用鼠标点击右边的数字按钮。图88串行口发送程序界面单片机端的接收并显示的程序如下:/sy8-1/test loop disp#include #include absacc.h/#include math.h#define D8155CON XBYTE0xff
38、20#define D8155A XBYTE0xff21#define D8155B XBYTE0xff22#define D8155C XBYTE0xff23unsigned char data dispbuf6;/,t0cnt;unsigned char code zixing16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;void delay(unsigned char n);void delay(unsigned char n)unsigned char i,j;/,k
39、;for(i=0;in;i+) for(j=0;j20;j+) /for(k=0;k5) j=0;/依次在每个LED上 for(i=0;i6;i+) /动态显示 D8155A=mski; D8155B=zixingdispbuf5-i; delay(20);实验现象及说明:1.全速运行单片机程序,在点击“串行口发送程序”的按钮时,单片机的LED依次显示数字;2. 从调试程序的过程中可知:“串行口发送程序”发送来的是数值而不是ASCII码,这点与ms comm控件不同。C)自编单片机程序,向PC发送字符串,在PC中运行超级终端程序,接收并显示这些字符串。C语言源程序:#include #incl
40、ude absacc.h#define D8155CON XBYTE0xff20#define D8155A XBYTE0xff21#define D8155B XBYTE0xff22#define D8155C XBYTE0xff23unsigned char data dispbuf6;/,t0cnt;unsigned char code zixing16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;unsigned char code mstr=2005 ji dianzi
41、 xingxi gong chen!;void delay(unsigned char n);void main(void) unsigned char i,c1,j,k; unsigned char volatile msk;delay(10); D8155CON=3;dispbuf0=0;dispbuf1=1;dispbuf2=2; dispbuf3=3;dispbuf4=4; dispbuf5=5; SCON=0x52;TMOD=0x20;TL1=0xF3;/1200bpsTH1=0xF3;TR1=1;ET1=0; ES=1;k=0; msk=1; j=0;while(mstrk!=0)
42、/发送字符串 if(TI=1)/发送缓冲区空 TI=0; SBUF=mstrk; while(TI=0&mstrk!=0);/等发送完成 k+;void delay(unsigned char n)unsigned char i,j;/,k;for(i=0;in;i+) for(j=0;j20;j+) /for(k=0;k50;k+) ;实验现象及说明:1.启动超级终端,设置波特率为1200,N,8,12.运行单片机上的程序,可以在超级终端上接收到字符串2005 ji dianzi xingxi gong chen!3.超级终端是以字符ASCII码的方式工作。D) 利用VB或VC编程软件所带的
43、ms comm.控件编程,实现“串行口发送程序”相似的功能。用VB+MS COMM控件设计的类似DVSIO程序的界面如图89所示。.按“1”按钮将字符“1”发送到单片机,按“2”按钮将字符“2”发送到单片机,按“递增”按钮将字符“0”“9”依次发送到单片机。实现的程序如下:Private Sub Form_Load()选择端口 MSComm1.CommPort = 1初始化波特率,字符帧格式 MSComm1.Settings = 1200,N,8,1读取缓冲区方式:全部读出 MSComm1.InputLen = 0打开通信端口 MSComm1.PortOpen = True初始化递增按钮用到的变量 key1 = 0End SubPublic key1 As Integer 全局变量Private Sub Command1_Click() 发送字符串 MSComm1.Output = 1 “1”End SubPrivate Sub Command2_Click()发送字符串 MSComm1.Output = 2 “1”End SubPrivate Sub Com
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025出租专业租赁公司脚手架租赁合同
- 2025厂房及场地租赁合同范本涵盖场地使用与维护责任
- 2025版租赁住宅与室内空气质量检测合同
- 2025版外墙保温保温材料研发与推广应用合同
- 2025版能源企业员工劳动合同及节能减排承诺书
- 2025年度事业单位与劳动者双方聘用合同及劳动合同
- 2025版青少年素质教育培训合作合同
- 2025年度环保餐具采购与销售合作协议
- 2025年度银行存款质押贷款业务合同模板
- 2025版现代农业用地及开发权转让协议
- 深圳某电厂锅炉维修改造施工组织设计-new(常用版)
- GB/T 4950-2021锌合金牺牲阳极
- 中药调剂技术-课件
- 证券从业考试基础模拟卷二(题目+解析)
- 水轮发电机讲义课件
- 信息系统运维服务方案
- 化工试生产总结报告
- 导数与原函数的对称性 微专题课件-2023届高三数学一轮复习
- 安全教育:不私自离开幼儿园
- 刑法各论(第四版全书电子教案完整版ppt整套教学课件最全教学教程)
- 健康教育学【完整版】
评论
0/150
提交评论