已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机实验指导书XX版 附C51源码 单片机原理与应用实验指导书编写靳桅、邬芝权、李骐西南交通大学峨眉校区计算机与通信工程系实验中心(9.9)内容简介-2-本实验指导是为适应西南交通大学峨眉校区计算机系开设单片机原理与应用方面的课程需做大量软硬件实验的需要而编写的,供学生编程用。 完成本实验指导中的实验,可使学生基本掌握MCS-51单片机的结构原理、接口技术、程序设计技巧。 手册中详细叙述了各实验的目的、内容,列出了接线图、程序框图和实验步骤。 为了解决上述问题,我们独立开发了“学生实验板”以及相应的开发软件。 这套实验设备通过串行口下载编程,便可以直接对各个系列的单片机编程写入,从而省略了专门的单片机编程器。 学生在自己的电脑上使用这个软件,便可以进行单片机制作,给学生提供了一个节省、高效的单片机系统设计制作的开发工具。 我们精心设计了与理论课紧密结合的实验项目单片机最小系统、单片机扩展接口、单片机中断控制、单片机定时器应用、单片机键盘显示系统、单片机动态显示、单片机通信接口、A/D转换及数据采集、D/A转换及PWM控制,通过这些实验项目的训练,使学生能够较好地掌握单片机的原理与应用。 其中,单片机动态显示制作、键盘及LED显示制作。 一、概述该单片机实验板是一款高性能、低价格的开发板,可用于教学、毕业设计、电子竞赛等。 也是广大单片机爱好者、开发工程师首选的8051开发板。 二、产品特征本书中所有程序均在单片机基本实验板(如图1-1所示)上调试通过,根据所选择的MCU不同,程序下载方式分为串行口和JTAG两种方式。 如果选用SST89E564RD2单片机,可以采用串行口IAP方式下载程序,如图1-1所示;如果选用VRS51L3174单片机,则必须采用JTAG接口下载,如图1-2所示。 图1-1SST89E564RD2工作实物图图1-2VRS51L3174工作实物图为便于读者了解单片机实验板各部分功能和I/O口资源分配,在图1-3中给出了详细结构示意图,以下对其基本结构按照组成部分分别加以说明。 (274HC245ahb5V5VP0.0P0.1P0.7P2.0P2.1P2.5P2.6P2.7P1.0P1.15VP1.2P1.3P1.4P1.5P1.6P1.75VP3.2P3.3P3.4P3.5MAX232PL2303P3.0(RXD)P3.1(TXD)RS232串口USB(转)串口串口接收串口发送5VRST5V串行口RTS1K51K1K1K5VKB1KB2KB3KB4手动复位1K5V电平显示输入端电平显示简易逻辑测试a bc de fg habcdefghS1S21K?810K?41K?812MHZ(拨码)拨码)拨码开关ONOFFS1S2S3S4EAS4RTSRTSD7D6D5D4D3D2D1D0P2.2P2.3P2.4ALEPSEN(拨码)10F8051单片机继电器S3(拨码)图1-3单片机基本实验板结构示意图1.P1口LED指示灯P1.0P1.7每个I/O口上都连接一个LED发光二极管,根据图1-3中二极管连接方式,则当I/O口输出低电平时,发光二极管被点亮,例如,发光二极管D 0、D2同时点亮,其余熄灭时,P1口上数据为0xFA。 通过该部分可以实现I/O口基本操作控制、流水灯显示实验项目。 2.简易逻辑测试电路在输入端接出测量探针,通过发光二极管的亮、灭判断测量点电平高低,因此简易逻辑测试电路可以用作基本电平测量。 3.键盘控制键盘控制电路中4个按键KB1KB4分别对应I/O端口P3.2P3.5,其中KB1和KB2用于INT0和INT1中断控制,KB3和KB4可以用于T0和T1的门控或脉冲计数输入。 通过键盘控制可以实现外部中断控制、定时器门控方式、脉冲计数实验项目。 4.复位电路提供上电复位和按键复位两种方式。 5.时钟电路提供单片机系统外接无源晶体振荡器,一般采用12MHz晶振。 6.通信电路通信电路采用通用RS232和USB转串行口两种方式。 其中通用RS232连接方式采用MAX232芯片,通过普通串行口电缆和PC机连接;USB转串行口方式用于笔记本电脑或者没有串行口的PC机,它通过PL2303HX芯片连接单片机系统和计算机的USB接口,在计算机中虚拟出一个串行口用于通信,适配器实物图如图1-4所示。 3图1-4USB转串行口适配器7.数码管显示电路数码管显示电路中采用6个共阴极七段式数码管组成,通过单片机P0口送入所需要显示内容的段码码值,P2口的控制信号经过74HC245增强驱动后连接数码管的公共端(端),控制所需要选中的数码管。 利用数码管显示电路可以实现I/O口基本操作控制、电子时钟实验项目,并可以结合串行口、键盘完成综合设计实验。 8.电源系统实验板电源可采用USB或外接DC+5V电源两种供电模式。 9.JTAG下载器采用JTAG调试模式时需要辅助配套JTAG下载器,如图1-5所示。 图1-5JTAG下载器实物图10.51单片机适配模块如图1-6所示,51单片机适配模块适用于QFP封装通用51系列单片机,但由于铁电公司新推出的VRS51L3174单片机和普通单片机有所区别,所以在焊接该适配模块的时候需要根据所采用的MCU作一定调整(具体说明在适配模块电路板上有详细说明)。 图1-651单片机适配模块实物图11.其它拨码开关控制:S0控制P0口上拉电阻S1控制P1口上拉电阻S2控制蜂鸣器开关S3RTS控制开关第42章单片机实验开发板及开发软件简介1.1电路外观单片机实验开发板电路布局如图2-1。 图2-1单片机实验开发板电路布局1.2功能特点单片机实验板集成有常用的硬件资源,并且为用户提供了多种选择,使用用户可以进行各种相关的实验。 1、通过PC机USB端口提供电源,电压为5V。 2、采用RS232通信方式,可以和计算机直接通信。 3、复位方式采用上电复位,按键复位及串行口RTS端复位。 4、8个LED,6个数码管,4个按键,1个蜂鸣器。 5、可扩展IIC接口芯片。 1.351开发软件KEIL uVision2KEILC51?标准?C?编译器为?8051?微控制器的软件开发提供了?C?语言环境,同时保留了汇编代码高效,快速的特点。 C51?编译器的功能不断增强,使用户可以更加贴近?CPU?本身及其他的衍生产品。 C51?已被完全集成到?Vision3?的集成开发环境中,这个集成开发环境包含编译器、汇编器、实时操作系统、项目管理器、调试器。 ?Vision3IDE可为它们提供单一而灵活的开发环境。 详见单片机原理及C51应用教材第八章。 第53章指令系统实验实验1熟悉软件开发流程 一、实验目的1学会使用Keil-C51编程软件,并进行编译调试程序,熟悉单片机实验板;2学会观察各个特殊功能寄存器中数据的变化;3掌握单片机在执行过程中PSW的状态;4学会用汇编语言编写数据传送以及加减乘除等运算类指令程序;5学会下载程序。 二、实验设备1微机一台2KeilC51编程软件3单片机实验板4数据下载线 三、开发工具Keil uVision2IAP专用下载工具Turbo FAST UltraEdit-32 四、实验内容 (一)单片机的开发流程1建立一个工程项目,选择芯片类型,确定选项;2建立C源文件或汇编源文件;3用项目管理器生成各种应用文件;4检查并修改源文件中的错误;5编译连接通过后进行软件模拟仿真;6用编程器或用软件把程序载入单片机;7硬件测试。 (二)Keil uVision2软件的学习以下假定你在“D:单片机实验”目录下学习 1、建立一个工程项目选择芯片确定选项 (1)在工程菜单下选新建工程一项 (2)键入工程文件名dpjsy1然后保存 (3)CPU选择Atmel公司下的89C51,按确定键 (4)接着选晶振频率及生成HEX文件等操作:工程目标Target1属性在目标Target1属性选项中,可以更改CPU晶振频率在输出选项中,选择生成HEX。 2、建立汇编源文件或C源文件文件新建弹出源文件窗口,进入源文件窗口在文件窗口中源程序将文件以“dpjsy1.asm”汇编文件或“dpjsy1.c”C源文件保存在“D:单片机实验”目录下 3、用项目管理器生成各种应用文件点击Target1前之“+”号,出现Source Group1点击它,按鼠标右键会弹出下拉菜单,出现一个编译文件窗口6,选择增加文件到组Source Group1,向项目中添加dpjsy1.asm源文件在Source Group1前会出现一个“+”号,点击之弹出dpjsy1.asm文件名点击该文件名主窗口中会出现该文件窗口。 编译(Project-ReBuild alltarget files或点击快捷图标)就会生成一系列的文件如OBJ文件、LST文件、HEX文件等4检查并修改源文件中的错误如果在源文件中存在错误在输出窗口中会出现错误提示信息,你可以在源程序中修改后存盘,然后重新编译(Build)观察错误提示信息,直到没有错误(最好没有警告)5编译连接通过后,进行软件模拟仿真点击“开始/停止调试”进入软件模拟的仿真窗口,在存储器#1窗口中观察程序存贮区中的内容时,在窗口上方地址栏中输入C:0000H回车,即可。 在存储器#1窗口中观察数据存贮区中的内容时,在窗口上方地址栏中输入d:0000H回车,即可。 观察P1口的状态点击“外围设备-I/O-Ports-Port1”在程序中某一行设置断点的方法光标到该行按鼠标右键在弹出菜单中选“设置/删除断点”然后按鼠标左键,在该行首出现红色方块标志,说明该行已设置断点。 6用编程器或用软件把程序载入单片调试结束后,将生成的“工程名.HEX”文件载入芯片即可。 7硬件测试 (三)UltraEdit软件的学习UltraEdit是一套功能强大的文本器可以文字HexASCII码可以取代记事本内建英文单字检查C+及VB指令突显可同时多个文件而且即使开启很大的文件速度也不会慢软件附有HTML Tag颜色显示搜寻替换以及无限制的还原功能一般大家喜欢用其来修改EXE或DLL文件众多的游戏玩家喜欢用它来修改存盘文件或是可执行文件1.十六进制模式UltraEdit具有十六进制功能二进制代码文件就不用退回DOS下用古老PCTOOLS了我们可以打开一个文件然后选择Edit菜单下的Hex Edit文件就变为十六进制的了做了相应的修改后你可以用同样的方法将退出十六进制状态2.同时多个文件如果要同时修改很多文件可以将其全部选中然后用右键菜单中的UltraEdit-32命令可以一次全都打开打开多个文件后在工具条下面会出现文件切换条你既可以用鼠标单击相应条目来切换文件也可以按下Ctrl+F6键或Ctrl+Shift+F6键按顺序切换3.保存为项目文件如果我们经常要修改一些文件可以将这些文件全部打开然后保存为一个项目文件以后只要打开这个项目文件就自动打开了此项目下的所有文件现在已打开了好几个文件选择Project菜单下的New Project/Workspace就能将这些文件保存为一个项目文件以后可以直接打开所保存的项目文件进7行4.支持多种文件格式UltraEdit支持的文件包括*.txt*.doc*.Bat*.iniC语言源程序*.c和*.cpp头文件*.h和*.hppHTML语言*.html和*.htmJAVA语言*.java和*jav这些文件类型基本覆盖了所有的常见文件类型我们还可以让UltraEdit打开指定类型的文件添加方法为单击Advanced菜单选configuration在File Association选项卡中可以的添加新的文件类型单击File菜单下的Conversions可以展开UltraEdit的文本格式转换菜单这里提供了UNIX/MAC与DOSEBCDIC与ASCIIOEM与ANS之间文本的相互转换 (四)串行口调试软件“Turbo FAST”的学习熟悉软件的使用;打开要载入的HEX程序,按“下载”键即可。 (五)汇编指令训练将下列汇编程序编译调试,记录程序执行过程中各个寄存器的数据。 1.数据传送类指令训练ORG0000H MOV A,#34H;A=(),PSW=()MOV30H,#52H;30H=()MOV01H,#45H;01H=(),R1=()MOV31H,R1;31H=()MOV PSW,#18H;PSW=(),R1=()MOV R1,#30H;R1=()MOV67H,R1;67H=()MOV A,#82H SWAPA;A=()MOV R0,#49H XCH A,R0;A=(),R0=()MOV R1,#30H XCHDA,R1;A=(),R1=(),30H=()SJMP$END2.算术运算类指令训练ORG0000H MOV A,#85H ADDCA,#97H;A=(),PSW=()DA A;A=(),PSW=()CLR CMOV A,#47H SUBBA,#67H;A=(),PSW=()INC A8;A=(),PSW=()MOV A,33H MOVB,44H MULAB;A=(),B=(),PSW=()MOV A,93H MOVB,14H DIVAB;A=(),B=(),PSW=()SJMP$END3.逻辑运算类指令运算ORG0000H MOVA,#67H RLA;A=()SETB CRLC A;A=()RR A;A=()CPL A;A=()MOV R2,#56MOVA,#72H ANLA,#66H;A=()ORL A,R2;A=()XRL A,#44;A=()XRL A,#44;A=()SJMP$END4.IO端口实验调试下面程序,用软件仿真P1口状态ORG0000H STARR:MOVA,#01H;置初值OUT:MOV P1,A;向P1口送数ACALL DELAY;调用延时子程序CPL A;(A)反向LJMP OUT;继续从P1口输出DELAY:MOV R3,#0AH;延时子程序DL:MOV R2,#0FFH NOPDJNZ R2,$DJNZ R3,DL RETEND 五、思考题19INC A与ADD A,#01H有何不同?2写出复位后各寄存器的状态实验102汇编程序设计实验 一一、实验目的1学会用汇编语言编写控制跳转类指令程序;2学会使用KeiC51编程软件,并进行调试;3查看和分析汇编软件各个特殊功能寄存器的状态。 二、实验设备1微机一台2单片机实验板3数据下载线 三、开发工具Keil uVision2IAP专用下载工具Turbo FAST UltraEdit-32 四、实验内容用汇编语言设计以下程序。 1加法 (1)不带进位加法指令编程计算34H与46H之和,送P1口,观察结果。 (2)带进位加法指令计算34H与46H之和,送P1口,观察结果 (3)BCD码加法计算BCD码34H与99H相加,,送P1口,观察结果2减法 (1)计算34H与46H之差,送P1口,观察结果 (2)减一指令,送P1口,观察结果3乘法计算45H与34H之积,送P1,P2口,观察结果4除法计算45H除以04H,送P1,P2口,观察结果5数据传送P2FFH R038HA03H 五、思考题 1、BCD码加法如何调整结果。 2、加1和减1指令对PSW寄存器的影响如何。 实验113.汇编程序设计实验 二一、实验目的1学会用汇编语言编写控制跳转类指令程序;2学会使用KeiC51编程软件,并进行调试;3学会调用子程序;4掌握控制跳转类指令转移条件以及转移后的地址。 二、实验设备1微机一台2单片机实验板3数据下载线 三、开发工具Keil uVision2IAP专用下载工具Turbo FAST UltraEdit-32 四、实验内容用汇编语言设计以下程序。 1.清零程序 (1)实验题目把2000H-20FFH的内容清零。 (2)算法用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。 (3)程序框图开始R0=00H00送地址2000HDPTR+1,R0+1R0=FFH?结束YN图3-1实验3程序框图(一)2拆字程序 (1)实验题目把2000H的内容拆开,高位送xxH低位,低位送xxH低位,xxH、xxH高位清零,一般本程序用于把数据送显示缓冲区时用。 (2)算法用连续或单步方式运行程序,检查2000xxH中内容变化情况。 (3)程序框图开始122000H内容送A2000H内容送A结束高低位交换屏蔽高位后送xxH屏蔽高位后送xxH图3-2实验3程序框图(二)3拼字程序 (1)实验题目把2000H、xxH的低位分别送入xxH高低位,一般本程序用于把显示缓冲区的数据取出拼装成个字节。 (2)算法单步或用断点方式运行程序,检查xxH内容变化情况。 (3)程序框图开始2000H内容送A,屏蔽高位结束A和B或后送xxH交换高低位,送BxxH内容送A,屏蔽高位图3-3实验3程序框图(三)4数据区传送子程序 (1)实验题目把R 2、R3源RAM区首址内的R 6、R7字节数据传送到R 4、R5目的RAM区。 (2)算法在R 2、R3中输入源首址(例如0000H),R 4、R5中输入目的地址(例如2000H),R 6、R7中输入字节数(例如1FFFH),运行程序,检查0000-1FFFH中内容是否和2000-3FFFH中内容完全致。 (3)程序框图开始13源地址内容送A结束A内容送目的地址源地址加1目的地址加1字节数到?YN图3-4实验3程序框图(四)5数据排序实验 (1)实验题目编写并调试一个排序子程序,其功能为用冒泡法将内容RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。 (2)算法把8051中RAM50H-5AH中放入不等的数据,运行本实验程序后检查50-5AH中内容是否按从小到大排列。 (3)程序框图开始结束根据(R0)取数A清标志位R0=R0+1A(R0)?置标志位,交换内容长度减1=0?标志位=0?YYNNYN图3-5实验3程序框图(五)6查找相同数个数 (1)实验题目在2000200FH中查出有几个字节是零,把个数放在2100H中。 (2)算法在2000200FH的几个单元中填入零,运行本程序后检查2100H中是几个单元数。 (143)程序框图开始字节数送R0,查找字节送R1DPTR+1相同否?字节数到?(R1)送2100H结束R1+1YNNY图3-6实验3程序框图(六)7数据排序 (1)实验题目在片内数据存储区70H至7FH单元写入随机数,将此组数据从下到大排序,使之成为有序数列。 (2)算法本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。 再进行下一轮比较,找出第二大数据,直到全部数据有序。 (3)程序框图图3-7实验3程序框图(七) (4)编写程序,上机调试 五、思考题 1、注意执行控制转移类指令后PC寄存器的值的变化。 2、R0R7和RAM地址的关系如何?第154章单片机应用实验实验4流水灯实验 一、题目要求实现LED灯的循环闪亮 二、算法要求1.每次闪亮一个灯,2.亮的LED从左到右移,熄灭,3.亮的LED从右到左移,熄灭,返回2循环。 三、实验电路5VS2(拨码)P1.0D0P1.1D1P1.2D2P1.3D3P1.4D4P1.5D5P1.6D6P1.7D7图4-1实验四实验电路示意图 四、实验说明1.P1口是准双向口。 它作为输出口时与一般的双向口使用方法相同,当P1口用为输入口时,必须先对它置“1”。 若不先对它置“1”,读入的数据可能是不正确的。 2.延时子程序的延时计算问题。 对于程序DELAY MOV R6,#200DEL1MOVR7,#250DEL2DJNZ R7,DEL2DJNZ R6,DEL1RET由指令表可知MOV、DJNZ指令均需用两个机器周期,在采用12MHz晶振时,一个机器周期时间长度为s?1,所以该段程序执行时间约为ms s100250xx?3.有余力的同学可进一步考虑信号灯控制能否达到如霓虹灯的效果,并通过编程实现。 五、思考题 1、1K欧的电阻的作用是什么。 2、P1端口采用的是低电平驱动,为什么不采用高电平驱动。 实验165定时计数器实验 一、实验目的1了解MCS-51单片机中定时/计数器的基本结构、工作原理和工作方式;2掌握定时/计数常数的设定;3定时/计数器中断的应用。 二、实验设备1微机一台2KeilC51编程软件3单片机实验板4数据下载线 三、开发工具Keil uVision2IAP专用下载工具Turbo FAST UltraEdit-32 四、实验原理1.实验电路P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.75VP3.2P3.3P3.4P3.55VS21K?810K?4(拨码)拨码开关ONOFFS1S2S3S4D7D6D5D4D3D2D1D08051单片机图4-2实验五电路连接示意图2.定时器/计数器模型定时器/计数器模型如下图。 17控制信号振荡器二进制加1计数器TFx中断Tx端(引脚)C/T=0C/T=1溢出标志12图4-38051单片机的定时/计数器组成 (1)对计数脉冲可选择单片机内部振荡器或是由单片机外部引脚输入的外部脉冲; (2)计数器的主体是一个加1计数器,它对进入脉冲进行加1计数(其计数长度由程序设定,但不能超过16位); (3)计数器是否计数由控制信号确定(通过TCON寄存器中的TRx置位来启动计数); (4)计数器溢出时(进位),置一个溢出标志TFx并触发中断系统产生中断请求,也可以由用户查询TFx来判断溢出与否。 TFx可以由程序或是中断服务程序复位(清0)。 3.定时器方式设置定时/计数器方式寄存器TMOD的地址为89H,其各位的意义如下图定时器1定时器0GATE M1M0C/T GATEM1M0C/TD7D6D5D4D3D2D1D0定时器方式控制寄存器TMOD,地址89H图4-4定时/计数器方式寄存器M 1、M0定时/针数器为工作方式选择,具体如表4-1所示。 表4-1定时/计数器的工作方式M1M0工作方式说明00方式013位计数器(THx高八位及TLx低五位);01方式116位计数器;10方式2可自动重新装入初值的8位计数器;11方式3将定时器0分为两个8位计数器。 定时器T1工作于此方式下时相当于关闭T1。 T0工作于方式3时T1可以工作于其他方式,此时常用做串行口时钟。 定时器T0有 0、 1、 2、3共四4种工作方式,定时器T1只有 0、 1、2共三种工作方式。 C/T定时/计数选择。 1为定时,定时脉冲由内部振荡器12分频后提供;0为计数,对由T0的引脚(P3.4)或T1的引脚(P3.5)输入的外部脉冲进行计数,计数的最高频率为内部振荡器的1/24。 GATE门控位。 确定控制信号由TRx位还是由INTX引脚控制。 4.定时器的控制定时/计数器控制寄存器TCON的地址为88H(可位寻址),其各位的意义如图4-5定时器控制寄存器18定时器1定时器0外部中断1外部中断0TF1TF0TR0TR1IE1IE0IT0IT1D7D6D5D4D3D2D1D0TCON,地址88H(可位寻址)图4-5定时/计数器控制寄存器TF1/TF0定时器1/0溢出中断标志位。 由硬件置位,当转向中断服务程序时由硬件清0,也可以由软件清0。 TR1/TR0定时器1/0运行控制位。 1为计数,0为停止。 IE1/IE0外部中断1/0请求标志位。 中断时由硬件置位,当转向中断服务程序时由硬件清0,也可以由软件清0。 (具体用法详见中断系统)IT1/IT0外部中断触发方式控制位。 IT1/IT0=1时为下降沿触发中断;IT1/IT0=0时为低电平沿触发中断。 (具体用法详见中断系统)5.编程的具体步骤在实际应用中,若要使用定时/计数器,应按以下步骤进行编程 (1)设定定时/计数器的工作方式(TMOD); (2)给计数器设定所需的初值(TH 0、TL 0、TH 1、TL1); (3)启动计数器开始计数(通过设置TCON中的相关位); (4)开放定时/计数器中断(如果需要的话) 五、实验内容1.定时器实验实验要求用CPU内部定时器方式计时,实现每一秒钟P1口输出状态发生一次反转。 (可设置定时器溢出时间为50ms,溢出20次则为1秒)。 2.对外部信号计数实验要求 (1)、单片机对从P3.4输入的信号计数,T0工作与方式1 (2)、将计数数值结果送至P1口显示。 3.对外部信号计数实验要求 (1)、单片机测试P3.2低电平的宽度,将测试时间显示输出到P1口,单位为10ms。 六、思考题 1、若该定时器0工作在方式1下,该如何设定定时常数? 2、若定时计数器1工作在方式2下,又该如何设定定时常数?实验196中断系统实验 一、实验目的1掌握中断的应用,中断源,中断入口地址等概念;2掌握中断的开放与屏蔽,中断优先级的设定,中断响应过程;3理解中断服务程序与主程序的关系。 二、实验设备1微机一台2KeilC51编程软件3单片机实验板4数据下载线 三、开发工具Keil uVision2IAP专用下载工具UltraEdit-32 四、实验说明1.实验电路P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.75VP3.2P3.35VKB1KB2S21K?8(拨码)拨码开关ONOFFS1S2S3S4D7D6D5D4D3D2D1D08051单片机图4-62.8051的中断源在20MCS?51系列单片机中,不同类型的单片机,其中断源个数和中断标志位的定义也有所不同。 下面是8051的中断源。 表4-2中断源一览表中断源名称申请中断的原因中断申请标志允许中断的控制位外部中断00INT0INT引脚有低电平、或下降沿IE0(TCON)EX0(IE)定时器0中断T0定时器/计数器0溢出TF0(TCON)ET0(IE)外部中断11INT1INT引脚有低电平、或下降沿IE1(TCON)EX1(IE)定时器1中断T1定时器/计数器1溢出TF1(TCON)ET1(IE)串行口中断RXD、TXD接收一个字节或发送一个字节完成RI、TI(SCON)ES(IE)注()中为该位所属对应的特殊功能寄存器3.定时器、外部中断控制定时器中断的溢出标志位和外部中断的控制位是由定时器控制寄存器TCON来定义,如图44所示触发方式选择位IT00低电平IT01负边沿TF1TR1TF0TR0IE1IT1IE0IT0定时器1定时器0外部中断1外部中断0T1中断标志位T1运行控制位T0中断标志位T0运行控制位外部中断0标志位触发方式选择位IT10低电平IT11负边沿外部中断1标志位4串行口中断控制串行口中断用发送中断和接收中断标志,在串行口控制寄存器SCON,具体见串行口实验。 5.中断允许设置中断允许寄存器IE字节地址为A8H,其各位含义如图所示。 外部中断0允许控制位0禁止;1允许定时器0中断允许控制位0禁止;1允许EA-ET2ES ET1EX1ET0EX0外部中断1允许控制位0禁止;1允许定时器1中断允许控制位0禁止;1允许串行口中断允许控制位0禁止;1允许定时器2中断允许控制位(8052特有)0禁止;1允许允许中断总控制位0禁止;1允许6.21中断优先级设置8051内部中断系统对各中断源中断优先级有一个统一的规定,各中断源在同一优先级时从高到低的排列顺序为外部中断0定时器0中断外部中断1定时器1中断串行口中断(定时器2中断)。 每个中断源的中断优先级都可以通过程序来设定为高优先级还是低优先级,由中断优先级寄存器?IP?统一管理。 IP寄存器各位的含义如图4-20.外部中断0中断优先级控制位0低优先级;1高优先级PT2PS PT1PX1PT0PX0串行口中断优先级控制位0低优先级;1高优先级定时器2中断优先级控制位(8052特有)0低优先级;1高优先级定时器1中断优先级控制位0低优先级;1高优先级外部中断1中断优先级控制位0低优先级;1高优先级定时器0中断优先级控制位0低优先级;1高优先级图4-7中断优先级寄存器IP7.中断入口地址表中断响应时,将对应的中断入口地址装入程序计数器PC,使程序转移到该中断入口地址单元,去执行中断服务程序。 与各中断源相对应的中断入口地址如表4-3所示表4-3中断入口地址表中断源中断入口地址外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H8.中断系统总体框图8051中断系统的中断方式、中断开放和禁止以及中断优先级的设定总体框图如图4-8所示中断允许寄存器22低优先级中断请求查询顺序中断优先级寄存器IP高优先级中断请求PX0PT0PX1PT1PSPT2IETF1中断源允许(分开关)中断开放(总开关)EAEX0ET0EX1ET1ESET2IE0IT0=1IT0=0IE1IT1=1IT1=0TF0 (8052)TF2EXF2RITI(引脚)(引脚)INT0INT1101010101010INT0T0T2串行口T1INT1INT0T0T2串行口T1INT1图4-8中断开放和禁止以及中断优先级 五、实验内容1.利用定时器中断,在P1口实现1秒钟移动一次的流水灯。 2.通过外部中断0,启动流水灯,通过外部中断1,暂停流水灯 六、思考题1.比较定时器在查询法和中断法两个程序中溢出控制位TF0的异同2.记录P1.0引脚每两次变化时(高低电平)的时间差,定时器0的状态值。 23实验7串行口通信实验 一、实验目的1了解MCS-51单片机串行口(UART)的结构;2掌握PC机与单片机串行通信的编程方法;3掌握串行口的工作方式及波特率的设置方法。 二、实验设备1微机一台2KeilC51编程软件3单片机实验板4数据下载线 三、开发工具Keil uVision2IAP专用下载工具Turbo FAST UltraEdit-32 四、实验原理 1、实验电路30P30P12M+5VP3.2+5VP3.3+5VP3.4+5VP3.5TTL至RS232串行口电平转换RXDTXD8051PC机串行口2.串行口工作方式设置串行口特殊功能控制寄存器SCON的格式如下D7D6D5D4D3D2D1D0SM0SM1SM2REN TB8RB8TI RI图4-9特殊功能寄存器SCON SM 0、SM1为串行口工作方式选择位。 8051串行口共有4种工作方式。 通过对SM 0、SM1的设置可以选择串行口的工作方式。 具体工作方式如表4-4所示。 表4-4串行口工作方式选择SM024SM1方式功能说明000移位寄存器方式(波特率为f osc/12)0118位UART,波特率可变(T1溢出率/n)1029位UART,波特率为f osc/64或f osc/321139位UART,波特率可变(T1溢出率/n)SM2多机通信控制位。 主要用于工作方式2和工作方式3。 在方式2和方式3中,如SM2=1,则接收到第9位数据(RB8)为0时,不启动接收中断标志RI(即RI0),并且将接收到的前8位数据丢弃;RB81时,才将接收的前8位数据送入SBUF,并置位RI产生中断请求。 当SM20时,则不论第9位数据为1或是为0,都将前8位数据装入SBUF中,并产生中断请求。 在方式0时,SM2必须为0。 REN允许接收控制位。 REN0,禁止串行口接收;REN1,允许串行口接收。 TB8待发送数据第9位,用于在方式2和方式3时存放发送数据第9位。 TB8由软件置位或复位。 RB8接收到的数据第9位。 多机通信控制位。 3.串行通信波特率的计算 (1)方式0移位寄存器方式。 波特率f osc?/?12。 (2)方式29位UART。 波特率2SMODf osc?/?64。 (3)方式 1、 38、9位UART。 使用定时器1作为串行口波特率发生器时,波特率=2SMOD/32(定时器1溢出率);当定时器1工作于方式2时,波特率=2SMOD/32(f osc/12)/(256TH1)。 SMOD为波特率选择位。 在方式 1、方式2和方式3时,串行通信的波特率和SMOD有关。 当SMOD1时,通信波特率乘以2;否则波特率不变。 SMOD为PCON寄存器的最高位。 五、实验内容1.采用查询法编写一个异步串行口通信程序,实现与PC机之间的通信。 2.采用中断法编写一个异步串行口通信程序程序,实现与PC机之间的通信。 六、思考题1.写出PCON,SCON中各位的作用2.若串行口波特率为2400,定时常数x的值为多少?实验258学习使用C语言进行单片机程序设计 一、实验目的1学习Keil uVisinon中特有的语言类库(reg51.h等);2学习使用语言编写单片机程序的方法;3学习并掌握几种常见的编程技巧。 二、实验设备1微机一台2KeilC51编程软件3单片机实验板4数据下载线 三、开发工具Keil uVision2IAP专用下载工具Turbo FAST UltraEdit-32 四、实验说明1.实验电路P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7MAX232PL2303P3.0(RXD)P3.1(TXD)RS232串口USB(转)串口串口接收串口发送5VS21K?812MHZ(拨码)拨码开关ONOFFS1S2S3S4RTSRTSD7D6D5D4D3D2D1D08051单片机2.C51的编程规范 (1)、注释文件(模块)注释内容公司名称、版权、作者名称、修改时间、模块功能、背景介绍等,复杂的算法需要加上流程说明;26函数开头的注释内容函数名称、功能、说明输入、返回、函数描述、流程处理、全局变量、调用样例等,复杂的函数需要加上变量用途说明;程序中的注释内容修改时间和作者、方便理解的注释等。 注释内容应简炼、清楚、明了,一目了然的语句不加注释。 (2)、编程风格缩进缩进以Tab为单位,一个Tab为四个空格大小。 预处理语句、全局数据、函数原型、标题、附加说明、函数说明、标号等均顶格书写。 语句块的“”“”配对对齐,并与其前一行对齐;空格数据和函数在其类型,修饰名称之间适当空格并据情况对齐。 关键字原则上空一格;对齐原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。 另每一行的长度不应超过屏幕太多,必要时适当换行,换行时尽可能在“,”处或运算符处,换行后最好以运算符打头,并且以下各行均以该语句首行缩进,但该语句仍以首行的缩进为准,即如其下一行为“”应与首行对齐。 空行程序文件结构各部分之间空两行,若不必要也可只空一行,各函数实现之间一般空两行修改版本封存以后的修改一定要将老语句用/*/封闭,不能自行删除或修改,并要在文件及函数的修改记录中加以记录。 形参在定义函数时,在函数名后面括号中直接进行形式参数说明,不再另行说明3.中断函数中断服务函数是C51中一类特殊函数,它只有在CPU响应中断时才会被执行,这种功能在处理突发事件、实时控制和节约CPU硬件资源方面是非常有效的中断函数的关键字是interrupt,其用法如下函数类型函数名(形式参数)interrupt nusing m其中,interrupt关键字告诉编译器该函数是中断服务函数,并由后面的“n”指明所使用的中断号,具体中断号取决于芯片类型。 每个中断号对应一个中断向量,具体地址为“8n+3”,中断响应后,CPU会跳转到中断向量所处的地址执行程序,编译器会在该地址上产生一个无条件跳转语句,转到中断服务函数所在的地址执行程序。 表4-5是MCS-51单片机中断向量和中断号,其它51系列单片机中断向量和中断号对应关系需要查找相应器件手册。 using m中的using表示在中断服务程序中要使用的工作寄存器组,m表示工作寄存器组号。 表4-5MCS-51单片机中断向量和中断号对应表中断源中断向量中断号外部中断00003H0定时计数器0000BH1外部中断10013H2定时计数器1001BH3串行口0023H4 五、实验内容1练习P3口的输入的8位直接由P1口输出;227练习将P3的左移/右移之后送P输出;3练习定时计数器中断使用利用定时器中断产生延时1s,在P1口上实现跑马灯;4练习使用串行口中断,接收一个字节加1后返回它。 六、思考题1比较用C语言和用汇编语言编写程序时的异同.实验289键盘显示程序 一、实验目的1熟悉键盘的工作方式;2掌握静态、动态显示程序; 二、实验设备1微机一台2KeilC51编程软件3单片机实验板4数据下载线 三、开发工具Keil uVision2IAP专用下载工具Turbo FAST UltraEdit-32 四、实验内容1.实验电路74HC245ahbP0.0P0.1P0.7P2.0P2.1P2.5P2.6P2.7P1.0P1.15VP1.2P1.3P1.4P1.5P1.6P1.75VP3.2P3.3P3.4P3.55V5VKB1KB2KB3KB4a bc de fg habcdefghS1S21K?810K?41K?8(拨码)(拨码)拨码开关ONOFFS1S2S3S4EAD7D6D5D4D3D2D1D0P2.2P2.3P2.42.编写键盘程序按下按键“K1”,将55H送至P1口,放开“K1”,将AAH送至P1口。 注意去抖动。 3.编写显示程序,通过按键控制,在所有数码管上显示09数字。 4.编写显示程序,在6个数码管上动态显示“543210”。 五、实验要求1.使用C语言编程;2.程序结构合理;3.思路清晰;第295章单片机综合实验实验10编写电子钟程序(一) 一、实验目的1熟悉定时器的工作方式;2掌握定时中断方式;3学会使用显示接口程序。 二、实验设备1微机一台2KeilC51编程软件3单片机实验板4数据下载线 三、开发工具Keil uVision2IAP专用下载工具Turbo FAST UltraEdit-32 四、实验电路74HC245ahbP0.0P0.1P0.7P2.0P2.1P2.5P2.6P2.75V5Va bc de fg habcdefghS11K?8(拨码)拨码开关ONOFFS1S2S3S4EAP2.2P2.3P2.4 五、实验内容制作一个简单的电子钟。 电子钟的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- TCASAS 54-2025 氮化铝晶片吸收系数测试方法
- 本人拖车转让协议书
- 交付奶茶协议书范本
- 销售防汛水泵合同范本
- 服装门面合同转让协议
- 买营业执照合同范本
- 棺材订购协议书模板
- 楼顶防漏水合同范本
- 教师学历提升协议书
- 栏杆加工安装合同范本
- GB/T 21782.4-2025粉末涂料第4部分:爆炸下限的计算
- 2025年宏观经济学试题库及练习题及答案
- 2025黑龙江齐齐哈尔市龙沙区南航街道公益性岗位招聘1人笔试考试参考题库附答案解析
- 高中化学教学质量分析与提升策略
- 2025年机场货运区安全生产月试题及答案
- 2025国家公务员政治理论应知应会知识试题库及答案
- 2025年给排水科学与工程专升本水处理试卷(含答案)
- 《中国乳腺癌诊疗指南》(2025版)
- 高三试卷:山东省名校考试联盟2024-2025学年高三上学期期中考试政治试题
- 《翅片式换热器生产制造工艺规范》
- 长沙市一中2026届高三10月月考试卷(二)生物试卷(含答案详解)
评论
0/150
提交评论