单片机实验讲义
单片机原理实验讲义
10H
2000H
变址寻址示意图
返 回
相对寻址
以当前程序计数器PC的内容为基础,加上指 令给出的一字节补码数(偏移量)形成新的 PC值的寻址方式。 相对寻址用于修改PC值,主要用于实现程序 的分支转移。
例:SJMP 08H
51 单 片 机 的 引 脚 配 置 图
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPD RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 T1/P3.5 WR/P3.6 RD/P3.7 XTAL2 XTAL1 VSS
地 址 锁 存 器
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0
AB
DB
MCS-51单片机存储器结构
FFH 特 殊 功 能 寄 存 器 F0H E0H D0H B8H B0H A8H A0H 98H 90H 88H 80H FFFFH 特 殊 功 能 寄 存 器 中 位 寻 址 FFFFH
实验准备
实验课前,学生必须预习实验指导书中的实验内 容,了解本次实验的目的、要求、仪器设备、实验原 理、实验步骤等;实验过程中,按照指导老师的要求 进行实验,遵守仪器设备的操作规程;实验结束后, 应将实验数据或结果送交指导老师审阅、签字,然后 将仪器恢复原状并搞好实验现场的环境卫生,经许可 后方可离开实验室。
1 0.256 s
1 0.256 (1 0.256 X 1 0.256 1 0.256) 200 0.110
单片机原理实验讲义(DOC)
目录实验一、单片机集成开发环境入门实验二、I/O口输入输出实验――循环灯程序设计实验三、I/O口输入输出实验――LED数码管动态显示与按键去抖程序设计实验四、定时器应用实验――LED数码动态显示与矩阵键盘赋值程序设计实验五、计数器应用实验――基于热敏电阻和555时基电路的简易温度计设计实验一、单片机集成开发环境入门一、实验目地1.掌握单片机集成开发软件“W A VE 3.2”的开发环境配置。
2.掌握单片机集成开发软件“WA VE 3.2”的基本功能,了解MCS-51系列单片机应用系统的软件开发过程。
●掌握创建工程项目和管理工程项目的方法。
●掌握MCS-51系列单片机汇编程序的编辑、编译方法。
●掌握MCS-51系列单片机汇编程序的仿真调试方法和观察窗口的使用。
二、实验设备PC 兼容机一台,操作系统为WindowsXP,安装有单片机集成开发软件“W A VE3.2”。
三、实验原理1.单片机集成开发软件“W A VE 3.2”简介单片机应用程序的设计步骤通常可分为以下几步:(1)根据单片机应用系统的功能进行算法构思和设计,画出程序流程图;(2)用单片机汇编语言、C语言或PLM语言(初学者一般应采用汇编语言)编写源程序;(3)将源程序翻译成单片机可执行的机器码程序,即所谓的目标程序,该过程称为汇编或编译;(4)程序调试,将目标程序下载到目标单片机(即应用系统板中的单片机),运行目标程序,对运行结果进行监控。
若运行结果与预期结果相符,程序正确,调试结束;否则由结果的差异分析算法或程序的可能错误,重复步骤2至4,修改源程序、重新汇编、再调试,直至程序正确。
以上步骤2至4可应用单片机集成开发软件在个人计算机上完成。
“W A VE 3.2”是一款功能强大的单片机集成开发软件,可开发多个系列的单片机应用系统。
该软件主要功能有:(1)集成了文本编辑器,可对源程序进行编辑、修改;(2)集成了汇编器,可对源程序进行汇编,自动查找源程序中的语法错误,并将无语法错误的源程序翻译成目标程序;(3)集成了仿真调试器,可对目标系统进行在线仿真调试,也可在个人计算机上对目标程序进行模拟仿真调试。
单片机实验讲义22页PPT
1、合法而稳定的权力在使用得当时很 少遇到 抵抗。 ——塞 ·约翰 逊 2、权力会使人渐渐失去温厚善良的美 德。— —伯克
3、最大限度地行使权力总是令人反感 ;权力 不易确 定之处 始终存 在着危 险。— —塞·约翰逊 4、权力会奴化一切。——塔西佗
5、虽然权力是一头固执的熊,可是金 子可以 拉着它 的鼻子 走。— —莎士 比
谢谢!
Байду номын сангаас
61、奢侈是舒适的,否则就不是奢侈 。——CocoCha nel 62、少而好学,如日出之阳;壮而好学 ,如日 中之光 ;志而 好学, 如炳烛 之光。 ——刘 向 63、三军可夺帅也,匹夫不可夺志也。 ——孔 丘 64、人生就是学校。在那里,与其说好 的教师 是幸福 ,不如 说好的 教师是 不幸。 ——海 贝尔 65、接受挑战,就可以享受胜利的喜悦 。——杰纳勒 尔·乔治·S·巴顿
单片机实验讲义
单片机实验讲义执笔人:杨晓锋DVCC单片机实验系统简介本科目实验使用的平台为启东公司的DVCC-52JH单片机仿真实验仪(带有配套试验软件)。
可基本满足MCS-51(80C51)系列单片机课程(本/专科)的实验要求。
实验平台资源:1、AT89C52单片机(6MHz晶体振荡器、256B片内RAM、8KB程序存储器(FLASH)、3个定时/计数器、6个中断源(T2))。
2、实验平台带有总线扩展有64BK片外RAM,用户可使用范围0000H~0FEFFH;64KB片外ROM,用户可使用范围0000H~0FEFFH。
3、实验平台的主要芯片有:1片8255可编程通用并行接口芯片、1片8155芯片、1片译码芯片74138、1片74393芯片、1片D/A转换芯片0832、1片A/D转换芯片0809、2片串/并转换芯片74164、若干辅助芯片74240、74373等和常用逻辑门电路芯片。
4、实验平台上的主要外设包括:K1~K10滑动开关、L1~L12发光二极管(有3种颜色)、2个LED七段数码管、1个单脉冲发生器、1个时钟频率选择器、1个步进电机(带驱动电路)、1个直流电机(带驱动电路)、2个电位器、1个继电器、1个扬声器驱动、1个双踪模拟示波器、带有总线扩展区、带有EPROM烧录区。
实验系统的使用步骤:1、在计算机、实验仪关闭时,使用实验平台自带的RS-232通用串口线连接计算机的COM口和实验箱的J2串行口。
2、启动计算机,运行“DVCC52JH实验系统”。
3、在计算机上编写并调试实验程序,在实验箱中联接实验所需连线。
4、打开试验箱电源,点击实验箱上的“复位”按钮,再点击实验箱上键盘区的“PCDBG”按钮。
5、在计算机上的“DVCC实验系统”软件中,左键单击工具栏上的“联接”按钮(或选择“动态调试”菜单下的“联接DVCC实验系统选项”)。
6、如果联接正常将弹出若干小窗口。
如果联接失败重新执行步骤3、4。
选项,将实验程序传送到实验箱。
单片机实验讲义
单片机原理与应用实验指导书(电科07用)扬州大学物理学院电子教研中心张凯2009.3Keil集成开发环境介绍Keil C51是由Keil Software公司出品的51系列兼容单片机C语言软件开发系统,是目前最流行的开发MCS-51 系列单片机的软件。
Keil C51提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部份组合在一起。
μVision for Windows是Keil C51在32位Windows环境的版本,它的人机界面友好,操作方便,是开发者的首选。
运行Keil 软件需要Pentium 或以上的CPU,16MB或更多RAM,20M 以上空闲的硬盘空间,WIN98、NT、WIN2000、WINXP等操作系统。
一、Keil 工程的建立、设置与编译连接首先启动Keil 软件的集成开发环境,如果已正确安装了该软件,可以从桌面上直接双击μVision的图标以启动该软件。
启动画面如图。
μVision启动后,程序窗口的左边有一个工程管理窗口,该窗口有5个标签,分别是Files、Regs、Books、Functions和Templates,这三个标签页分别显示当前项目的文件结构、CPU 的寄存器及部份特殊功能寄存器的值(调试时才出现)、所选CPU 的附加说明文件、函数和模板,如果是第一次启动Keil,那么这三个标签页全是空的。
1、建立工程在项目开发中,首先要为这个项目选择CPU(Keil 支持数百种CPU,而这些CPU的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等,为管理和使用方便,Keil 使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译(汇编)和连接等操作,下面我们就一步一步地来建立工程。
MCS-51单片机实验讲义
MCS-51单片机实验讲义北京工商大学信息工程学院- i -目录第一章概述 (1)第二章实验系统组成和结构............................... . (3)第三章MCS-51系列单片机实验 (16)软件实验1. 存储器块清零.......................................... .. (17)2. 二进制到BCD码转换............... (18)3. 二进制到ASCII码转换 (19)4. 内存块移动 (20)5. 程序跳转表 (21)6. 数据排序 (22)硬件实验1. P1口输入输出 (23)2.继电器控制 (25)3.用74LS245读入数据 (26)4. 用74LS273输出数据 (27)5. PWM转换电压实验.................................................................................... .286.音频控制 (29)7.用8255输入、输出 (30)8. 串行数转换并行数 (31)9. 并行数转换串行数 (33)10. 计数器实验 (35)11. 外部中断实验 (36)12. 定时器实验 (38)13. D/A转换实验 (40)14. A/D转换实验 (42)15. 外部中断实验(急救车与交通灯) (44)16. 八段数码管显示 (46)17. 键盘扫描显示实验 (48)18. 电子时钟 (40)19. 单片机串行口通讯实验 (52)20. 打印机控制实验 (54)21. 直流电机控制实验 (56)22. 步进电机控制实验 (58)23. 温度传感器实验 (61)- ii -24. 液晶显示屏控制实验 (62)25. 电子琴 (64)26. 空调温度控制实验 (66)27. 计算器实验 (69)28. 压力传感器实验 (71)29. 红外通讯实验 (72)30. 16x16点阵显示实验 (76)31. I2C总线实验.. (78)第四章逻辑分析工具 (80)第五章系统自检功能 (83)- iii -第一章概述1.1系统实验板本实验板提供以下实验电路和模块(1) 逻辑电平输入开关(2) 逻辑电平显示电路(3) 单脉冲电路(4) 扬声器驱动电路(5) 继电器控制电路(6) 逻辑门电路(7) 逻辑笔电路(8) 4MHz脉冲信号源和多级分频电路,可得多种脉冲信号。
单片机试验讲义(改)
第一章单片机结构及工作原理单片微型计算机(Single-chip Microcomputer)或称微控制器(Microcontroller)是为了适应工业现场的实时控制而设计的芯片。
具有集成度高、功能强、体积小、应用灵活、可靠性高等特点,在工业自动化、过程控制、智能仪器仪表、通信系统等众多领域得到了广泛的应用。
什么是单片机呢?所谓单片机是指:在一块硅片上集成了中央处理单元CPU、随机存储器RAM、程序存储器ROM或EPROM、定时器/计数器及串行和并行I/O接口,也就是集成在一块芯片上的微机。
1.1单片机分类单片机以所处理的数据位数来分,有8位单片机(MCS-51)、16位单片机(MCS-96)、32位单片机等。
本实验主要用MCS-51系列8位单片机。
MCS-51系列单片机主要有三个基本型号:8051 —片内有4KROM;8751 —片内有4KEPROM;8031 —片内无ROM和EPROM;由此可知,这三种型号的单片机区别仅在于片内程序存储器不同,其他性能结构是一致的。
1.2 MCS-51系列单片机内部结构一.硬件结构MCS-51系列单片机的基本结构如图1-1所示。
由图可知,MCS-51系列单片机主要由以下几部分组成:(1)8位中央处理器CPU;(2)片内4K字节的程序存储器ROM或EPROM(8031无ROM/EPROM);(3)片内128字节的数据存储器RAM;(4)21个特殊功能寄存器SFR;(5)4个8位并行I/O口;(6)两个16位定时器/计数器T0、T1;(7)2个优先级的5个中断源结构;(8)一个全双工的通过编程工作在异步方式的串行接口;(9)片内振荡器和时钟电路。
(10) 布尔处理器(11) 64KB 外部数据存储器地址空间。
(12) 64KB 外部程序存储器地址空间。
二. 硬件结构简介1. 中央处理器CPU中央处理器CPU 主要由算术逻辑运算部件、布尔处理器、控制器和工作寄存器等组成。
单片机实验讲义(DOC)
片机实验讲义2013 年10 月27 日星期日实验一汇编指令的练习与 BCD 码加减运算一实验要求学习和掌握 keil 汇编编译系统, 编写通用 4字节压缩 BCD 码的加、减法运算程 序。
二实验目的通过学习多字节压缩BCD 码加减运算的程序设计;学习汇编程序的编写, 学会编译.asm 源程序,编译,下载。
学习断点设置,单步执行,SFF 特殊功能寄 存器的查看等编程基本功能。
三 实验原理对于简单的 8 位加减可以直接调用指令就可以了。
例如加法可以使用指令 ADD 以及带 进位加 ADDC ,但单字节加减法只能在 256 之内进行运算;在实际应用中经常需要进行多 字节运算,从而处理更大的数据。
该实验介绍单片机 BCD 码多字节加、减运算通用程序的 设计。
1.多字节无符号压缩 BCD 码加法运算假设多字节无符号被加数的最低字节的地址为 共为len ;计算结果的地址于被加数相同。
♦入口参数:R0 :被加数地址指针; R1:加数地址指针; len :字节数。
♦ 出口参数:@R0:计算结果; rLen :计算结果字节数。
♦ 使用资源:ACC ,R0、R1,内部RAM 单兀len 、rlen 及存放被加数、加数、计算结果的内存单元。
示例程序如下:len DATA 70H rlen DATA 71H ADDSTART : PUSH PSWCLR CMOV rlen , #00HLOOP : MOV A , @R0 ADDC A , @R1 DA A MOV @R0, A INC R0R0,加数的最低字节地址为 R1,字节数 ;保护标志寄存器内容 ;进位位清 0 ;和的字节数先清 0;取被加数;求和;十进制调整 ;保存 ;地址增 1;字节数增 1;所有字节未加完继续,否则向下执行 ;和的最高字节无进位转 ADD20 ;和的最高字节地址内容为 01HRET END多字节加法运算一般是按从低字节到高字节的顺序进行的, 所以必须考虑低字节向高字 节的进位情况,被加数和加数的压缩 BCD 码,最大不超过 99,而 99+99+1 (进位) =199, 此时可以不需要使用 ADDC 指令,但当最低两字节相加后,必须使用“ DA A ”进行十进 制调整,调整后产生进位。
单片机实验讲义
3
第二章 DICE-5210K 单片机实验开发系统介绍
ห้องสมุดไป่ตู้
信息学院
第二章 DICE-5210K单片机实验开发系统介绍
DICE-5210K多功能单片机实验开发系统为51单片机相 关课程提供配套的实验。以小系统、多功能、易扩展为设 计思想,系统的地址总线、数据总线、控制总线全部引出, 对用户开放,并留有扩展单元(区),教师可以从需要出 发,灵活选配各种扩展模块,可为各类院校的实验教学、 课程设计、毕业设计提供了良好的实验开发环境,也是科 研、开发工作者的得力工具。图2-1 DICE-5210K单片机实 验箱。
2
单片机实验讲义
可在现场完成仿真调试工作。 1.2 应用系统的开发过程 一般来说,随着用途的不同,应用系统的硬件和软件结构也不相同,但研制、开发的方
法和步骤基本上是相同的。综合前面所讲的内容,可以看出应用系统的开发过程主要有下面 几个步骤;
1. 预研; 2. 总体设计; 3. 系统硬件设计; 4. 系统软件设计; 5. 仿真调试(包括按件调试和软件调试); 6. 固化应用程序,脱机运行。
单片机实验讲义
第一章 单片机仿真系统与单片机应用系统的开发
一个单片机应用系统经过预研、总体设计、硬件设计、软件设计、制板、元器件安装后, 在系统的程序存储器中放入编制好的应用程序,系统即可运行。但一次性成功几乎是不可能 的,多少会出现一些硬件、软件上的错误,这就需要通过调试来发现错误并加以改正。由于 单片机在执行程序时人工是无法控制的,为了能调试程序,检查硬件、软件运行状态,就必 须借助某种开发工具模拟用户实际的单片机,并且能随时观察运行的中间过程而不改变运行 中原有的数据性能和结果,从而进行模仿现场的真实调试。完成这一在线仿真工作的开发工 具就是单片机在线仿真器。
单片机实验讲义
单片机实验指导书实验软件的学习一:学生学会应用两个关于单片机的软件,KEIL 软件的应用如下:安装好软件后由下列的图示进入程序的编写和调试。
先建一个工程,点Project.出现一个界面。
接着进行下一步。
点击NEW Project保存文件,可以是任意的文件名和保存路径。
按保存。
出现界面后选择Atmel,双击,找到AT89C51,按确定。
右击Target 1弹出如上图界面。
点击option for target 1.弹出如图窗口24改成12,接着点击output,出现下面窗口在creat hex 前的小格打钩。
按确定即可。
点击FILE ,点击NEW.弹出如图窗口接着保存,路径随意。
但文件名要在名称后面加后缀名。
C.即YU.C点击TARGET1前的框,弹出上图,右击source group.弹出下面窗口。
点击ADD FILE TO,选到路径后找到刚才所保存的.C文件。
即可。
可以在里边编写程序编译完成后点击就可。
成功后就可以退出进行下一步。
下面学习Proteus软件点击左边的P,进行元件的选择。
输入所需要找的元件即可。
双击调出。
即可以连线。
保存好后进行下一步。
双击89C51路径哪里选择刚才KEIL保存的路径底下的HEX文件即可。
工程项目一闪烁的LED灯实验目标初步学会KEIL和仿真软件的使用。
懂得编写一个简单的闪烁灯程序。
实验要求在KEIL上编写程序进行调试,并进行仿真。
实验原理LED发光二级管的阳极给高电平(1),阴极给低电平(0)时,二极管就可以点亮,同理在相反的电平信号下二极管就会熄灭。
实验内容1,一个灯进行闪烁,并仿真。
2,在原来基础上将一个灯进行改进,要求学生做8个LED灯同时闪烁。
3,进一步改进,做到16个LED灯闪烁。
4,要求在原来程序基础上修改延时时间。
实验参考程序和电路图闪烁的LED/* 名称:闪烁的LED说明:LED 按设定的时间间隔闪烁*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P1^0; //延时void DelayMS(uint x) {uchar i;while(x--) { for(i=0;i<120;i++);} } //主程序void main() { while(1) {LED=~LED;DelayMS(150); } }实验过程下面空白的地方由学生编写16个LED灯闪烁的程序,要求延时时间比较长。
单片机原理与应用实验讲义
《单片机原理与应用》实验讲义实验要求及注意事项一.预习实验内容1. 明确本次实验目的及任务,了解和掌握实验所需的理论知识。
2. 通过课上老师讲解,掌握编程方法及相关技巧。
3. 对每次实验,选择一个题目自己试着独立设计编写整个程序。
二.实验过程1. 在实验箱上实验时,连接实验导线一定要关闭实验箱电源,连接好后,在检查一遍是否有误,连接正确后,再依次打开实验箱电源开关及实验底板上电源开关,进行实验。
严禁带电操作。
2. 实验箱底板上的所有芯片出厂时经过严格测试和老化,实验时切忌插拔。
3. 带上理论课教材、实验指导书及准备的实验程序。
4. 调试实验程序,记录实验结果。
5. 实验结束后,关闭实验底板上的电源开关及实验箱电源开关,确认关闭后,整理好自己的实验导线,摆放老师交代的地方。
三.编写实验报告1. 实验题目。
2. 分析设计思想,绘制实验原理图、流程图。
3. 程序清单及相关注释。
4. 分析实验结果。
5. 说明在实验过程中遇到了哪些问题,是如何处理的。
6. 收获体会,不足之处和今后应注意的问题等。
实验目录实验一、单片机P1口实验(02 广告流水灯控制实验)实验二、外部中断实验(12单一外部中断实验)实验三、单片机定时/计数器实验(14 定时器实验)实验四、单片机与与矩阵键盘接口(32 PS/2 键盘实验)实验五、单片机与A/D转换器实验(31 模/数转换器(ADC0809)实验)实验六、单片机串行口实验(16 串行通信RS232 实验)实验一、单片机P1口实验(02 广告流水灯控制实验)一.实验目的1.以P1 口为例,学会使用51 系列单片机I/O 口的基本输出功能;2.学习循环指令的用法和软件延时的编程方法;3. 掌握RR.RL 指令的用法;二.实验内容编写程序,利用单LED 灯有条件的左右扫描,八个LED 发光二极管L0-L7 分别接在单片机的P1.0-P1.7 接口上,输出“0”时,发光二极管点亮,输出”1”时,发光二极管灭,先由右至左P1.0→P1.1→P1.2→P1.3→┅→P1.7 ,再由左往右P1.7→P1.6→┅→P1.0 亮,重复循环下去。
单片机实验讲义
《微机应用实验》课程教学所做的基本实验前言需要说明的是,设置本实验课程的目的完全是为了培养读者的“计算机工程概念”,即学习如何用最短的时间和最少的花费,将实际问题转化成使计算机能够“做到并完成”的方法。
故读者在做每个实验之前,必须对所做实验的理论依据做出“形式化”的说明,只有在完全理解了这些依据的情况下,再进行实验才有意义。
以下是每个合格的计算机工程人员在工作时都必须遵守的五个基本步骤(或称为五条原则)。
步骤一.对所希望解决的问题做出“形式化”的描述(用术语说就是“无二义性”,因为早在微型计算机出现之前,就有人证明过“计算机无法解决‘二义性’的问题”这个定理);若别人已经对该问题做出了这样的描述,则应确实理解它。
步骤二.根据所解决的问题的特性与规模,建立该问题与计算机所能处理的对象(即数据)之间的相互对应关系,用术语说就是进行问题的“数据设计”。
需要特别说明的是,前两个步骤基本上与所使用的计算机系统(包括硬件和软件)无关。
步骤三.选择某一种(或几种)相应的程序设计语言(必要时还要选择或设计相应的机器硬件),将步骤一中“人对问题的形式化描述”,转化成“计算机对问题的快速处理”,而计算机的“处理对象”则由步骤二所确定。
用术语说就是进行问题的“程序代码设计”。
另外需要说明的是在动手编写具体的程序代码之前,应先做“确定设计目标”的工作。
即若编写的是子程序,就必须确定该子程序所处理的各种参数的形式和该子程序的“引用条件”;若编写的是程序,就必须确定该程序执行时所产生的现象、用户所做的操作和执行后所产生的结果等等。
步骤四.在各种特定的环境下,调试步骤三所编写的程序代码以保证其正确性。
步骤五.书写相应的“软件(或软件+硬件)使用说明”,注意这其实是步骤三中“确定设计目标”的简述。
值得注意的是,后三个步骤的“正确性”是建立在前两个步骤的“正确性”的基础之上的,没有前两个步骤,后面所做的全部工作都毫无意义(因为你的“出发点”就不对,即犯了“南辕北辙”的错误)。
单片机实验讲义
《单片机系统及应用》实验讲义实验一 MCS-51单片机汇编语言编程练习一. 实验目的1. 熟悉单片机开发软件Keil系统的使用方法。
2. 理解单片机汇编语言指令的基本语法以及汇编语言程序设计的基本结构和编程方法。
3. 掌握单片机汇编语言顺序结构、分支结构和循环结构程序的设计方法。
4. 能够独立使用单片机汇编语言进行顺序结构、分支结构和循环结构程序的设计能力。
对实际应用问题能够抽象出数学模型,并通过编程来实现数学模型所要完成的功能。
5. 掌握顺序结构、分支结构和循环结构程序的流程图绘制方法。
二.预习与思考1. 预习理论教材中“顺序结构”、“分支结构”和“循环结构”等相关内容,掌握它们的实现方法。
2. 思考如何使用不同类型的单片机汇编语言指令,来完成分支、循环结构程序的设计,并总结归纳出所有具备类似分支循环功能的汇编指令。
三. 实验原理1. 单片机汇编语言的指令分类全球生产单片机的芯片厂商有数百家,不同厂商生产的单片机芯片都有自己特定的汇编语言指令系统对其进行支持,那么在众多不同类型的单片机汇编语言指令系统中,作为单片机的初学者是不是要一一来学,是不是需要面面俱到呢?回答是不需要。
因为,尽管单片机芯片的生产厂商、芯片类型以及处理位数都不尽相同,但是所有的单片机芯片都有一个共同的祖先,那就是Intel公司生产的MCS-51系列单片机芯片。
因此,只要掌握好MCS-51系列单片机的汇编语言指令,就可以举一反三、触类旁通,从而理解其他类型单片机芯片的汇编语言指令系统。
MCS-51系列单片机的汇编语言指令,一共有111条,按照指令实现的功能不同,将这111条指令分成了五大类即:数据传送类指令、算术运算类指令、逻辑运算类指令、控制转移类指令以及位操作指令(也叫布尔变量操作指令)。
数据传送类指令的作用是将数据在单片机芯片内部或外部的不同部件间进行传送,它是五大类指令当中最基础、最重要,也是指令条数最多的一类指令。
单片机实验讲义2
5 汽车转向信号灯控制实验一、实验目的1.掌握多分支程序的设计方法。
2.掌握用分支程序编程控制汽车转向信号灯的方法。
3. 掌握用Proteus调试汇编源程序的方法。
二、实验内容P1口做输出口控制汽车转向信号灯,用P3口做输入口接五只控制开关,设计一个汽车转向信号灯控制系统。
晶振频率6MHz。
具体要求如下:(1) 正常驾驶时,接通左转弯开关,左转弯灯、左头灯、左尾灯同时闪烁;接通右转弯开关,右转弯灯、右头灯、右尾灯同时闪烁,闪烁频率为1Hz。
(2) 刹车时,接通刹车开关,左尾灯、右尾灯同时亮。
(3) 停靠站时,接通停靠开关,左头灯、右头灯、左尾灯、右尾灯同时闪烁,闪烁频率为1Hz。
(4) 出现紧急情况时,接通紧急开关,左转弯灯、右转弯灯、左头灯、右头灯、左尾灯、右尾灯同时闪烁,闪烁频率为5Hz。
三、实验参考电路假设P1口输出低电平时灯被点亮,实验时可用发光二极管替代灯;假设控制开关输出低电平有效,控制开关的信号通过P3口送入单片机,控制开关与P3口各管脚的对应关系如表5-2所示。
汽车转向信号灯控制电路图如图5-8所示。
根据硬件接线可推导出控制状态与P1口的控制码的对应关系,如表5-3所示。
5-3 控制状态与P1口控制码的信号灯的对应关系表图5-8 汽车转向信号灯控制实验电路四、实验参考程序五、实验步骤1. 新建设计文件、设置图纸尺寸、设置网格、保存设计文件。
文件名为“bus”。
2. 选取元器件。
从Proteus元器件库中选取元器件:AT89C51(单片机)、CRYSTAL(晶振)、CAP(电容)、CAP-ELEC(电解电容)、RES(电阻)、LED-YELLOW(黄色发光二极管)、LED-GREEN(绿色发光二极管)、LED-RED(红色发光二极管)、SW-SPST(单刀单掷开关)。
3. 放置元器件、编辑元器件、放置终端、连线。
按图3-8所示放置元器件并连线。
4. 设置元器件属性并进行电气规则检测。
单片机原理实验讲义(电信)30课时
《单片机原理实验》讲义目录实验一 KEIL编译器实验 (1)实验二清零、拆字、拼字程序设计 (10)实验三数据区传送、数据排序程序设计 (13)实验四无符号双字节快速乘法、查找相同数个数 (15)实验五软件延时实验 (18)实验六 LED数码管动态扫描实验 (20)实验七定时/计数器实验 (22)实验八中断实验 (23)实验九 D/A转换实验 X5045实验(二选一) (25)实验十 A/D转换实验 (28)实验资料说明 (31)实验报告撰写要求 (32)实验一 KEIL编译器实验一、实验预习1、掌握51单片机的硬件结构。
(包括CPU、存储器体系结构、I/O口等)2、掌握51单片机的指令系统,熟悉使用汇编语言设计程序。
3、熟悉课堂讲授的使用keil软件开发环境的方法。
实验预习问题:1、Keil编译器适用的单片机类型。
(实验课堂提问)二、实验目的掌握在keil编译器下建立自己的工程,并进行调试。
三、演示实验1、典型51单片机开发系统2、51单片机应用实例4个:计算器、温度计、智能风扇、密码系统。
演示实验关注点:1、掌握51单片机单片机的典型开发流程。
2、学会使用仿真器、烧写器。
3、了解单片机开发过程的关键技术点。
四、Keil C51简介:Keil C51是Keil software公司开发的用于51系列单片机的C51语言开发软件。
Keil C51在兼容ANSI C的基础上,又增加很多与51单片机硬件相关的编译特性,使得开发51系列单片机程序更为方便和快捷,程序代码运行速度快,所需存储器空间小,完全可以和汇编语言相媲美。
它支持众多的51单片机架构的芯片,同时集编辑、编译、仿真等功能于一体,具有强大的软件调试功能,是众多的单片机应用开发软件中最优秀的软件之一。
经常用到Keil C51和Keil µVision这两个术语。
Keil C51一般简写为C51,指的是51单片机编程所用的C语言;而Keil µVision,可简写为µVision,指的是用于51单片机的C51程序编写、调试的集成开发环境(IDE)。
单片机实验讲义
一、实验台结构1)通用单片机插座:●40/202)仿真器:●SST89E564RD:●89C51/仿真器切换:3)跳线开关:4)地址译码电路:●74LS138:5)低位地址总线插空:●74LS373:●A2A1A0:6)单片机扩展电路:●8K*8 RAM6264●ADC0809●DAC0832●双积分A/D转换器MC14433 7)外围电路:●七段码显示:并行/串性●8*8点阵LED:●字符LCD:●行列式4*4键盘●查询式键盘:●串行EEPROM:●串行通信:●继电器:●扬声器:●直流电机/步进电机:●逻辑电平开关:●时钟电路:●LED指示:●单脉冲:●逻辑笔:●复位:8)仿真开关:●SW1:●仿真/89C519)编程:●编程:●运行:10)电源:11)通用扩展实验区:●40PIN●20PIN12)串行接口:13)打印机接口:二、实验模式1、单片机下载实验模式:利用Flash Magic对P89C51RD2H编程,程序下载到系统板上的51CPU上运行●应用程序:HEX●SW1:89C51●SW2:编程●运行Flash Magic:●SW2:运行●程序运行:2、在线仿真:●串口连接:●SW1:仿真●PC上运行Keil C:在线仿真三、编程器使用1、Flash Magic●在系统编程单片机:89C51RD2●串口编程:●加密位:2、Top151编程器:四、开发平台Keil C●建立目录:●建立工程:●选定型号:●建立源程序:●添加源程序:●添加头文件:●设置:●Build:3、编程:4、运行/在线运行:●软件仿真:Use Simulator●硬件仿真:Use。
单片机导论实验讲义
第一章单片机软件实验实验一内存操作1.实验目的①掌握数据传送指令;②掌握各种数据传送指令的寻址方式;③熟练运用keil 环境对汇编程序进行调试;④掌握数据传送、复制等程序的设计与调试方法。
2.预习要求①理解数据传送指令和循环指令的使用;②理解如何对内部寄存器、内部RAM、外部RAM的读写;③理解各种寻址方式,尤其是较为抽象的变址寻址及相对寻址的方式;④认真预习本实验内容,自行编写程序,填写实验报告。
3.实验设备计算机1台;4.基础型实验内容①下列程序的功能是给外部RAM8000~80FFH的256个单元的内容赋值,赋值的内容取决于程序中A的赋值。
在Keil环境运行该程序,并观察寄存器及内存单元的变化。
ORG 0000HSTART EQU 8000HMAIN: MOV DPTR,#START ;;起始地址MOV R0,#0ffh ; ;设置256字节计数值MOV A, #1HLoop: MOVX @DPTR, AINC DPTR ; ;指向下一个地址DJNZ R0, loop ; ;计数值减1SJMP $② END下列程序将3000H起始的256个字节存储块移动到4000H起始的256个字节存储块,在Keil环境运行如下程序,观察寄存器及存储单元的变化。
ORG 0000HMOV DPTR,#3000HMOV A,#01HMOV R5,#OLOOP: MOVX @DPTR,AINC DPTRDJNZ R5,LOOPMOV R0,#30HMOV R1,#00HMOV R2,#40HMOV R3,#00HMOV R7,#0LOOP1: MOV DPH,R0MOV DPL,R1MOVX A,@DPTRMOV DPH,R2MOV DPL,R3MOVX @DPTR,AINC R1INC R3DJNZ R7,LOOP1SJMP $END5.设计型实验内容①在keil环境修改内部RAM 30H ~3FH的内容分别为#00H-#0FH,设计程序实现将内部RAM30H-3FH到40H-4FH的数据块拷贝。
单片机实验讲义
;延时
延时子程序的延时计算
• DELAY: MOV R6,#00H • DELAY1: MOV R7,#80H • DJNZ R7,$ • DJNZ R6,DELAY1 • RET • 查指令表可知, MOV,DJNZ 指令均需2个机器 周期,一个机器周期为1us,(晶振为12MHZ),该段 指令执行时间为: • ((80+1)x256+1)x2x1=66.05ms
软件实验
• 本节共编了十个软件实验,通过这些实验程序的调试,使学生熟悉 MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以 及如何使用实验系统提供的调试手段来排除程序错误。 • 本节提供的软件实验,涉及外部数据存储器扩展寻址操作,因此对于 机型后缀名含有“H”的机型需按下图连接实验线路。
•
软 件 实 验(续)
• ⑴将存储器单元的D0~D7总线接口用8芯排线或8 芯扁平线与数据总线单元D0~D7的任一接口相连, 存储器单元的A0~A7地址接口与地址总线单元 (低八位)A0~A7的任一接口相连,存储器单元 的A8~A12地址接口与地址总线单元(高八位) A8~A12 A8~A12的任一接口相连。 • ⑵存储器单元的WE/PGM插孔与六位LED左下方 的WR或IOWR插孔相连。 • ⑶存储器单元的OE插孔连到六位LED左下方的 RD或IORD插孔。 • ⑷存储器单元的CS1插孔连到六位LED右下方的 A15插孔。
;满足只是P1.0为高条件吗? ;闪烁标志位 ;开右灯 ;关左灯 ;延时 ;置标志位 ;继续查状态
• PX04: SETB P1.4 • SETB P1.5 • SETB P1.6 • SETB P1.7 • MOV R2,#20H • LCALL DELY • CLR 00H • AJMP PX03 • PX01: CJNE A,#02H,PX02 • JB 01H,PX05 • SETB P1.4 • SETB P1.5 • CLR P1.6 • CLR P1.7 • MOV R2,#20H • LCALL DELY • SETB 01H • LJMP PX03
单片机实验讲义(1)
单片机实验讲义中国传媒大学南广学院欧阳禹2012-10实验一51系列单片机开发平台入门实验1、实验目的熟悉Keil μVision3 集成开发环境的使用方法;了解51单片机I/O应用的基本知识点。
2、实验设备PC 机一台单片机综合仿真实验仪一台3、实验内容在Keil μVision3 集成开发环境中创建一个工程项目文件;编辑一个汇编源文件(纯文本),并将其绑定到工程项目文件中,再进行仿真与调试工作,达到熟悉Keil μVision3 集成开发环境的使用方法的目的。
4、实验步骤(1)参见图1-1 ,连接8个发光二极管和限流电阻到51系列芯片的P1口;图1-1 跑马灯电原理图(2)调用实验1的工程文件并进入Keil μVision3 集成开发环境;(3)初步观察以纯文本形式实验1的代码,并注意到实验1的代码的扩展名*.ASM;供实验的参考汇编程序代码如下:ORG 0000HLJMP MainORG 00F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP MainEND(4)绑定汇编文件(*.ASM)到自己的工程文件;(5)编译、链接*.ASM的汇编文件,如有错,要进行修改,直到无编译错误;(6)设置软件仿真运行模拟方式设置的参考步骤如下:①鼠标右键点击工程文件的根目录“Target 1”,打开工程文件设置菜单;②在工程文件设置菜单中点击调试环境设置菜单第一项,进入调试环境设置,并点击“Debug”按扭进入调试选择菜单;③选择软件调试环境(Use Simulater),并点击“确定”按扭,完成软件调试环境设置;(7)点击主菜单的“Debug”按扭,用软件模拟方式进行模拟仿真运行,用“F9”快捷键在CPL P1.4 ; P 1 .4 取反指令上设置断点,并运行到断点处,再将第一次运行到断点时和第八次运行到断点时的P1口状态图填入表1-1,并写入到实验报告。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机实验讲义DVCC单片机实验系统简介本科目实验使用的平台为启东公司的DVCC-52JH单片机仿真实验仪(带有配套试验软件)。
可基本满足MCS-51(80C51)系列单片机课程(本/专科)的实验要求。
实验平台资源:1、AT89C52单片机(6MHz晶体振荡器、256B片内RAM、8KB程序存储器(FLASH)、3个定时/计数器、6个中断源(T2))。
2、实验平台带有总线扩展有64BK片外RAM,用户可使用范围0000H~0FEFFH;64KB片外ROM,用户可使用范围0000H~0FEFFH。
3、实验平台的主要芯片有:1片8255可编程通用并行界面芯片、1片8155芯片、1片译码芯片74138、1片74393芯片、1片D/A 转换芯片0832、1片A/D转换芯片0809、2片串/并转换芯片74164、若干辅助芯片74240、74373等和常用逻辑门电路芯片。
4、实验平台上的主要外设包括:K1~K10滑动开关、L1~L12发光二极管(有3种颜色)、2个LED七段数码管、1个单脉冲发生器、1个时钟频率选择器、1个步进电机(带驱动电路)、1个直流电机(带驱动电路)、2个电位器、1个继电器、1个扬声器驱动、1个双踪模拟示波器、带有总线扩展区、带有EPROM烧录区。
实验系统的使用步骤:1、在计算机、实验仪关闭时,使用实验平台自带的RS-232通用串口线连接计算机的COM口和实验箱的J2串行口。
2、启动计算机,运行“DVCC52JH实验系统”。
3、在计算机上编写并调试实验程序,在实验箱中联接实验所需连线。
4、打开试验箱电源,点击实验箱上的“复位”按钮,再点击实验箱上键盘区的“PCDBG”按钮。
5、在计算机上的“DVCC实验系统”软件中,左键单击工具栏上的“联接”按钮(或选择“动态调试”菜单下的“联接DVCC实验系统选项”)。
6、如果联接正常将弹出若干小窗口。
如果联接失败重新执行步骤3、4。
7、在计算机上的“DVCC实验系统”软件中,选择“编译”菜单下的“编译连接并传送”选项,将实验程序传送到实验箱。
8、在计算机上的“DVCC实验系统”软件中,左键单击工具栏中的“运行”按钮,设置PC起始地址,观察实验现象,验证实验结果。
9、实验结束后关闭实验箱电源和计算机,拔下连线,收起实验箱并放回原处。
软件实验实验一清零实验一、实验目的:掌握汇编语言设计和调试方法,熟悉DVCC52实验系统的使用步骤。
二、实验内容:1、将片外扩展的RAM地址为0000H~70FFH的内容清零(也可设置它值)。
2、将片外扩展的RAM地址为0000H~7FFFH的内容清零(也可设置它值)。
三、实验程序流程图四、实验步骤:1、按照“实验系统使用步骤”1~7步进行。
2、在计算机上的“DVCC实验系统”软件中,左键单击工具栏中的“运行”按钮。
等待弹出运行窗口后,点击实验箱上的“复位”按钮,再点击实验箱上键盘区的“PCDBG”按钮,最后关闭运行窗口。
3、在计算机上的“DVCC实验系统”软件中,选择“窗口”菜单下的“显示外部数据窗口”选项。
在弹出的数据窗口中找到地址7000H~7FFFH查看数据是否已经改变。
4、实验结束后关闭实验箱电源和计算机,拔下连线,收起实验箱并放回原处。
五、思考:假使要把7000H~70FFH中的内容改成FFH,如何编制程序。
实验二拆字实验一、实验目的:掌握汇编语言设计和调试方法。
二、实验内容:将片外RAM中地址为7000H中的内容拆开,高位送7001H低位,低位送7002H低位。
7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、实验程序流程图:四、实验步骤:1、按照“实验系统使用步骤”1~7步进行。
2、在计算机上的“DVCC实验系统”软件中,左键单击工具栏中的“运行”按钮。
等待弹出运行窗口后,点击实验箱上的“复位”按钮,再点击实验箱上键盘区的“PCDBG”按钮,最后关闭运行窗口。
3、先用存储器读写方法将7000H单元置成34H。
4、在计算机上的“DVCC实验系统”软件中,选择“窗口”菜单下的“显示外部数据窗口”选项。
在弹出的数据窗口中找到地址7000H~7002H查看结果,7001H和7002H单元中的内容应为03H 和04H。
5、实验结束后关闭实验箱电源和计算机,拔下连线,收起实验箱并放回原处。
实验三拼字实验一、实验目的进一步掌握汇编语言设计和调试方法。
二、实验器材DVCC—52JH+实验系统,DVCC—52JH+软件,PC机。
三、实验内容把7000H、7001H的低位相拼后送入7002H,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
四、实验程序框图开始(7000H)送A,屏蔽高位交换高低位后送B(7001H)送A,屏蔽高位A和B相或后送7002H结束五、实验步骤(1)将7000H单元内容置03H,7001H单元中的内容置04H。
(2)用单步或断点方式从0070H开始运行程序(输入0070后按STEP键为单步运行)。
(3)按MON键退出。
(4)检查7002H中的内容为34H。
实验四数据区传送程序一、实验目的:掌握RAM中的数据操作。
二、实验内容:将片外RAM中首地址为(R2、R3)的(R6、R7)个位元组数据,传送到目的首地址为(R4、R5)的存储区。
三、实验程序流程图:四、实验步骤:1、按照“实验系统使用步骤”1~7步进行。
2、在计算机上的“DVCC实验系统”软件中,左键单击工具栏中的“运行”按钮。
等待弹出运行窗口后,点击实验箱上的“复位”按钮,再点击实验箱上键盘区的“PCDBG”按钮,最后关闭运行窗口。
3、在计算机上的“DVCC实验系统”软件中,选择“窗口”菜单下的“显示外部数据窗口”选项。
在弹出的数据窗口中查看结果。
4、实验结束后关闭实验箱电源和计算机,拔下连线,收起实验箱并放回原处。
硬件实验实验五P3.3口输入、P1口输出实验一、实验目的1. 掌握P3口、P1口简单使用。
2. 学习延时程序的编写和使用。
二、实验器材DVCC—52JH+实验系统,DVCC—52JH+软件,PC机,导线。
三、实验内容1.P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。
2.P1口做输出口,编写程序,使P1口接的8个发光二极管L1—L8按16进制加一方式点亮发光二极管。
四、实验说明1.P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
2.延时子程序的延时计算问题。
对于延时程序DELAY :MOV R6, #00HDELAY1:MOV R7, #80HDJNZ R7, $DJNZ R6, DELAY1查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/ 6.0MHZ,所以该段指令执行时间为:((80+1)×256+1)×2×(12÷6000000)=132.1ms五、实验程序框图开始P3.3为高吗?延时P3.3真的高吗?P3.3为低吗?延时(A )+1送P1口循环N YNY NY主程序R6设初值FFHR7设初值FFH(R7)-1=0?(R6)-1=0?返回YY NN延时子承租六、实验步骤(1) P3.3用插针连至K1,P1.0—P1.7用插针连至L1—L8。
(2) 从起始地址0540H 开始连续运行程序(输入0540后按EXEC 键)。
(3)开关K1每拨动一次,L1—L8发光二极管按16进制方式加一点亮。
实验六 查表走马灯实验一、实验目的:1、掌握P3口、P1口输入/输出使用。
2、学习多分支程序的编写。
二、实验内容:1、P3.0~P3.3作为输入,连接3个拨动开关;2、P1口作为输出口,连接8个LED小灯;3、编写程序,在程序中查询P3.0~P3.3的状态,从而在LED小灯上实现8种不同的现实效果。
三、实验原理:四、实验程序流程图:五、实验步骤:1、按照“实验系统使用步骤”1~7步进行。
(第三步电路连接:P3.3~P3.0用插针连至K3~K1,P1.0~P1.7用插针连至L1~L8)2、在计算机上的“DVCC实验系统”软件中,左键单击工具栏中的“运行”按钮。
等待弹出运行窗口后,拨动开关K1~K3,查看实验现象。
3、实验结束后关闭实验箱电源和计算机,拔下连线,收起实验箱并放回原处。
实验七步进电机控制实验一、实验目的1. 了解步进电机控制的基本原理。
2. 掌握步进电机转动编程方法。
二、实验器材DVCC—52JH+实验系统,DVCC—52JH+软件,PC机,导线。
三、实验内容从键盘上输入正、反转命令,转速参数和转动步数显示在显示器上,CPU再读取显示器上显示的正、反转命令,转速级数(16级)和转动步数后执行。
转动步数减为零时停止转动。
四、实验预备知识步进电机驱动原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。
驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,微电脑控制步进电机最适合。
五、实验程序框图从键盘输入数据,数码管显示开始执行键是否按下?显示缓冲区(7E)=1?逆时针转动一步根据显示缓冲区(7D)的内容计算延时部距数-1,送显示缓冲区步距数为0?停止顺时针转动一步(7D)内容计算延时部距数-1,送显示缓冲区步距数为0?停止NYN YN Y YN六、实验步骤(1)步进电机插头插到实验系统J3插座中,P1.0—P1.3接到BA—BD插孔。
(2)在“P.”状态下,从起始地址开始(0A30H)连续执行程序。
输入起始地址后按EXEC键。
(3)在键盘上输入数字在显示器上显示,第一位为0表示正转,为1表示反转,第二位0—F为转速等级,第三到第六位设定步数,设定完按EXEC键,步进电机开始旋转。
(4)实验结束后关闭实验箱电源和计算机,拔下连线,收起实验箱并放回原处。
参考程序1、清零1,Clear.asmorg 0000hajmp startorg 0040hstart:mov r7,#00hmov a,#00hmov dptr,#7000hnext:movx @dptr,ainc dptrdjnz r7,nextsjmp $end清零2org 0000hajmp startorg 0040h start:mov r6,#10hmov r7,#00hmov dptr,#7000hmov a,#22h next:movx @dptr,ainc dptrdjnz r7,nextdjnz r6,nextsjmp $end2、拆字:Cword.asmorg 0000hajmp startorg 0040h start:mov dptr,#7000hmovx a,@dptrmov r2,aanl a,#0f0hswap ainc dptrmovx @dptr,amov a,r2anl a,#0fhinc dptrmovx @dptr,asjmp $end3、拼字:Pword.asmorg 0000hajmp startorg 0040h start: mov dptr,#7000hmovx a,@dptranl a,#0fhswap amov r2,ainc dptrmovx a,@dptranl a,#0fhadd a,r2inc dptrmovx @dptr,asjmp $end4、数据传送org 0000hajmp startorg 0040h start:acall chushiss1:mov dph,r2mov dpl,r3movx a,@dptrinc dptrmov r2,dphmov r3,dplmov dph,r4mov dpl,r5movx @dptr,ainc dptrmov r4,dphmov r5,dpldjnz r7,ss1djnz r6,ss1sjmp $chushi:mov r6,#08hmov r7,#00hmov dptr,#6000hmov a,#22hnext:movx @dptr,ainc dptrdjnz r7,nextdjnz r6,nextmov r2,#60hmov r3,#00hmov r6,#08hmov r7,#00hmov r4,#70hmov r5,#00hretend5、P3.3口输入、P1口输出实验org 0000horg 0040h main:clr amov p1,asetb p3.3ss:jb p3.3,ss1jnb p3.3,$mov r6,#20acall delayjnb p3.3,ssajmp next ss1:jb p3.3,$mov r6,#20acall delayjb p3.3,ss next:inc amov p1,aajmp ss delay:push 07htt:mov r7,#249djnz r7,$djnz r6,ttretend6、查表走马灯实验org 0000hajmp mainorg 0040h main:mov 30h,#00hmov 31h,#0fhmov 32h,#0f0hmov 33h,#00hsetb 00hmov 34h,#00hsetb 01hmov 35h,#00hmov 36h,#55hmov 37h,#0f0hmov p3,#0ffhmov dptr,#tab next:mov a,p3anl a,#07hjmp @a+dptr tab:ajmp led0ajmp led1ajmp led2ajmp led3ajmp led4ajmp led5ajmp led6ajmp led7led0:mov p1,30hajmp nextled1:mov a,31hmov p1,arl amov 31h,aacall delayajmp nextled2:mov a,32hmov p1,amov 32h,aacall delayajmp nextled3:mov r6,#02h ss1:mov r7,#08h ss2:mov a,33hmov c,00hrlc amov p1,amov 33h,aacall delaydjnz r7,ss2cpl 00hdjnz r6,ss1ajmp nextled4:mov r6,#02h ss3:mov r7,#08h ss4:mov a,33hmov c,00hmov p1,amov 33h,aacall delaydjnz r7,ss4cpl 00hdjnz r6,ss3ajmp nextled5:mov p1,35hinc 35hacall delayajmp nextled6:mov a,36hmov p1,arr amov 36h,aacall delayajmp next led7:mov p1,37hajmp nextdelay:push 07hpush 06hpush 05hmov r5,#02htt1:mov r6,#249tt2:mov r7,#249djnz r7,$djnz r6,tt2djnz r5,tt1pop 05hpop 06hpop 07hretend7、步进电机控制实验ORG 0A30HMONIT: MOV SP,#50H MOV 7EH,#00HMOV 7DH,#02HMOV R0,#7CHMOV A,#08HMOV R4,#04HMONIT1: MOV @R0,ADEC R0DJNZ R4,MONIT1MOV A,#7EHMOV DPTR,#1FFFHMOVX @DPTR,AMOV 76H,#00HMOV 77H,#00HKEYDISP0:LCALL KEYJC DATAKEYAJMP MONIT2DATAKEY:LCALL DATAKEY1 DB 79H,7EHSJMP KEYDISP0MONIT2: CJNE A,#16H,KEYDISP0 LCALL DISPMOV A,7AHANL A,#0FHSW AP AADD A,79HMOV R6,AMOV A,7CHANL A,#0FHSW AP AADD A,7BHMOV R7,AMOV A,7EHCJNE A,#00H,MONIT4 MONIT3: MOV P1,#03H LCALL DELAY0LCALL MONIT5MOV P1,#06HLCALL DELAY0LCALL MONIT5MOV P1,#0CHLCALL DELAY0LCALL MONIT5MOV P1,#09HLCALL DELAY0LCALL MONIT5SJMP MONIT3MONIT4: MOV P1,#09HLCALL DELAY0LCALL MONIT5MOV P1,#0CHLCALL DELAY0LCALL MONIT5MOV P1,#06HLCALL DELAY0LCALL MONIT5MOV P1,#03HLCALL DELAY0LCALL MONIT5SJMP MONIT4MONIT5: DEC R6CJNE R6,#0FFH,MONIT6DEC R7CJNE R7,#0FFH,MONIT6LJMP MONITMONIT6: LCALL MONIT7 RETMONIT7: MOV R0,#79HMOV A,R6LCALL MONIT8MOV A,R7LCALL MONIT8LCALL DISPRETMONIT8: MOV R1,AACALL MONIT9MOV A,R1SW AP AMONIT9: ANL A,#0FHMOV @R0,AINC R0RETDELAY0: MOV R0,#7DH MOV A,@R0SW AP AMOV R4,ADELAY1: MOV R5,#80H DELAY2: DJNZ R5,DELAY2 LCALL DISPDJNZ R4,DELAY1RETDATAKEY1:MOV R4,AMOV DPTR,#1FFFHMOVX A,@DPTRMOV R1,AMOV A,R4MOV @R1,ACLR APOP 83HPOP 82HMOVC A,@A+DPTRINC DPTRCJNE A,01H,DATAKEY3DEC R1CLR AMOVC A,@A+DPTR DATAKEY2:PUSH 82HPUSH 83HMOV DPTR,#1FFFHMOVX @DPTR,APOP 83HPOP 82HINC DPTRPUSH 82HPUSH 83HRETDATAKEY3:DEC R1MOV A,R1SJMP DATAKEY2KEY0: MOV R6,#20HMOV DPTR,#1FFFHMOVX A,@DPTRMOV R0,AMOV A,@R0MOV R7,AMOV A,#10HMOV @R0,AKEY3: LCALL KEYDISP JNB 0E5H,KEY2DJNZ R6,KEY3MOV DPTR,#1FFFHMOVX A,@DPTRMOV R0,AMOV A,R7MOV @R0,A KEY: MOV R6,#50H KEY1: LCALL KEYDISP JNB 0E5H,KEY2DJNZ R6,KEY1SJMP KEY0KEY2: MOV R6,AMOV A,R7MOV @R0,AMOV A,R6 KEYEND: RETKEYDISP:LCALL DISP LCALL KEYSMMOV R4,AMOV R1,#76HMOV A,@R1MOV R2,AINC R1MOV A,@R1MOV R3,AXRL A,R4MOV R3,04HMOV R4,02HJZ KEYDISP1MOV R2,#88HMOV R4,#88H KEYDISP1:DEC R4MOV A,R4XRL A,#82HJZ KEYDISP2MOV A,R4XRL A,#0EHJZ KEYDISP2MOV A,R4ORL A,R4JZ KEYDISP3MOV R4,#20HDEC R2LJMP KEYDISP5 KEYDISP3:MOV R4,#0FHKEYDISP2:MOV R2,04HMOV R4,03HKEYDISP5:MOV R1,#76H MOV A,R2MOV @R1,AINC R1MOV A,R3MOV @R1,AMOV A,R4CJNE R3,#10H,KEYDISP4 KEYDISP4:RETDISP: SETB 0D4HMOV R1,#7EHMOV R2,#20HMOV R3,#00HDISP1: M OV DPTR,#0FF21H MOV A,R2MOVX @DPTR,AMOV DPTR,#DATA1MOV A,@R1MOVC A,@A+DPTRMOV DPTR,#0FF22HMOVX @DPTR,ADISP2: D JNZ R3,DISP2DEC R1CLR CMOV A,R2RRC AMOV R2,AJNZ DISP1MOV A,#0FFHMOV DPTR,#0FF22HMOVX @DPTR,ACLR 0D4HRETDATA1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHKEYSM: SETB 0D4HMOV A,#0FFHMOV DPTR,#0FF22HMOVX @DPTR,AKEYSM0: MOV R2,#0FEHMOV R3,#08HMOV R0,#00HKEYSM1: MOV A,R2MOV DPTR,#0FF21HMOVX @DPTR,ANOPRL AMOV R2,AMOV DPTR,#0FF23HMOVX A,@DPTRCPL ANOPNOPNOPANL A,#0FHJNZ KEYSM2INC R0 ;NOKEYDJNZ R3,KEYSM1SJMP KEYSM10 KEYSM2: CPL AJB 0E0H,KEYSM3MOV A,#00HSJMP KEYSM7KEYSM3: JB 0E1H,KEYSM4MOV A,#08HSJMP KEYSM7KEYSM4: JB 0E2H,KEYSM5MOV A,#10HSJMP KEYSM7KEYSM5: JB 0E3H,KEYSM10MOV A,#18HKEYSM7: ADD A,R0CLR 0D4HCJNE A,#10H,KEYSM9KEYSM9: JNC KEYSM10MOV DPTR,#DATA2MOVC A,@A+DPTRKEYSM10:RETDATA2: DB 07H,04H,08H,05H,09H,06H,0AH,0BH DB 01H,00H,02H,0FH,03H,0EH,0CH,0DHEND。