单片机实验指导书终稿_第1页
单片机实验指导书终稿_第2页
单片机实验指导书终稿_第3页
单片机实验指导书终稿_第4页
单片机实验指导书终稿_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、石家庄铁道大学 单片机实验指导书实验一 清零、移数、判断一、实验目的1、 掌握汇编语言程序设计和调试方法。2、 掌握RAM存储器读写及存储块操作方法3、熟悉分支结构程序的设计。二、实验内容将片内30H40H及片外0010H0100H清零,然后将片内41H47H的内容移到片外0041H0047H,判断:若(0041H)15,则求其平方存到0050H中,并将位00H置1。(0041H)=15, 则加15存到0050H中,并将位01H置1。(0041H)15, 则减15存到0050H中,并将位02H置1。#include<absacc.h>#include<studio.h>

2、main()char a,b,c;char data *p;char xdata *q;char *p=&a;char *q=&b;a=0x30;b=0x10;*p=0;*q=0;for(a=0x30;a<=0x40;a+) for (b=0010;b<=0100;b+)main()char data *p;char xdata *q;char *p=&a;char *q=&b;a=0x41,b=0041;*q=*P;for (a=0x41;a<=0x47;a+)for (b=0041;b<=0047,b+) b=0041; a=0050

3、; c=0x00; if(b<15) b=b*b,a=b,c=1;else if(b=15)b=b+15,a=b,c+,c=1;else if(b>15)b=b-15,a=b,c=c+2,c=1; 3、 实验说明4、通过本实验,学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编程,调试方法。四、实验框图 片内外RAM清零流程图 移数流程图判断流程图五、思考题1、如果平方数超过255,怎样将数放到片内RAM 30H和31H单元内,写出指令。2、位的表示方法有哪些,举例说明?将01H位清零的方法有几种,写出指令。实验二 排序、加法一、实验目的1、 进一步掌握汇编语言程序设计

4、和调试方法。2、掌握数据排序的算法及加法运算。二、实验内容1、有两个长度为10个字节的无符号数分别放在片内30H和40H为首的存储单元中(低字节),求其和(带进位位),放在50H为首的单元中。2、将50H为首单元中的数按升序排列放在60H为首的单元中。三、实验说明通过本实验,学生可以了解单片机排序的算法,本程序采用“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序。四、实验框图加法运算流程图 排序流程图五、思考题1、-125与-9相加,PSW中OV、AC、CY的值是多

5、少?各表示什么含义?2、两个压缩BCD码59和22相加,结果放到片内RAM 30H单元中,写出程序。实验三 查表、多分支一、实验目的1、 掌握查表指令。2、 掌握多分支结构程序的设计。二、实验内容设有一表格,表中数为:00H、11H、22H、33H、44H、55H、66H、77H、88H、99H、AAH、BBH、CCH、DDH、EEH、FFH。根据片外0000H单元的低4位的数,取出表中相应的值存到片内30H中;根据片外0000H单元的高4位的数,将片内RAM区中可位寻址的相应的位置1(从位00H位0FH,只可有一个位地址为1)三、实验说明通过本实验,学生可以掌握多分支结构程序的设计,本程序采

6、用查表指令和散转指令进行程序设计。四、实验框图 查表指令查数流程图 散转指令位操作流程图五、思考题1、如果表中对应的数是一个字,该如何操作,例如:根据片内RAM 50H单元中的数,给出的数在00-05H之间,数据表存放在片内ROM 20H开始的单元中,数据表存放在20H开始的片内ROM中,查表所得数据字(双字节,高位字节在后)高位字节存于52H、低位字节存于51H。写出程序。50H单元中的数据:00 01 02 03 04 05H对应的数: 1011H 1234H 3456H 4578H AA10H FF89H2、写出远程查表和近程查表指令的查表范围。实验四 外部中断实验一、实验目的1、学习外

7、部中断技术的基本使用方法。2、学习中断处理程序的编程方法。二、实验要求1、用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。2、用单次脉冲申请中断,在中断处理程序中对输出信号进行处理,使8个发光二极管依次点亮。3、 利用两个按键分别接INT0、INT1,作为加1和减1键使用,实现上电时8个发光二极管全灭,每按加1键一次,亮的灯多一盏,按8次后重复开始状态,每按减1键一次,亮的灯少一盏,按8次后重复开始状态。三、实验电路及连线连线连接孔1连接孔21P1.0L02P1.1L13P1.2L24P1.3L35P1.4L46P1.5L57P1.6L68P1.7L79单脉冲输出INT0 (51 系列

8、)10单脉冲输出INT1 (51 系列)11单脉冲输出EINT (96 系列)单次脉冲四、实验说明中断服务程序的关键是:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。2.必须在中断程序中设定是否允许中断重入,即设置 EXO 位。3对于 80C196,要选择相应的中断源,并设置中断屏蔽寄存器的相应位。中断程序使用了 INT0、INT1 中断(80C196 为 EXTINT 中断),一般中断程序进入时应保护 PSW、ACC 以及中断程序使用但非其专用的寄存器,实验中要注意保护用到的寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。五、实验框图下图为实验要求1对

9、应的实验框图外部中断子程序框图主程序框图中断入口中断返回恢复现场状态位输出状态位取反保护现场等待中断中断允许设置中断控制寄存器设置初始状态开始:六、思考题1、利用软件延时的方法,修改程序改变发光二极管的发光时间,写出延时程序实验五 定时器实验一、实验目的1、学习 8031 内部定时计数器的使用和编程方法。2、进一步掌握中断处理程序的编程方法。二、实验要求1、用 CPU 内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转。2、单片机P1.0、P1.1接两个发光二极管,INT0接一启动按键,利用定时器实现启动后两个发光二极管一亮一灭,亮灭时间均为1s,再按按键发光二极管停止工作。3、单片机P

10、1.0、P1.1接两个发光二极管,利用定时器产生两个控制信号,分别控制两个发光二极管实现一个每隔200µs状态发生一次反转,另一个每隔400µs状态发生一次反转。三、实验电路及连线连线连接孔1连接孔21P1.0L02P1.1L13单脉冲输出INT0 (51 系列)4单脉冲输出INT0 (51 系列)5单脉冲输出EINT (96 系列)单次脉冲四、实验说明1、关于内部定时计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部定时计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器。2、定时器有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON。T

11、MOD 用于设置定时器/计数器的工作方式 0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。3、内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是 12 个振荡器周期。因为实验系统的晶振是 6MHZ,本程序工作于方式 2,即 8 位自动重装方式定时器,定时器 100us 中断一次, 所以定时常数的设置可按以下方法计算:机器周期=12÷6MHZ=2uS(256-定时常数)×2uS=100us定时常数=206。然后对 100us 中断次数计数 10000 次,就是 1 秒钟。4、在中断服务程序中,因为中断

12、定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。5、对于 80C196,与定时器有关的寄存器为 IOC1.2 和 INT-MASK。IOC1.2 为定时器 1溢出中断允许/禁止位。INT-MASK 的第 0 位为定时器溢出屏蔽位。6、对于 80C196,在设置中断定时常数时,要注意先设置窗口寄存器 WSR,设置完常数后,再恢复原 WSR 值。五、实验框图下图为实验要求1对应的实验框图:中断子程序框图主程序框图是否保护现场恢复现场重新设置秒计数值是否到一秒定时中断入口中断返回状态位取反秒计数值减1设置初始状态位设置定时常数置T0中断工作方式等

13、待中断输出状态位中断允许开始六、思考题1、若定时时间超过定时器的最大定时时间,如何处理?若需要定时2s,定时器怎样设定?实验六 定时器计数器实验一、实验目的1、学习 80C51 内部定时/计数器使用方法。二、实验要求1、利用80C51内部定时计数器 T0,按计数器模式和方式 1 工作,对 P3.4(T0)引脚进行计数。将其数值按二进制数在 P1 口驱动 LED 灯上显示出来。2、利用80C51内部定时计数器T0和T1,T0作为计数器使用,T1作为定时器使用,计数次数达到10次时,控制P1.0连接的发光二极管点亮100µs(由定时器T1实现),计数次数再增加10次,发光二极管灭100&

14、#181;s,如此循环。3、利用80C51内部定时计数器 T0,采用工作方式3,TL0设置为计数器,实现外部中断功能,TH0设置为定时器,实现中断响应过程中控制P1.0连接的发光二极管点亮100µs。三、实验电路及连线 连线连接孔1连接孔21P1.0L02P1.1L13P1.2L24P1.3L35单脉冲输出T0四、实验说明本实验中内部计数器起计数器的作用。外部事件计数脉冲由 P3.4 引入定时器 T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波

15、形的频率不能超过机器周期频率。五、 实验框图计数,输出计数值开始计数设置工作方式开始下图为实验要求1对应的实验框图:六、思考题如何设置计数10次发生中断?设计的依据是什么?实验七 8255 输入、输出实验一、实验目的1、掌握8255 芯片结构及编程方法。2、掌握8255 输入/输出实验方法。二、实验内容利用 8255 可编程并行口芯片,实现输入/输出实验,实验中用 8255PA 口作输出,PB口作输入。1、按下开关,并用发光极管显示开关的状态。2、让发光二极管循环左移点亮,延时时间为1S。三、实验电路及连线8255 的 CS/接地址译码/CS0,则命令字地址为 8003H,PA 口地址为 80

16、00H,PB 口地 址 为 8001H , PC 口 地 址 为 8002H 。PA0-PA7(PA 口)接 LED0-LED7(LED)PB0-PB7(PB 口)接 K0-K7(开关量)。数据线、读/写控制、地址线、复位信号板上已接好。连线连接孔 1连接孔 21CS08255CS2L08255-PA03L18255-PA14L28255-PA25L38255-PA36L48255-PA47L58255-PA58L68255-PA69L78255-PA710K08255-PB011K18255-PB112K28255-PB013K38255-PB214K48255-PB315K58255-PB

17、416K68255-PB617K78255-PB7四、实验说明可编程通用接口芯片 8255A 有三个八位的并行 I/O口,它有三种工作方式。本实验采用的是方式 0:PA,PC 口输出,PB 口输入。很多 I/O 实验都可以通过 8255来实现。五、实验步骤用插针按接线图接好线,运行程序,发光二极管按下开关的状态,调整开关的状态,发光二极管跟开关的变化而变化。开始初始化8255置8255PA口数据左移延时六、实验框图开始初始化8255读8255PA口置8255PB口发光二极管循环左移点亮流程图用发光极管显示开关状态流程图七、思考题若延时1S用定时器实现,程序应如何改?实验八 单片机串行口通讯实验

18、一、 实验目的1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。二、 实验内容主机:每隔1秒读一次P0口并将读数发给从机,同时接收从机的信号,若与所发数相同,则P1.0的灯亮,若不同或不回答则P1.1的灯亮。从机:将接收的数据从P1口送出,并回发此数据。三、实验电路及连线连线连接孔 1连接孔 21P0。0K02P0。1K13P0。2乙方 甲方 K24P0。3K35P0。4K46P0。5K57P0。6K68P0。7K79P1。0LED010P1。1LED1主机接线图从机接线:P1口接8只发光二极管。四、实验说明1、805

19、1、80C196 的 RXD、TXD 接线柱在 POD51/96 仿真板上,8088/86 的 TXD、RXD在 POD8086 仿真板上的 8251 芯片旁边。2、通讯双方的 RXD、TXD 信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的 RXD、TXD 直接交叉连接。也可以将本机的 TXD接到 RXD 上,这样按下的键,就会在本机 LED 上显示出来。3、若想与标准的 RS232 设备通信,就要做电平转换,输出时要将 TTL 电平换成 RS232电平,输入时要将 RS232 电平换成 TTL 电平。可以将仿真板上的 RXD、TXD 信号接到实验板上的

20、“用户串口接线”的相应 RXD 和 TXD 端,经过电平转换,通过“用户串口”接到外部的 RS232 设备。可以用实验仪上的逻辑分析仪采样串口通信的波形。五、实验步骤按要求接好线,运行程序,改变开关状态,看主机和从机发光二极管的变化情况。六、实验框图1、甲机程序流程图开始初始化串口及波特率设置方式及波特率读P0口发送延时1S清发送中断标志TINLED0亮YNYN读回YNLED1亮清接收中断标志RI发送中断标志TI1?接收中断标志RI1?与所发数据同? 2、乙机程序流程图Y开始初始化串口及波特率设置送P1口N清接收中断标志RI读回回发YN清发送中断标志TI接收中断标志RI1? 发送中断标志TI1

21、?七、思考题1、51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯,进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,如何实现?实验九 A/D 转换实验一、实验目的1、掌握 A/D 转换与单片机的接口方法。2、掌握 A/D 芯片 ADC0809 转换性能及编程。3、通过实验掌握单片机如何进行数据采集。二、实验内容 利用实验板上的 ADC0809 做 A/D 转换器,实验板上的电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,采用查询方式读入A/D转换结果,用 8255 的 PA 口输出到发光二极管显示。三、实验

22、电路及连线连线连接孔1连接孔21IN0电位器输出2AD_CSCS03EOCINT048255_CSCS15PA0L06PA1L17PA2L28PA3L39PA4L410PA5L511PA6L612PA7L7四、实验说明A/D 转换器大致有三类:一是双积分 A/D 转换器,优点是精度高,抗干扰性好;价格便宜,但速度慢;二是逐次逼近 A/D 转换器,精度,速度,价格适中;三是并行 A/D 转换器,速度快,价格也昂贵。实验用的 ADC0809 属第二类,是八位 A/D 转换器。每采集一次一般需100us。本实验采用延时查询方式读入 A/D 转换结果,也可以用中断方式读入结果。在中断方式下,A/D 转

23、换结束后会自动产生 EOC 信号,将其与 CPU 的外部中断相接,在中断服务程序中读取转换结果。有兴趣的同学可以试试编程用中断方式读回 A/D 结果。 五、实验步骤把0809的0通道IN0用插针接至电位器输出,按接线图接好线(查询方式下,EOC和INT0之间不用连接)。运行程序,发光二极管显示转换后的数字量,调整电位器输出值,发光二极管跟随电位器电压的变化而变化。六、实验框图开始初始化0809和8255选择通道号,启动A/D转换N延时时间到?吗?读取转换结果将转换结果从8255输出查询方式进行A/D转换时程序流程图七、思考题1、修改程序,能对IN0IN7 这8个通道轮流采样,把转换结果依次存入

24、数据存储器中20H27H单元。2、画出采用中断方式进行A/D转换的程序流程图。实验十 键盘扫描、显示实验一、实验目的1、了解数码管动态显示的原理。2、了解用总线方式控制数码管显示的方法。3、掌握键盘扫描和 LED 八段码显示器的工作原理。4、掌握键盘和显示器的接口方法和编程方法。三、 实验内容1、利用实验仪提供的显示电路,动态显示一行数据。2、利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。三、实验电路及连线 D5 D4 D3 D2 D1 D0 段码输出 位选通信号 (0x004H) (0x002H) D5 D4 D3 D2 D1

25、D0 D3 D2 D1 D0 读回行码 列码 (0X001H) (0X002H)七段数码管的字型代码表(共阴极)如下表:显示字形gfedcba段码001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111017fh911011116fhA111011177hB11111007chC011100139hD10111105ehE111100179hF111000171h连线连接孔1连接孔21KEY/LED_CSCS0四、实验说明1、实验仪提供了6位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8 位段码、6 位位码是由两片74LS374 输出。位码经 MC1413 或 ULN2003 倒相驱动后,选择相应显示位。本实验仪中8位段码输出地址

温馨提示

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

评论

0/150

提交评论