版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机C语言程序设计实验指导书(必修)电子与信息工程学院储茂祥巩荣芬主编单片机C语言程序设计实验指导书- -、/1-冃IJ吞单片机体积小,重量轻,具有很强的灵活性,而且价格不高,越来越得到广泛的应用。而C语言是一种编译型设计语言。它兼顾了多种高级语言的特点,并具备汇编语言的功能。用C语言来编写目标系统软件,会大大缩短开发周期,且明显的增加软件的可读性,便于改进和扩充,以研制出规模更大、性能更完备的系统。用C语言进行8051单片机程序设计是单片机开发与应用的必然趋势。单片机的程序设计应该以C语言为主,以汇编语言为辅。而且釆用C语言也不必对单片机和硬件接口的结构有很深入的了解,编译器可以自动完成变
2、量的存储单元的分配,编程者就可以专注于应用软件部分的设计,大大加快软件的开发速度。釆用C语言可以很容易地进行单片机的程序移植工作,有利于产品中单片机的重新选型。为此,特开设了单片机的C语言应用程序设计这门选修课。课程的内容主要包括了单片机C语言编程的基本语法和思想,单片机内部资源的C编程,单片机常见外部扩展资源的C编程等。基于本课程的特点,结合高等院校要求,为了不断提高大学生的实验研究能力、分析编程能力、总结归纳能力和解决实际问题的能力,特意编写了本实验指导书,以指导如何利用现有的实验设备进行单片机内外资源的C编程以及简单系统的开发等。它不仅包括了一系列的验证性实验,而且还包括了综合性和设计性
3、实验。实验的开设有利于培养学生分析问题和解决问题的能力,以及使抽象的概念和理论形象化、具体化,对增强学习的兴趣有极大的好处,做好本课程的实验,是学好本课程的重要教学辅助环节。总之,不论是验证性实验还是综合性实验都会加深学生对基本知识的理解和渗透,提高他们的动手操作能力,以更好的适应时代发展的需要。本实验要求同学在做实验之前要很好的完成预习任务和调试程序的编写;在完成每个实验后,要认真书写实验报告,对实验程序的正确性进行分析,并写出调试心得和体会。单片机C语言程序设计实验指导书- -目录TOC o 1-5 h z前言1 HYPERLINK l bookmark2目录2 HYPERLINK l b
4、ookmark4实验一I/O口扩展实验3 HYPERLINK l bookmark20实验二定时器及外部中断实验8 HYPERLINK l bookmark44实验三8255扩展八段数码管实验12 HYPERLINK l bookmark60实验四8253多路定时/计数器实验15 HYPERLINK l bookmark78实验五8279键盘显示扩展实验(综合性)18 HYPERLINK l bookmark94实验六点对点异步串口通信实验(设计性)21 HYPERLINK l bookmark108参考文献24单片机C语言程序设计实验指导书- -单片机C语言程序设计实验指导书- -+5V单片
5、机gOg2输岀口J74LS273,LE1输入口P00-P07单片机实验一I/O口扩展实验一、实验目的1、学习在单片机系统中扩展简单I/O口的方法。2、学习C51语言数据输入,输出程序的编程方法。二、实验设备EL-MUT-III型单片机实验箱、8051CPU模块、PC机三、实验内容本实验的原理图如下图所示。r-自A该实验利用单片机C语言编程,实现单片机数据口由74LS244读取八个开关的状态,并将此状态由单片机数据口输出,经过74LS273锁存并驱动发光二极管显示。其中74LS244的输入端口接开关KIK8,74LS273的输出端口接发光二极管。74LS244的片选CS244接CS1,表明74L
6、S244对于单片机而言的外部地址为0CFA8H,74LS273的片选CS273接CS2,表明74LS273对于单片机而言的外部地址为OCFBOH。四、实验原理1、I/O接口MCS-51系列单片机共有4个I/O口,分别是PO、Pl、P2、P3,此四个接口都可以单独的做输入或输出使用。实际应用中,P0口用于输出外部数据存储器的低8位,并分时复用作为与外部连接的数据总线口;P2口用于输出高8位地址;P3口常操作于定义的第二功能;P1口一般为留给用户使用的基本I/O口。单片机C语言程序设计实验指导书在单片机C语言中,对于端口(位)的使用可以使用sbit来定义,如:sbitP10=Pr0定义变量P10指
7、向P1端口的第0位在程序中就可以使用P10变量來访问P1口的第0位。对于POD、P2口,一般在访问外部数据空间时使用,在单片机C语言中的使用方法可以看下例:includeincludettdefineINPORTXBYTE0XCFA8/定义变量INPORT指向外部空间0XCFA8defineOUTPORTXBYTEOXCFBO/定义变量OUTPORT指向外部空间OXCFBOvoidmain(void)OUTPORT二INPORT;该例实现了将外部空间OxCFAS的数据转存入外部空间OxCFBO的功能,注意的是,在单片机C语言中,对于外部空间的使用,需要用XBYTE关键字來定义,而且程序要包含a
8、bsacc.h这一函数库。本实验利用单片机的外部扩展空间,实现由单片机数据总线口读取固定地址的外部空间状态,同时将状态数据由单片机数据总线口输出到另一外部空间显示。本实验中扩展的芯片可理解为单片机对应地址的外部空间,对应芯片的外部地址由片选信号确定,对于本实验原理图,74LS244的片选CS244接CS1,表明74LS244对于单片机而言的外部地址为0CFA8H,74LS273的片选CS273接CS2,表明74LS273对于单片机而言的外部地址为OCFBOHo因此,可利用POD、P2口实现外部存储空间的访问,方法如上面的例子。如果单片机外扩芯片过多,则MCS-51总线口的负载过重,74LS24
9、4是一个扩展输入口,同时也是一个单向驱动器,它可以减轻总线口的负担。本实验程序为减少总线口读写的频繁程度,需要增加一段延时程序,延时时间约为0.01秒,不会影响显示的稳定。单片机C语言中延时的方法可以采用:for循环、定时器定时。2、仿真调试单片机C语言的实验将以EL-ML-T-III型单片机实验箱为硬件调试平台,以EL型教单片机C语言程序设计实验指导书- -学实验环境软件为调试工具,实现本课程所有实验的仿真、调试任务。首先打开实验台的电源,打开PC机进入桌面。然后点击桌面快捷图标MCS51,以默认的通信方式点击确定。在点击确定按钮的同时,立即打开实验台左上方的POWERSWITCH开关,此时
10、,调试软件能够正确地进入调试环境,如图1所示。图1新建C51文件如图1所示点击:文件新建C61文件,建立新C51文件,即可进入编辑环境,编辑C51语言代码,如图2所示。|IE3II04.ilJ|ttlncludc?svs:/丈彳卡定工阪包吿扌艮第角刮#336)富义ttlncludc?TCPIPfrd.rv*MxK4-ttcloFl.noU16unsl.gnoooltAt:UdoFlnoBOOLtXt:MdoFXnotzrtio1MdoFlnoFlsoOmo1.1displCunslgnodunar*cti);urvsjlgrteUcKofj?t_c|unsignedctiorxdot:t?mp
11、7f:t?npcomfxuFcom*xl*e9!;confxdf?!;Fconfxcl-t?lcom_fxuFFt?f_?confx!-?Fraturnt:omp;mo1.1do1amsar*广警尹孟黑克*鑒弦盟韶崙鬃撅匿花扛和弊昊就儒据鬆-嚎片供用咙X霑花肯1L1J八方贮&12行苗刿辺*I图2编辑源代码编辑完成代码后,可点击:文件保存,并选择保存路径和设定文件名,就可实现文件的保存。注意的是,文件保存的路径不可太深,且不要有中文目录,文件名也不要太长,可参照下例:D:workexl.c源代码编辑完成后,进行编译、链接调试,如图3所示。只要依次点击:编译、链接按钮即可,也可以.育接点击编译链接
12、按钮。编译、链接按钮都有快捷键方式,可以使用快捷键,实现同样的功能。图3编译、链接在编译、链接的过程中,会弹出对话框,可观察源代码中是否有错,如果有错,可修改源代码,重新编译、链接,直至正确为止。上面的过程实际上是软件调试的过程,接下来要进行硬件调试。首先在断电的情况下将实验箱对应电路连线,组成需要的硬件电路,然后按上面步骤做好软件调试,正确无误后,开始进行硬件调试。如图4所示,点击调试按钮,实现程序的编译、链接代码HEX文件下载到实验箱单片机的程序区。图4调试程序下载完成后,进行硬件调试,实现程序对应的功能。如图5所示,对应一系列的按钮,完成各种调试功能,一般情况下如果程序完全正确无误后,可
13、直接点击运行按钮,此时,程序以全速的方式运行,我们就可以观察实验箱的实验现象。实验中,我们还要注意的是,如果硬件调试有问题,经过修改程序需要重新硬件调试的时候,可以使用如下方法实现快速的重新调试:如图4点击单片机复位按钮,弹出确定提示框,根据提示按一下实验箱左下方的RESET按钮,并立刻点击确定按钮,如果实验箱上的六个数码管显示c_,表明复位且通信良好,此时就可重新进行硬件调试了,a)如果显示p_,表示复位或者通信存在问题,需要重新操作。HELLO.CCopyright:1995-1999Kt?ilScttincluclo健序血伎:Q)G去执行Q)跟;空用里纵行到光标行加)F4从光保待抄待(Z
14、)Ctrl+F2FftF7P9*/ont*ogistot*doc1t:ionsed801aerXvatLuettinclulot:ionsFor*I/FunctioncWlFdeFMONITORSIcharcode?t-?5rt*urnendlF3Ctrl+B.ngwithNonlt:or-51needsw.一.se?rialinf:t?-ruptif/*StopExectlonwithSerLaXIntr./*Isenabled*/K1.32C8UC61一LHKL.I.OJ立件(E)冊辐CE)玫石09探H狂PC)販选顼CO)由口爼)帘ftbQP-c5XG1因WIWI.X.GU丄貯IPSShi
15、t4F5MQiwntoo单片机C语言程序设计实验指导书- #-单片机C语言程序设计实验指导书- #-rtiwmdinCFunct:ion-Programoxocut:icnst:art:sh?t-rofst:acli.nit:iili.Zdt:i.n-voidmainvoid)LED5、LED6-东西方向的绿灯、黄灯、红灯要完成本实验,首先必须了解交通路灯的亮灭规律,本实验的亮灭规律如下:1、初始态是两个方向路口的红灯全亮。2、东西路口的绿灯亮,南北路口的红灯亮,东西方向通车。3、延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。4、闪烁若干次后,东西路口红灯亮,同时南北路口绿灯亮,南北方向开始通
16、车。5、延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,如此反复下去。本实验以单脉冲为中断申请,表示有急救车通过。特别注意的是中断现场的保护。要求用软件或者定时器来完成延时。2、实验说明本实验74LS273芯片对于单片机而言,为外扩的外部资源,其对应的地址由片选信号CS273控制,本实验74LS273的片选CS273接片选信号CSO,则74LS273项对于单片机的外部空间抵制为OxCFBO,C51语言定义如下:defineOUTPORTXBYTEOxCFBO因此交通灯(发光二极管)的显示数据可以赋给OUTPORT变量,实现结果的输出。本实验中还要注意的是,交
17、通灯的每一种状态的显示,都需要延时一段时间再切换到另一种状态,从而实现每一种状态的稳定显示。其C51语言的实现方法如下:OUTPORT二x;/显示交通灯某一状态数据x单片机C语言程序设计实验指导书- -Delay(1);/延时1msOUTPORT二y;显示交通灯另一状态数据yDelay(1);/延时1ms实验中涉及到急救午通过,要求使用外部中断的方式实现。在本实验中我们可以利用单片机的外部中断INTO实现。也就是说,急救午通过时,首先利用INTO外部中断给单片机发脉冲,告知单片机,急救车要求通过,然后单片机接收到脉冲,并做出判断并使东西和南北方向上的红灯亮,同时延时10秒,10秒后表明急救车已
18、经通过,此时单片机恢复原状态。利用C51语言可定义外部中断如下:voidRescure_bus()interrupt0EA二0;/关闭中断,即不允许其它中断OUTPORT二0 x11;/0 x11为东西和南北方向上红灯亮的状态数据Delay(10000);/延时10sEA二1;/开启中断在调用外部中断0时,一定要注意的是中断现场的保护,要就是说,中断完成后,一定能够恢复中断前的状态,那么在中断程序中使用的变量、外部端口、内部资源,如果在中断前正在使用,那么在中断开始前一定要保护,中断后一定要恢复。同时,注意的是由于在实验中使用到单片机资源外部中断0,需要对对应的特殊寄存器作一定的配置。首先需要
19、定义特殊寄存器变量:sfrIE=0 xA8;sbitEA=IE7;sbitEXO二IE0;当然,这些特殊寄存器的定义实际上在reg51.h库中定义了,因此在C51编程时,只要包含上reg51.h即可,如下所示:include本实验需要使用到这些特殊寄存器,就是在程序初始化时需要对这些寄存器赋初值,才可保证对应的INTO中断正常工作。本实验赋初值如下:ITO=1;EXO=1;EA=1;本实验可以根据实际实验箱的配置来选择以上方案中的任意一种。本实验按照方案二来设计,选用实验箱上八个发光二极管中的六个,即红、黄、绿各两个。例如将L1(红)、L2(绿)、L3(黄)作为东西方向的指示灯,将L5(红)、
20、L6(绿)、L7(黄)作为南北方向的指示灯,同学们还可以用别的设计方法。各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。五、实验步骤1、将74LS273的输出0007接发光二极管L1L8,74LS273的片选CS273接片选信号CSO,此时74LS273的片选地址为CFAOH。2、脉冲输入端P_接8051CPU模块上的INTO,用来表示救护车的急救信号。3、按实验内容以及方案二编写程序。4、仿真调试,观察LED显示情况是否与实验内容相符。六、实验报告要求1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。2、画出流程图,并写
21、出实验仿真调试后正确的程序。3、对实验思考题加以分析,按照要求做出回答,并作实验总结。七、实验思考题1、本实验作了哪些中断现场保护,并解释其保护的过程?2、实验总结(实验调试过程中的问题和调试体会)。预习任务:1、按照指导书提供的方案画出程序实现的流程框图。2、编写实验程序来模拟有急救车的交通灯控制。3、用软件延时或者定时器延时來完成延时函数的书写。实验三8255扩展八段数码管实验一、实验目的1、学习8255芯片的结构及编程方法。2、掌握八段数码管的使用方法,及动态显示的编程方法。二、实验设备EL-MUT-III型单片机实验箱、8051CPU模块、PC机三、实验内容实验的原理图如下所示:08段
22、码v位码&本实验通过单片机控制8255芯片,利用8255的PA口输出数码管的段码,PB口输出数码管的位码。编写C51程序实现六个数码管以固定时间间隔交替动态显示“012345”和“ABCDEF”。四、实验原理8255芯片是单片机通用的并行接口扩展芯片,可扩展PA、PB、PC三个8位并行口。对于单片机而言,如果外接8255芯片,那么8255所对应的外部空间地址不再是固定为一个值了。本实验8255的片选信号接CS0,则表明8255相对于单片机的外部地址范围是0 xCFA0-0 xCFA7,此时8255的PA口、PB口、PC口、控制字寄存器对应于单片机的外部地址为:OxCFAO、OxCFAl、0 x
23、CFA2、0 xCFA3,其对应C51定义可如下例:ttdefinePAXBYTEOxCFAOttdefinePBXBYTEOxCFAlttdefinePCXBYTE0 xCFA2ttdefinePCTLXBYTE0 xCFA3对于八段数码管,显示数据时需要同时送入段码和位码,位码就是选择哪一个数码管接收段码数据,段码就是需要显示的字符的编码。在C51中段码可定义如下:unsignedcharcodetable17=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7f,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,
24、0 x71,0 x00;上面定义的是字符0-9.A-F以及黑屏的段码数据,而且是共阴极八段数码管的段码数据。当需要显示某一个字符时,只要査询tabled数组即可,如:显示A字符,直接调用table10即可。对于单片机控制8255,实现依次点亮数码管的方法,可参照下例程序:mainm=l;PCTL=0 x80;/设置PA、PB的工作方式while(l)保证0-5字符能够稳定显示在数码管上for(i=0;i=5;i+)PA=tablei;/六个数码管依次点亮0-5PB=255-(mi);/选通对应的数码管,如:0字符由数码管1点亮Delay(1);/延时1ms对于8255芯片的控制字的各个位含义以
25、及对应的方式可査阅8255芯片的资料。五、实验步1、实验连线:PA0PA7接LED-ALED-DP,PB0PB5接LED1LED6,8255cs接片选信号CSO,LEDJUMP的帽全部去掉。2、按实验内容编写程序,实现八位数码管交替动态显示“012345”和“ABCDEF”。3、仿真调试,观察数码管的显示情况。六、实验报告要求1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。2、画出流程图,并写出实验仿真调试后正确的程序。3、对实验思考题加以分析,按照要求做出回答,并作实验总结。七、实验思考题1、本实验如果实现“012345”从右向左依次进入六个数码管动态显示,该如何完成?请画
26、出流程图。2、实验总结(实验调试过程中的问题和调试体会)。预习任务:1、按照上述要求画出只动态显示“012345”的程序流程框图,并编写相应的程序。2、按照上述要求画出只动态显示“ABCDEF”的程序流程框图,并编写相应的程序。3、用定时器延时和软件延时两种方法来完成延时函数的书写。单片机C语言程序设计实验指导书- -单片机C语言程序设计实验指导书- -实验8253多路定时/计数器实验一、实验目的1、学习8253扩展定时器的工作原理。2、学习8253扩展定时器的使用方法。3、继续熟练掌握数码管的显示。二、实验设备EL-MUT-III型单片机实验箱、8051CPU模块、PC机三、实验内容本实验的
27、原理图如下所示:LED-ALED-DPP单片机且CS1、27310007)4也数码管P0PIOP13TLED1LED4TOC o 1-5 h z打825314分别与八段数码管的LED1LED4相连。3、将8253的8253CLK0与CLK1相连,将8253的GATEO与P17相连,将CS8253与CSO相连。4、按实验内容编写程序,实现四位数码管上显丞8253定时/计数器0对输入脉冲的计数值,即闩锁数值5、仿真调试,观察数码管的显示情况。六、实验报告要求1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。2、画出流程图,并写出实验仿真调试后正确的程序。3、对实验思考题加以分析,按
28、照要求做出回答,并作实验总结。七、实验思考丿1、理论计算本实验计数器0的闩锁数值,与实验得到的显示结果进行比较。2、假定8253的三个计数器对同一输入信号计数,在三个输出端分别作2分频、4分频、8分频,画出实现该功能的流程图,并写出对应的控制字。3、实验总结(实验调试过程中的问题和调试体会)。预习任务:1、预习8253的控制字的格式、8253的工作方式以及8253的操作过程。2、通过理论计算得到闩锁数值,然后与实验得到的显示结果进行比较。实验五8279键盘显示扩展实验(综合性)一、实验目的1、了解8279键盘/显示控制器的匸作原理,掌握其编程方法。2、了解键盘电路工作原理及编程方法。3、熟悉L
29、ED显示接口电路及】作原理和编程方法。二、实验设备EL-MUT-III型单片机实验箱、8051CPU模块、PC机三、实验内容本实验的原理图如下所示:Q/T2LTTaILTTX1OLTTYovre-iaurrc-iUTC-1coSLba.i2LLZL1xldIXHd113LIXLBE-八Tzt-xt11/qap0CITZCC5八T-BfiZCzbx1XOID/S$CLLRQSQTRLOHLIHL1.HL1HLLOE1LHC1SLODIa-112T?in*rLcntRLTSHIFTc-?-cruS单片机C语言程序设计实验指导书- #-ra-=r单片机C语言程序设计实验指导书- #-单片机C语言程序
30、设计实验指导书- -8279与一个16个键的小键盘相连,16键的编码为0、1、2、3、4、5、6、7、8、9、A、B、C、D实验要求和内容如下:1、如果按下的是数字键,则在显示器上将该数字依次显示。2、如果按下的是“C”键,则显示器全灭。本实验中各个按键还可以实现其它的功能,可以自行设计安排,并编程实现。四、实验原理8279是一种可编程键盘/显示器接口芯片,利用它的扫描传感器阵列方式,可实现多路开关变位信号采集及处理,然后将处理结果送到CPU,这样可节省CPU资源。其功能有:接收來自键盘的输入数据,并作预处理;数据显示的管理和数据显示器的控制等。8279的引脚功能、控制字以及对应的工作方式可査
31、阅8279芯片的资料。本实验中已经将键盘控制芯片8279的地址固定为OxCFES、0 xCFE9,即8279的数据端口地址对应OxCFES,8279的命令字和状态字的地址为0 xCFE9。可定义如下:ttdefinecomXBYTE0 xCFE9ttdefinedataportXBYTEOxCFES实验中键盘接口与8279的回复线RLORL7、扫描线SLOSL2相连,组成键盘输入电路,六个数码管与8279的OUTAOOUTA3、OUTBOOUTB3以及驱动电路组成显示回路。8279芯片在C51编程中是较为复朵的,因为它有较多的控制命令字和状态字,学会使用这些命令字是很重要的例如,8279初始化
32、时首先需要执行清除命令:com=0 xdl;/总清除命令doACC=com;/读取8279状态while(ACCA7=l)/等待清除结束同时,需要设置键盘工作方式、显示方式、时钟分频等命令字,使8279工作在要求的方式中:com=0 x00;/8个字符显尔,左入口;编码扫描键盘,双键锁定com=0 x2a;/10分频键盘有无键按下的判断可以如下判断:k二com;/读取状态字while(k&Of)=O);/判断是否为0:二0等待;H0有键按下,往下执行实现读取键盘值的命令可参照如下例程:com=0 x40;/读FIFORAM命令,地址0 x0000i二dataport;/读取一个键盘数据i=i&
33、0 x3f;/取低6位为键盘值8279的显示功能的实现可借鉴如下程序:for(i=0;i8;i+)com=i+80;/写显RAM命令,显示区地址由i控制dataport=tablei;/显尔的字符编码输出到数据端口本实验,是上面各种命令字的一种综合应用的实例,大家可以査阅8279芯片资料,学会使用各种具体的命令,从而完成对应的任务。五、实验步骤1、将键盘KA10KA12接8279的KA0KA2;RL10RL17接8279的RL0RL7。2、按实验内容编写程序,实现按下数字键,则在显示器上将该数字依次显示,按下“C”键,则显示器全灭。3、仿真调试,按动键盘,观察显不的键值与给定键值是否相符。六、
34、实验报告要求1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。2、画出流程图,并写出实验仿真调试后正确的程序。3、对实验思考题加以分析,按照要求做出回答,并作实验总结。七、实验思考题1、假定实现按下“D”键,6个LED显示123456的功能,请画出其流程图。2、实验总结(实验调试过程中的问题和调试体会)。预习任务:1、査阅并熟悉8279芯片资料。2、自己査阅八段数码管LED显示器。3、按照实验内容,编写相应的程序实现各个功能。单片机C语言程序设计实验指导书- -实验六点对点异步串口通信实验(设计性)一、实验目的1、掌握串行口工作方式的程序设计,掌握单片机通讯程序的编制。2、了解
35、实现串行通讯的硬件环境,数据格式、数据交换的协议。3、掌握串行通讯中波特率的设置。4、在给定通讯波特率的情况下,会计算定时时间常数。二、实验设备EL-MUT-III型单片机实验箱、8051CPU模块、PC机三、实验原理MCS-51单片机串行通讯的波特率随串行口工作方式选择的不同而不同,它除了与系统的振荡频率f,电源控制寄存器PCON的SMOD位有关外,还与定时器T1的设置有关。1)在工作方式0时,波特率固定不变,仅与系统振荡频率有关,其大小为f/12。2)在工作方式2时,波特率也只固定为两种情况:当SMOD=1时,波特率=f/32当SMOD=O时,波特率=f/643)在工作方式1和3时,波特率
36、是可变的:当SMOD=1时,波特率二定时器T1的溢出率/16当SMOD=O时,波特率二定时器T1的溢出率/32其中,定时器T1的溢出率=f/(12*(256-N),N为T1的定时时间常数。在实际应用中,往往是给定通讯波特率,而后去确定时间常数。例如:f=6.144MHZ,波特率等于1200,SM0D=0时,则1200=6144000/(12*32*(256-N),计算得N二F2H。编程时注意两点:一是初始化,设置波特率和数据格式,二是确定数据传送方式。数据传送方式有两种:查询方式和中断方式。在双机通信实验时,为确保通讯成功,甲机和乙机必须有一个一致的通讯协议,同学们可以自行设定,也可按照我们设
37、计的通信协议来做,我们提供的通信协议如下:通讯双方均采用2400波特的速率传送,甲机发送数据,乙机接收数据。双机开始通讯时,甲机发送一个呼叫信号“06”,询问乙机是否可以接收数据;乙机收到呼叫信号后,若同意接收数据则发回“00”作为应答,否则发“15”表示暂不能接收数据;甲机只有收到乙机的应答信号“00”后才可把要发送的数据发送给乙机,否则继续向乙机呼叫,直到乙机同意接收。其发送数据格式为:字节数n数据1数据2数据3数据n累加校验和字节数n:甲机将向乙机发送的数据个数数据1数据n:甲机将向乙机发送的n个数据累加校验和:字节数n,数据1,,数据n这(n+1)个字节内容的算术累加和。乙机根据接收到的“校验和”判断已接收到的数据是否正确。若接收正确,向甲机回发“OF”信号,否则回发“F0”信号给甲机。甲机只有接到信号“OF”才算完成发送任务,否则继续呼叫,重发数据。在串行通信的C51编程当中,将会涉及到一系列的特殊寄存器的使用,如:TMOD.PCON、SCON、SBUF、TI、RI、TH、TL1、TR1等。它们的使用方法如下:PCON=OxOO;/SMOD=O,串行波特率未加倍SC0N=0 x50;/方式1;接收允许TMOD二0 x20;/定时器1方式2TLl=0 xF2;/初始值,用于计算波特率THl=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海市浦东新区南片联合体2025-2026学年初三教学质量统一检测试题(一)物理试题试卷含解析
- 2026年【中考猜想】福建省全国初三2月大联考(全国卷)数学试题含解析
- 2026年大学大一(经济学原理实训)经济学实训综合测试试题及答案
- 患者权利与神经内科护理伦理
- 2025年前台防疫接待礼仪高频题
- 护理专业护理心理护理课件
- 护理时间管理:减少工作失误的方法
- 《美容消毒与卫生管理》医学美容技术专业全套教学课件
- 2026三年级数学上册 分数的实际应用
- 2026四年级数学下册 0加任何数的运算
- PLC自动控制原理课件
- 《机电产品营销》课件-项目一:认识机电产品营销
- 2026届湖北省华中学师范大一附中中考数学押题试卷含解析
- 建筑工程施工发包与承包违法行为认定查处管理办法培训
- 22J403-1楼梯栏杆栏板
- 林长制培训课件
- 《数智时代下的供应链管理:理论与实践》课件 第十二章 供应链金融
- 2025至2030中国中医药行业市场发展现状及竞争格局与投资风险报告
- 教科版科学五年级下册6 食物链和食物网课件(内嵌视频)
- 数学 2024-2025学年人教版七年级数学下册期末+试卷
- 急诊成人社区获得性肺炎临床实践指南(2024 年版)解读
评论
0/150
提交评论