单片机原理及其接口技术实验报告

合集下载

单片机及其接口技术实验报告

单片机及其接口技术实验报告

单片机及接口技术实验报告实验一数据传送程序一、实验目的1、掌握汇编语言设计和调试方法。

2、掌握DVCC实验系统的操作步骤。

二、实验内容1、编程实现,把7000H~70FFH单元的内容清零。

2、编程实现,把源地址为6000H开始的单元内容,传送到目的地址7000H开始的单元中,传送个数为0FFFH个。

三、DVCC实验系统操作说明1、接通DVCC实验系统电源,在DVCC实验箱上应显示闪动的“P”,否则按Reset键。

2、运行DVCC软件。

(程序DVCC598H实验系统DVCC实验系统)3、单击工具栏上“新建”或“打开”按钮,编写源程序。

单击“编译”按钮,使其形成可执行文件。

4、单击工具栏上“联接”按钮,同时按下DVCC实验箱上PCDBG键(键盘上最右边第2个),实现PC机和实验箱的联接。

联机成功,屏幕上出现:.反汇编窗口、寄存器标示位窗口。

5、在成功联机后,单击工具栏上“调试”按钮,把最终目标文件装载到实验系统RAM区;或者通过单击菜单栏中的“动态调试”,选择“传送(.EXE)文件”来实现。

6、单击工具栏上“运行”或“单步”按钮,运行实验程序。

7、单击工具栏上“窗口”,选择“显示内部数据窗口”或“显示外部数据窗口”可显示数据窗口。

鼠标右击数据窗口的数据,可设置数据块新地址;鼠标左键单击数据,可修改数据数值。

8、运行完毕,先按实验箱上的复位按钮Reset键,再按PCDBG键,并且点击屏幕上OK,即可退出运行状态。

四、实验程序代码1、把7000H~70FFH单元的内容清零。

程序代码:ORG 0000HAJMP STARTORG 70HSTART: MOV P2, #70H ;送地址高8位到P2端口MOV R0, #00H ;R0=00H,表地址低8位CLR A ;将累加器A清0LOOP: MOVX @R0, A ;将A送入以R0内容为地址的外部RAM.INC R0 ;R0+1-->R0CJNE R0,#00H,LOOP;比较条件转移指令,若R0不等于0,则跳转到LOOPAJMP $ ;暂停END2、编程实现,将源地址为6000H开始的单元,传送到目的地址7000H开始的单元,传送个数为0FFFH个。

单片机与接口技术实验报告

单片机与接口技术实验报告

中南大学单片机与接口技术实验报告实验一学生姓名学号专业班级学院完成时间一、实验环境操作系统:Window 7 64位旗舰版实验平台:ADS 1.2二、实验内容熟悉ADS平台环境,根据所给的实例程序,编译运行,通过调用存储器和寄存器,知道每个语句所实现的操作。

1)打开程序后,添加实验文件1_Experiment\chapter_2\2.1_asm\2.1asm_A,编译后运行,并打开存储器和寄存器,逐句运行各个代码,得知:mov sp, #stack_top;//把栈顶赋给sp即寄存器r13mov r0, #x;//把x的值放到寄存器r0中去str r0, [sp];//把ro中的值压入栈顶mov r0, #y;//把y的值放到r0中去ldr r1, [sp];//取栈顶元素放到r1中ADD r0, r0, r1;//把r0与r1的值相加后放到r0中STR r0, [sp];//把r0的值压入栈顶2)打开1_Experiment\chapter_2\2.1_asm\2.1asm_B重复上述步骤:mov r0, #x;// 将x的值放到r0中mov r0, r0, lsl #8; //将r0中的数左移两位放回r0mov r1, #y; //将y的值放到r1中add r2, r0, r1, lsr #1; //将r1的值乘以2后加上r0的值,将得到的结果放入r2MOV sp, #0x1000; //将0x1000放入栈顶STR r2, [sp]; //将r2中的值压入栈顶mov r0, #z; //将z的值放入r0and r0, r0, #0xFF; //将r0的值取出mov r1, #y; //将y的值放入r1add r2, r0, r1, lsr #1; //略LDR r0, [sp]; //取栈顶元素放到r0MOV r1, #0x01; //将0x01放入r1ORR r0, r0, r1; //将r0与r1的值取或后放入r0mov r1, R2; //将r2的值放入r1add r2, r0, r1, lsr #1; //略三、实验反思本次实验主要是熟悉了ADS平台的使用,还有就是熟悉了一些基本的ARM 语句,小有收获,懂得了如何看懂每条语句的意思,熟悉了平台的操作方法,为今后的实验学习打下基础,更为以后的应用提供了方便。

单片机原理与接口技术实践报告

单片机原理与接口技术实践报告

单片机原理与接口技术实践报告一、引言单片机是一种集成电路,在一个芯片上集成了中央处理器、存储器和各种输入输出设备,广泛应用于电子设备中。

单片机的原理和接口技术是学习和应用单片机的基础知识,本实践报告将从单片机的原理和接口技术两个方面展开讨论。

二、单片机的原理单片机的工作原理是基于计算机的运算方式,通过存储器存储程序和数据,并通过中央处理器执行程序来实现功能。

单片机的核心是中央处理器,它包括运算器、控制器和时钟电路。

运算器负责进行数据处理和运算,控制器负责控制程序的执行,时钟电路提供时序信号。

单片机也包括存储器、输入输出设备等外部组件。

三、单片机的接口技术1.数字口接口技术数字口接口用于单片机与数字量输入输出设备之间的通信。

数字口的输入和输出是0和1两种状态,可用于读取开关信号、接收传感器信号等。

数字口接口的编程涉及设置引脚状态、读取引脚状态等操作。

2.模拟口接口技术模拟口接口用于单片机与模拟量输入输出设备之间的通信。

模拟口的输入和输出是连续的模拟信号,可用于读取电压、控制电压等。

模拟口接口的编程涉及模拟口初始化、模拟口读取和写入等操作。

3.串口接口技术串口接口用于单片机与外部设备进行串行通信,常用于与计算机或其他外部设备的数据交互。

串口接口的编程涉及波特率设置、发送和接收数据等操作。

4.并口接口技术并口接口用于单片机与外部设备进行并行通信,常用于与打印机、液晶显示器等设备的连接。

并口接口的编程主要包括数据传输和控制信号的设置。

四、实践案例为了更好地理解单片机原理和接口技术,我们进行了以下实践案例:通过串口接口将单片机与计算机进行通信。

1.硬件连接首先,将单片机的串口通信引脚与计算机的串口通信引脚连接。

确保连接正确,避免引脚短路或断路等问题。

2.软件编程使用单片机的开发环境,编写串口通信的程序。

首先,设置串口通信的波特率、数据位、校验位等参数。

然后,编写发送和接收数据的程序,实现单片机与计算机之间的数据交互。

单片机原理及接口技术实验报告

单片机原理及接口技术实验报告

单片机原理及接口技术实验报告一、引言单片机(Microcontroller)是一种集成为了处理器、存储器和各种接口电路的微型计算机系统。

它具有体积小、功耗低、成本低等优点,广泛应用于嵌入式系统、自动化控制、电子设备等领域。

本实验旨在深入了解单片机的原理和接口技术,并通过实验验证相关理论。

二、实验目的1. 理解单片机的基本原理和结构。

2. 掌握单片机与外部器件的接口技术。

3. 进一步培养实际操作能力和解决问题的能力。

三、实验仪器与材料1. 单片机开辟板2. 电脑3. 串口线4. LED灯5. 蜂鸣器6. 数码管7. 按键开关8. 电阻、电容等元件四、实验内容与步骤1. 单片机原理实验1.1 单片机的基本结构单片机由中央处理器(CPU)、存储器(RAM、ROM)、输入输出接口(I/O)、定时器/计数器、串行通信接口等组成。

通过学习单片机的基本结构,我们可以了解各个部份的功能和作用。

1.2 单片机的工作原理单片机的工作原理是指单片机在不同工作模式下的内部状态和运行规律。

通过学习单片机的工作原理,我们可以更好地理解单片机的工作过程,为后续的实验操作提供基础。

2. 单片机接口技术实验2.1 LED灯接口实验将LED灯与单片机相连,通过控制单片机的输出口电平,控制LED灯的亮灭。

通过实验,我们可以学习到单片机的输出接口的使用方法。

2.2 蜂鸣器接口实验将蜂鸣器与单片机相连,通过控制单片机的输出口电平和频率,控制蜂鸣器的声音。

通过实验,我们可以学习到单片机的输出接口的使用方法。

2.3 数码管接口实验将数码管与单片机相连,通过控制单片机的输出口电平和数据,显示不同的数字。

通过实验,我们可以学习到单片机的输出接口和数码管的使用方法。

2.4 按键开关接口实验将按键开关与单片机相连,通过检测单片机的输入口电平,实现按键的功能。

通过实验,我们可以学习到单片机的输入接口的使用方法。

五、实验结果与分析1. 单片机原理实验结果通过学习单片机的基本结构和工作原理,我们深入了解了单片机的内部组成和工作过程,为后续的接口技术实验打下了基础。

单片机原理及其接口技术实验报告

单片机原理及其接口技术实验报告

单片机原理及其接口技术实验报告实验1 Keil C51的使用(汇编语言)一.实验目的:初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。

二.实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。

三.实验原理及环境:在计算机上已安装Keil C51软件。

这个软件既可以与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。

如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。

四:实验内容:1.掌握软件的开发过程:1)建立一个工程项目选择芯片确定选项。

2)加入C 源文件或汇编源文件。

3)用项目管理器生成各种应用文件。

4)检查并修改源文件中的错误。

5)编译连接通过后进行软件模拟仿真。

6)编译连接通过后进行硬件仿真。

2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。

3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波。

五:程序清单:ORG 0000HAGAIN:CPL P1.0MOV R0,#10 ;延时0.5秒LOOP1:MOV R1,#100LOOP2:MOV R2,#250DJNZ R2,$DJNZ R1,LOOP2DJNZ R0,LOOP1SJMP AGAINEND六:实验步骤:1.建立一个工程项目选择芯片确定选项如图1-1所示:①Project→②New Project→③输入工程名test→④保存工程文件(鼠标点击保存按钮)图1-1创建工程名弹出下一界面。

如图1-2所示:①选CPU厂家(Atmel)→②选CPU型号(89C51), ③选好后确定图1-2选厂家,选CPU 型号接着选晶振频率及生成HEX 文件等。

单片机原理及接口技术实验报告书 (1)

单片机原理及接口技术实验报告书 (1)

学生学号实验课成绩学生实验报告书实验课程名称单片机原理及接口技术开课学院物流工程学院指导教师姓名学生姓名学生专业班级2018 -- 2019 学年第 1 学期实验课程名称:_单片机原理及接口技术_原理图4.系统控制程序的设计要求包括内容:控制程序的工作流程图,控制程序的源代码,及其控制程序的重点说明。

#include<reg51.h>#define uint unsigned int#define uchar unsigned charuchar keycode,DDram_value=0xc0;sbit RS=P2^0;sbit RW=P2^1;sbit E =P2^2;sbit speaker=P2^3;uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x20};uchar code table_designer[]="JIANG SHAO YONG";void lcd_delay();void delay(uint n);void lcd_init(void);void lcd_busy(void);void lcd_wr_con(uchar c);void lcd_wr_data(uchar d);else if(buff==0xb0){liehao=0;}keyvalue=hanghao+liehao;while(P1!=0xf0);return(keyvalue);}}5.系统的调试和结果要求包括内容:系统调试的方法,系统正确运行的照片或图片(必须包括整个工作过程的图片检查电路是否正确连接,向单片机烧录hex文件,检查反复调试。

6.实验过程中所遇到的问题,解决方法和建议在实验过程中,编的程序出现了很多问题,除了字符错误,还出现了逻辑错误以及过定义。

将程序分块可以解决很多错误;增加注释,提高程序的可读性,。

《单片机与接口技术》实验报告[精选五篇]

《单片机与接口技术》实验报告[精选五篇]

《单片机与接口技术》实验报告[精选五篇]第一篇:《单片机与接口技术》实验报告《单片机与接口技术》实实验报告SUNES59PA班班级:____________________ 学学号:____________________ 姓姓名:____________________ 得得分:____________________ 指指导:____________________ 日日期:____________________合肥工业大学宣城校区实验一XXXXXXXXXXXXX一、实验目的二、实验设备三、实验内容四、实验步骤五、实验现象六、实验程序(必须带注释)第二篇:《单片机与接口技术》实验报告1实验六D/A转换(脱机:HW10)一、实验目的(1)了解D/A转换芯片DAC0832的性能及编程方法;(2)了解单片机系统中扩展D/A转换芯片的基本方法。

二、实验内容利用DAC0832芯片输出一个从0V开始逐渐升至5V再降至0V 的可变电压。

三、实验步骤四、实验现象解释五、实验程序第三篇:单片机接口技术与实验课程总结《单片机接口技术与实验》课程总结姓名:史慧学号:年级:专业:电气工程及其自动化1226409016 2009级2011年秋季学期实验一1.功能要求本实验要求向芯片中写入 10 个字节,然后再读出显示。

2.硬件设计思路P2引脚连接8LED灯,显示读出的数据。

3.软件程序流程其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。

这就允许在同一总线上连接多个SPI设备成为可能。

接下来就负责通讯的3根线了。

通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。

这就是SCLK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。

数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。

单片机的原理及接口技术

单片机的原理及接口技术

与传输 ;R A M 则可进行 数据信 息 的临时缓 冲
Hale Waihona Puke 存储 。通过此种接 口技术 ,并配 以其他配件 芯
片,实现了单片机的各类信息读取 、传输 、以
及 写入 等 功 能 。
5结语
综 上 所 述 , 文 中通 过 对 单 片 机 的 作 用 原
也可将 其理解为能够独立 工作的微型计算 在此 单 片机 的 芯 片上 ,会 涉 及到 CP U、 “、R AM 等通 过 I / 0接 口进行 结合 的独立 单片机上添加相应 的部件 ,以此来确保单 L 各种 功能的应用于 实现。而单片机的设计
4 单片机研发 的主要方 面
首先 ,是将 单片机 的抗 干 扰能 力通 过研 发得以加强。现阶段,单片机进行干扰排除 的
方 式主 要 为 外 部 操 作 , 即 将 干 扰 源 或 干 扰 路 径
i 部分 , 单片机也得 到了广泛的应用与普及 , 【 说 ,在 现阶段 的众 多领域 中,都能够发现
理及接 口技术的分析与研究 ,总结 出单片机所 能应用到的领域。并通过分析得 出,若要将单
片 机 进 行 深 入 的 应 用 ,则 应 当 从 提 升 单 片 机 的
口的存 储 设备 随着 技术 的革 新,变 得愈 加 的 新 时代 背 景下 ,社会 的发展 和科 技 的进 符合人 们的需求 ,不仅 内部 的存储 空间增 大, 使得 各类先进 的科学技术被 应用于众多的
: 与生 活 领 域 , 作 为 电子 信 息 工 程 中 重 要 的 其 体 积 也 在 随 之 减 少 。 同 时 , 此 类 US B 接 口 的存 储 设 备 , 逐 渐 发 展 成 为 能 够 随 身携 带 的 u
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机原理及其接口技术实验指导书实验1 Keil C51的使用(汇编语言)一.实验目的:初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。

二.实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。

三.实验原理及环境:在计算机上已安装Keil C51软件。

这个软件既可以与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。

如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。

四:实验内容:1.掌握软件的开发过程:1)建立一个工程项目选择芯片确定选项。

2)加入C 源文件或汇编源文件。

3)用项目管理器生成各种应用文件。

4)检查并修改源文件中的错误。

5)编译连接通过后进行软件模拟仿真。

6)编译连接通过后进行硬件仿真。

2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。

3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波。

五:程序清单:ORG 0000HAGAIN:CPL P1.0MOV R0,#10 ;延时0.5秒LOOP1:MOV R1,#100LOOP2:MOV R2,#250DJNZ R2,$DJNZ R1,LOOP2DJNZ R0,LOOP1SJMP AGAINEND六:实验步骤:1.建立一个工程项目选择芯片确定选项如图1-1所示:①Project→②New Project→③输入工程名test→④保存工程文件(鼠标点击保存按钮)图1-1创建工程名弹出下一界面。

如图1-2所示:①选CPU厂家(Atmel)→②选CPU型号(89C51), ③选好后确定图1-2选厂家,选CPU 型号接着选晶振频率及生成HEX 文件等。

如图1-3所示:①Project→②Options for Target ‘Target 1’…→③在Target中→④更改CPU 晶振频率为12MHz→⑤在Output中→⑥选择生成HEX 格式其它采用缺省设置→⑦选好后确定。

图1-3选晶振频率及生成HEX 文件等窗口2.建立汇编源文件如图1-4所示:①File→②New, ③弹出源文件编辑窗口。

输入以下源文件:ORG 0000HAGAIN:CPL P1.0MOV R0,#10 ;延时0.5秒LOOP1:MOV R1,#100LOOP2:MOV R2,#250DJNZ R2,$DJNZ R1,LOOP2DJNZ R0,LOOP1SJMP AGAINEND图1-4进入编辑源文件窗口源程序编写完后,①File→②Save As 将文件以test.asm保存在E:\test 目录下,获得汇编语言源程序。

3.用项目管理器生成(编译)各种应用文件①点击Target 1 前之+ 号→出现②Source Group1→③点击它并按鼠标右键会生弹出下拉菜单见图1-5编译文件文件窗口→选择④Add Files to Group ‘ Source Group 1’ →⑤点击add向项目中添加Test.asm 源文件→⑥点击close关闭Add Files t o Group ‘ Source Group 1’窗口→⑦在Source Group 1 前会出现一个+号→⑧点击之弹出test. asm 文件名点击该文件名→⑨主窗口中会出现该程序图1-5进入编译文件文件窗口编译:Project→Build target 就会生成一系列到文件如OBJ 文件LST 文件HEX文件等。

4.检查并修改源文件中的错误如果在源文件中存在错误在Output 窗口中会出现错误提示信息,你可以在源程序中进行修改,然后存盘后重新Build 观察错误提示信息。

5.编译连接通过后进行软件模拟仿真Debug→Start/Stop Debug Session进入软件模拟的仿真窗口,可使用单步、设断点来进行调试和除错。

6.编译连接通过后进行硬件仿真实验箱的仿真串口必须与PC 机串口连接,通电,拨位开关K10必须拨在B端,连接P10和L00,连接P11和L01,设置硬件实时仿真调试选项:Project→Options for Target ‘Targetl’→Debug.硬件实时仿真调试选项窗口,见图1-5选硬件仿真选项,按确定按钮确定。

图1-5硬件实时仿真调试选项窗口进入硬件实时调试窗口后,可打开各种观察窗口,进行单步断点运行到光标连续执行等操作,无误后可连续运行观察LED发光管的显示效果。

注意退出时须按单片机的复位按键SS10,在进行硬件连接前最好也先按单片机的复位按键SS10。

7.修改以上程序,实现同时在P1.0和P1.1上各输出一个频率为1Hz但电平状态相反的方波。

七:试验总结:通过第一次实验我熟悉了Keil C51(汇编语言)和ZY15MCU12BD的基本操作过程,但还不是很熟练,课后要加强练习。

实验2 十六进制与十进制的转换一:实验目的:实践汇编语言顺序结构的编程方法,掌握十六进制数转换成十进制数的编程实现,掌握单步运行程序的基本技巧。

二:实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。

三:实验原理及环境:将十六进制数转换成十进制数有多种方法,比较典型的是用待转换数除以权值的方法,即依次除以100、10,则各次的商和最后的余数就是所需要的十进制数。

四:实验内容:将放在片内RAM30H中的2位十六进制数转换成3位十进制数,按照从高位到低位的顺序分别放入31H~33H中(即非压缩的BCD码)。

在本实验中,要求使用单步方式运行,以便观察各单元的变化过程。

五:程序清单:LJMP 0100HORG 0100HMOV A,30HMOV R0,BMOV B,#16MUL ABADD A,R0MOV B,#10DIV ABMOV 33H,BMOV A,33HMOV 33H,AMOV B,#10DIV ABMOV 32H,BMOV A,32HMOV 32H,AMOV 31H,ASJMP $END六:实验步骤:1.建立一个工程,将在预习中做好的*.asm文件加入。

2.调出存储器编辑窗口,将30H单元修改成某一值。

3.在希望停下来的指令上设断点,然后运行,在断点处停下来后,再单步运行,可以看到各单元的变化情况。

运行完最后一条指令后,在31H~33H中应获得30H中十六进制数对应的十进制数。

七:试验总结:这个实验麻烦的就是编程实现十六进制与十进制的转换,尤其是算数运算指令的使用。

实验过程中还不是很熟练;还有一个体会就是算法对编写程序至关重要,如果编写程序之前没有确立算法,那么编程将无法下手。

实验3 8段LED显示器动态显示实验目的:掌握8段LED显示器的使用及显示程序的设计方法。

实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。

实验原理及环境:1. 实验箱上有6位8段LED显示器,采用动态方式驱动。

即使一位LED显示器显示内容一段时间,然后下一位LED显示器显示内容一段时间……,周而复始。

只要刷新频率不小于50Hz,就可以获得清晰稳定的显示效果。

2.MCS-51CPU通过一片8255对8段LED显示器进行段驱动和位驱动,8255的A口、B口、C口、控制口的地址分别为片外RAM的4000H、4001H、4002H、4003H。

3.LED显示器的各段由8255的B口驱动,低电平对应段发光,高电平对应段熄灭。

各段的驱动位如图3-1,各显示字的字形代码如下所示:1 F9H 1. 79H 灭 FFH2 A4H 2. 24H3 B0H 3. 30H4 99H 4. 19H5 92H 5. 12H6 82H 6. 02H7 F8H 7. 78H8 80H 8. 00H 9 90H 9. 80HA 88H A. 08HB 83H B. 03HC C6H C. 46HD A1H D. 21HE 86H E. 06HF 8EH F. 0EH4. LED 显示器的各位由8255的A 口驱动,低电平对应位发光,高电平对应位熄灭。

LED 显示器 对应位口位左起第一位 D0左起第二位 D1左起第三位 D2左起第四位 D3左起第五位 D4左起第六位 D5实验内容:1.编写一个6位LED 显示器驱动子程序(在主程序中已对接口芯片8255做好必要的初始化)。

字形表按0~F 、0.~F.、-、灭的顺序排列。

该子程序的要求如下:入口:待显示数(00H ~1FH)放在20H ~25H( 分别对应显示器的左起第1~第6位)中。

出口:每位LED 显示0.5mS 后返回。

占用:R0、R1、R2、A 、PSW 、DPTR 。

显示子程序的流程图如图3-2和图3-3:2.子程序自身无法运行,为了运行这个子程序,另编写一个主程序。

这个主程序的功能是首先对8255进行初始化,然后就反复调用显示子程序,显示20H~25H中的待显示内容。

首先在20H起始的6个字节中置入00H~0FH,然后连续运行此程序,应显示0~F;在20H起始的6个字节中置入10H~1FH,然后连续运行此程序,应显示0.~F.;若置入20H、21H,则显示-、灭。

3.按以下框图编写一段程序,运行后会在显示器上应出现连续向左移动的0~F。

6位LED显示器驱动子程序程序清单:ORG 0000HMOV SP,#6FHMOV 20H,#00MOV 21H,#00MOV 22H,#00MOV 23H,#00MOV 24H,#00MOV 25H,#00MOV DPTR,#4003H ;8255初始化MOV A,#10000001B ; A口、B口方式0输出,C口高4位输出,低4位输入MOVX @DPTR,A;ACALL DELAY500MS ;延时0.5秒LOOP3: LCALL DISP ;调用显示子程序SJMP LOOP3DISP:MOV R0,#20HMOV R2,#0FEHDISP1:MOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#4001HMOVX @DPTR,AMOV A,R2MOV DPTR,#4000HMOVX @DPTR,ACALL DELAY500USMOV A,#0FFHMOVX @DPTR,AMOV A,R2RL AMOV R2,AINC R0CJNE R0,#26H,DISP1RETDELAY500MS: PUSH 00HMOV R0,#25 ;延时0.5秒NEXT: ACALL DELAY20MSDJNZ R0,NEXTPOP 00HRETDELAY500US:PUSH 03HMOV R3,#250DJNZ R3,$POP 03HRETDELAY20MS:PUSH 06HPUSH 07HMOV R7,#99AGAIN: MOV R6,#100DJNZ R6,$DJNZ R7,AGAINPOP 07HPOP 06HRETTAB: DB 0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8H ;0 ,1 ,2 ,3 ,4 ,5 ,6 ,7DB 80H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH ;8 ,9 ,A ,B ,C ,D ,E ,F DB 40H, 79H, 24H, 30H, 19H, 12H, 2H, 78H ;0.,1.,2.,3.,4.,5.,6.,7.DB 00H, 10H, 08H, 03H, 46H, 21H, 06H, 0EH ;8.,9.,A.,B.,C.,D.,E.,F.END主程序程序清单:ORG 0000HMOV SP,#6FHMOV 20H,#00MOV 21H,#00MOV 22H,#00MOV 23H,#00MOV 24H,#00MOV 25H,#00MOV DPTR,#4003H ;8255初始化MOV A,#10000001B ; A口、B口方式0输出,C口高4位输出,低4位输入MOVX @DPTR,A;ACALL DELAY500MS ;延时0.5秒LOOP3: LCALL DISP ;调用显示子程序MOV 20H,21HMOV 21H,22HMOV 22H,23HMOV 23H,24HMOV 24H,25HINC 25HANL 25H,#0FHSJMP LOOP3DISP:MOV R0,#20HMOV R2,#0FEHDISP1:MOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#4001HMOVX @DPTR,AMOV A,R2MOV DPTR,#4000HMOVX @DPTR,ACALL DELAY500USMOV A,#0FFHMOVX @DPTR,AMOV A,R2RL AMOV R2,AINC R0CJNE R0,#26H,DISP1RETDELAY500MS: PUSH 00HMOV R0,#25 ;延时0.5秒NEXT: ACALL DELAY20MSDJNZ R0,NEXTPOP 00HRETDELAY500US:PUSH 03HMOV R3,#250DJNZ R3,$POP 03HRETDELAY20MS:PUSH 06HPUSH 07HMOV R7,#99AGAIN: MOV R6,#100DJNZ R6,$DJNZ R7,AGAINPOP 07HPOP 06HRETTAB: DB 0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8H ;0 ,1 ,2 ,3 ,4 ,5 ,6 ,7DB 80H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH ;8 ,9 ,A ,B ,C ,D ,E ,F DB 40H, 79H, 24H, 30H, 19H, 12H, 2H, 78H ;0.,1.,2.,3.,4.,5.,6.,7.DB 00H, 10H, 08H, 03H, 46H, 21H, 06H, 0EH ;8.,9.,A.,B.,C.,D.,E.,F.END实验步骤:1.将P0.0~P0.7与JD0~JD7连接起来。

相关文档
最新文档