版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机实验讲义2013 年 10 月 27 日星期日实验一汇编指令的练习与BCD 码加减运算一实验要求学习和掌握 keil汇编编译系统, 编写通用 4 字节压缩 BCD 码的加、减法运算程序。二实验目的通过学习多字节压缩 BCD码加减运算的程序设计;学习汇编程序的编写,学会编译 .asm 源程序,编译,下载。学习断点设置,单步执行, SFR特殊功能寄存器的查看等编程基本功能。三 实验原理对于简单的 8 位加减可以直接调用指令就可以了。 例如加法可以使用指令 ADD 以及带进位加 ADDC ,但单字节加减法只能在 256 之内进行运算;在实际应用中经常需要进行多字节运算,从而处理更大的数据。该实
2、验介绍单片机 BCD 码多字节加、减运算通用程序的设计。1多字节无符号压缩BCD码加法运算假设多字节无符号被加数的最低字节的地址为R0,加数的最低字节地址为R1,字节数共为 len;计算结果的地址于被加数相同。 入口参数:R0:被加数地址指针;R1:加数地址指针;len:字节数。 出口参数:R0:计算结果;rLen :计算结果字节数。使用资源: ACC ,R0、 R1,内部 RAM 单元 len、 rlen 及存放被加数、加数、计算结果的内存单元。示例程序如下:lenrlenDATA DATA70H71HADDSTARTLOOP : PUSHCLRMOVMOVADDCDAMOVINCPSWCr
3、len, #00HA ,R0A,R1AR0,AR0;保护标志寄存器内容;进位位清0;和的字节数先清0;取被加数;求和;十进制调整;保存;地址增1INCR1INCrlen;字节数增 1DJNZlen, LOOP;所有字节未加完继续,否则向下执行JNCADDEND;和的最高字节无进位转ADD20MOVR0 ,#01H;和的最高字节地址内容为01HINCrlenADDEND :POPPSWRETEND多字节加法运算一般是按从低字节到高字节的顺序进行的,所以必须考虑低字节向高字节的进位情况,被加数和加数的压缩BCD 码,最大不超过99,而 99+99+1 (进位) =199,此时可以不需要使用ADDC
4、 指令,但当最低两字节相加后,必须使用“DAA ”进行十进制调整,调整后产生进位。而最高两字节相加后应考虑是否有进位。若有进位,应向和的最高位字节地址写入 01H,这时和数将比加数或被加数多出一个字节。2多字节无符号压缩BCD 码减法运算为了使用“ DAA”指令对十进制减法进行调整,必须采用对减数求补相加的方法,以9AH 为模减去减数即得到减数的补数。设被减数低字节地址在R1中,减数低字节地址在R0 中,字节数在len 中;差的低字节地址在R0 中,差的字节数在rlen 中。入口参数:R0:减数地址指针;R1:被减数地址指针;len:字节数出口参数:R0:差的地址指针rlen:差的字节数使用资
5、源: A ,R0 , R1,内部 RAM 单元范例程序如下:范例程序如下:SUBSTART :MOVrlen, #00H;差字节单元清0CLR07H; 07H 做符号位标准,符号位清 0CLRC;借位位清 0SUB1 :MOVA , #9AH;减数对模 100 求补SUBBA, R0ADDA ,R1;补码相加DAAMOVR0,A;存结果INCR0INCR11NCrlenCPLC;进位求反以形成正确借位DJNZlen, SUBl;未减完继续,减完向下执行JNCSUB2;无借位去别 m 返回主程序,否则继续SETB07H;有借位,置“ 1”符号位SUB2 :RETEND程序中对减数求补后与被减数相
6、加,用“DAA”指令进行调整。若二者相加调整后结果无进位 (C=0) ,则表示二者相减有借位;若二者相加调整后有进位 (C; 1) ,则表示二者相减无借位。所以必须对进位标志位 C 进行求反操作,才能得到正确结果。实验二串并转换实验(串口实验)一 .实验要求利用 8031 串行口,和并行输出串行移位寄存器 74LS164 ,扩展一位数码显示在数码显示器上循环显示 0-9 这 10 个数字。二 .实验目的1. 掌握 8031 串行口方式 0 工作方式及编程方法。2. 掌握利用串行口扩展 I/O 通道的方法。三 .实验电路及连线EAT598-51 板 上 的 P3.0(RXD)模块的 DATAIN
7、,P3.1(TXD)模块的 DCLK 。接 11接 11四 .实验说明串行口工作在方式 0 时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为 8 位,只能从 RXD 端输入输出,TXD 端总是输出移位同步时钟信号,其波特率固定为晶振频率 1/12。由软件置位串行控制寄存器(SCON )的REN 后才能启动串行接收,在 CPU 将数据写入 SBUF寄存器后,立即启动发送。待 8 位数据输完后,硬件将 SCON寄存器的 TI 位置 1,TI 必须由软件清零。五 .实验框图示例程序 SLED.ASM程序框图:开 始设置T1参数置初始常数置串口模式开 中 断等 待INT T0入口保护现场置
8、T0定时常数N判是否到1秒Y读 表 格送串口显示调整表格指针恢复现场中断返回实验三定时器和计数器实验第一部分:定时器实验一 .实验要求由 8031 内部定时器 1,按方式 1 工作,即作为 16 位定时器使用每 0.05 秒钟 T1 溢出中断一次。P1 口的 P1.0-P1.7 分别接八个发光二极管。要 求编写程序模拟一时序控制装置。开 机后第一秒钟 L0,L2 亮,第二秒钟 L1,L3 亮,第三秒钟 L4,L6 亮,第四秒钟 L5,L7 亮,第五秒 L0,L2,L4,L6 亮,第六秒钟 L1,L3,L5,L7 亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L0,L2 亮,然后 L
9、1,L3 亮. 一直循环下去。二 .实验目的1. 学习 8031 内部计数器的使用和编程方法。2. 进一步掌握中断处理程序的编程方法。三 .实验电路及连线P1.0-P1.7 接 L0 L7。四 .实验说明1. 关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验用的是定时器,有关计数器的说明请查阅实验七。2. 内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是 12个 振 荡 器 周 期 。 因 为 实 验 系 统 的 晶 振 是 11.0592MHz, 所 以 定 时 常 数 的 设 置 可 按以下方法计算:机
10、器 周 期 =12 ÷ 11.0592MHz 1.0857 S( 65536- 定 时 常 数 ) *1.0857 S=50mS定时常数4C00H3.定时器的有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON 。 TMOD 用于设置定时器/计数器的工作方式 03,并确定用于定时还是用于计数。 TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等 。4. 在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。五 .实验框图实验示例程序见T1LED.ASM。程序框图:INT
11、T1入口开 始保护现场置T1的寄存器置定时常数置初始常数N判是否到1秒开中 断Y查 表等待显示数据T1LED.ASM主程 序 框 图调整表格指针恢复现场中断返回INT_T1中断子程序框图第二部分:计数器实验一 .实验要求8031 内部定时计数器,按计数器模式和方式 1 工作,对 P3.4(T0)引脚进行计数 。使 用 8031 的 T1 作 定 时 器 ,50ms 中 断 一 次 ,看 T0 内 每 50ms 来 了 多 少 脉 冲 ,将其数值按二进制数在 74LS273 驱动 LED 灯上显示出来,5 秒后再次测试。二 .实验目的1. 学习 8031 内部定时/计数器使用方法。2. 进一步掌
12、握中断处理编程方法。三 .实验电路及连线模块中的 600HZ 、 300HZ、150HZ中的一个 )。P3.4 接一计数脉冲( 12PO0-PO7 接L0 L7 。 CS273 接 F200H 。四 .实验说明1. 本实验中内部计数器起计数器的作用。外部事件计数脉冲由 P3.4 引入定时器 T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。2. 实 验 时 P3.4 对 应 的 连 线 为 600HZ 、300HZ 、150H
13、Z 孔 ,50ms 内 来 了 80 次( 50H)脉 冲 。五 .实验框图实验示例程序见TCO.ASM。程序框图:实验四I/O 接口实验(交通灯控制及中断)第一部分:交通灯控制一 .实验要求以 74LS273 作为输出口,控制 4 个双色 LED 灯(可发红,绿,黄光),模拟交通灯管理。二 .实验目的1. 学习在单片机系统中扩展简单 I/O 接口的方法。2. 学习数据输出程序的设计方法。3. 学习模拟交通灯控制的方法。4. 学习双色灯的使用。三 .实验电路及连线PO0-PO3 接 DG1-DG4,PO4-P07 接 DR1-DR4 。CS273 接 F200。四 .实验说明1. 因为本实验是
14、交通灯控制实验,所以要先了解实际交通灯的变化规律。假 设一 个十字路口为东西南北走向。初 始状态 0 为东西红灯,南北红灯。然后转状态1 南北绿灯通车,东西红灯。过一段时间转状态 2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再 转状态 3,东西绿灯通车,南北红灯。过 一段时间转状态 4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最 后循环至状态 1 。2. 双色 LED 是由一个红色 LED 管芯和一个绿色 LED 管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。五 .实验框图实验示
15、例程序见TRLED1.ASM。程序框图:开 始初始状态东西南北都是红灯状态1南北绿灯,东西红灯状态2南北绿灯闪转黄灯,东西红灯状态3南北红灯,东西绿灯状态4南北红灯,东西绿灯闪转黄灯TRLED1.ASM主程序框图第二部分:外部中断实验(急救车与交通灯)一 .实验要求在上实验内容的基础上增加允许急救车优先通过的要求。有急救车到达时,两向交通信号为全红,以便让急救车通过。假 定急救车通过路口时间为 5 秒,急救车通过后,交通灯恢复中断前状态。本实验以按键为中断申请,表示有急救车通过。二 .实验目的1. 学习外部中断技术的基本使用方法。2. 学习中断处理程序的编程方法。三 .实验电路及连线PO0-P
16、O3 接 DG1-DG4,PO4-P07 接 DR1-DR4 。CS273 接 F200H 。 K7 接 P3.2。四 .实验说明中断服务程序的关键是:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。2.必须在中断程序中设定是否允许中断重入,即设置 EX0位。本例中使用了 INT0中断,一般中断程序进入时应保护 PSW,ACC以及中断程序使用但非其专用的寄存器。本例的 INT0程序保护了 PSW,ACC ,2 等三个寄存器并且在退出前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本例中没有涉及这种情况。实验开始时 K7 应在 H(高电平)端,
17、要产生中断时先拨向L(低电平)端再拨回 H端。五 .实验框图实验示例程序见TRLED2.ASM。程序框图:实验五8255 实验第一部分: 8255 输入、输出实验一 .实验要求编写程序,使用8255 可编程并行口芯片,来检测八位拨动开关的状态,并控制八位发光二极管。使得八位发光二极管的亮灭变化与八位拨动开关的状态相一致。 实验中用 8255PB 口作输入, PC 口做输出。二 .实验目的了解 8255 芯片结构及编程方法。三 .实验电路及连线8255 的 PB0PB7( PB口)接至八位拨动开关将 PC0PC7( PC 口)接至八位发光二极管K0K7。L0 L7 。 CS8255 接 F228
18、 。四 .实验说明可编程通用接口芯片 8255A 有三个八位的并行 I/O 口,请用户仔细阅读有关书籍掌握其特点和各种用法。由于 8255 的 A1 、A2 脚分别接至地址线的A0 、A1 。所以相对应8255 各口 /寄存器的地址分配如下: PA 口: F228H; PB 口: F229H ; PC 口: F22AH ;控制寄存器地址:F22BH 。本示例程序中使用PB 口作输入,检测八位拨动开关的状态;使用PC 口作输出,控制八个发光二极管的亮灭。五 .实验程序及框图实验示例程序见8255.ASM 。实验示例程序流程框图如下:开 始设置 8255 工作状态PB 口读入八位开关量PC 口输出至八位二极管第二部分:扫描键盘、显示实验一 .实验要求利用 8255 可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在由 PA 口控制的七段数码管上。8255PB 口做键盘输入线,PC 口作扫描线。二 .实验目的1. 掌握 8255 编程方法。2. 掌握扫描键盘和显示的编程方法。三 .实验电路及连线CS8255接 F228H ,则 命 令 字 地址 为 F22BH,PA口 地 址 为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年大国工匠彭祥华教学设计
- 2025-2026学年摇篮教案户外
- 2025-2026学年六年级比的认识教学设计
- 2026年广西工业职业技术学院单招职业适应性测试题库含答案详解(突破训练)
- 油气管道保护工安全教育水平考核试卷含答案
- 2025-2026学年《尊严》课文教案
- 2026年平顶山工业职业技术学院单招综合素质考试题库附参考答案详解(突破训练)
- 信用分析师班组协作知识考核试卷含答案
- 2026年广东省梅州市单招职业倾向性考试题库附答案详解(完整版)
- 2026年山西经贸职业学院单招职业倾向性测试题库带答案详解(能力提升)
- 小说我是一滴水900字12篇
- 2025年山西省中考语文真题试卷
- 高一数学人教a版试卷及答案
- GB/T 3091-2025低压流体输送用焊接钢管
- 2024-2025学年苏教版七年级生物下册知识点复习提纲
- GB/T 10810.3-2025眼镜镜片第3部分:透射比试验方法
- 《中国社会史》课件
- 汽车零部件项目管理培训
- 区域国别研究的跨学科性
- 心理调适-开学第一课(课件)-小学生主题班会版
- 灭火器的使用方法消防安全知识培训
评论
0/150
提交评论