dickus单片机实验

dickus单片机实验
dickus单片机实验

数据传送实验

实验项目类型:设计型

实验时间:2012.10.15

一、实验目的

1、掌握单片机的汇编指令系统及汇编语言程序设计方法。

2、掌握单片机的存储器体系结构。

3、熟悉Keil软件的功能和使用方法。

4、掌握单片机应用程序的调试方法。

二、设计要求

1、编写程序将00H~0FH 16个数据分别送到单片机内部RAM 30H~3FH单元中。

2、编写程序将片内RAM 30H~3FH的内容传送至片内RAM 40~4FH单元中。

3、编写程序将片内RAM 40H~4FH单元中的内容传送到外部RAM 4800H~480FH单元中。

4、编写程序将片外4800H~480FH单元内容送到外部RAM 5800H~580FH单元中。

5、编写程序将片外RAM 5800H~580FH单元内容传送回片内RAM 50H~5FH 单元中。

三、实验程序流程框图和程序清单。

流程图

程序一程序二

程序三程序四程序五

程序清单

ORG 0000H

MAIN: MOV R0, #30H

MOV A, #00H

T1: MOV @R0, A

INC R0

INC A

CJNE A, #10H, T1

MOV R0, #3FH

MOV R2, #10H

MOV R1, #4FH

T2: MOV A, @R0

MOV @R1, A

DEC R0

DEC R1

DJNZ R2, T2

MOV R2, #10H

MOV R1, #4FH

MOV DPTR, #480FH

T3: MOV A, @R1

MOVX @DPTR, A

DEC R1

DEC A

MOV DPL, A

DJNZ R2, T3

MOV DPL, #00H

MOV R2, #10H

T4:

MOV DPH, #48H

MOVX A, @DPTR

MOV DPH, #58H

MOVX @DPTR, A

INC DPTR

DJNZ R2, T4

MOV R0, #50H

MOV DPTR, #5800H

MOV R2, #10H

T5: MOVX A, @DPTR MOV @R0, A

INC R0

INC A

MOV DPL, A

DJNZ R2, T5

END

四、实验总结

通过此次实验,熟悉了kille开发软件的使用,对单片机理解更深刻。

学会了设计简单的程序,把课堂上的理论内容与实践相结合,学习起来更加有效率。

五、实验思考

1、说明MCS-51系列单片机对片内RAM和片外RAM存贮器各有哪些寻址方式?

答: 片内RAM存储器的寻址方式:1、寄存器寻址2、直接寻址3、寄存器间接寻址4、位寻址方式

片外只能通过累加器A使用间接寻址

2、说明指令MOV A,20H和MOV C,20H中的20H含义有什么不同?传送指令中的助记符MOV,MOVX,MOVC各适用于访问哪个存储器空间?

答:1、MOV A, 20H 把20H单元中的内容送往累加器A中,

MOV C, 20H 把20H位的状态送往进位C

MOV 适用于内部的RAM存储空间

MOVX 适用于外部的RAM存储空间

MOVC 适用于程序存储空间

实验名称:单片机并行I/O口的应用实验

实验类型:设计型

时间:2012年11月6日

设计性实验

一、实验目的

1、熟悉Proteus软件和Keil软件的使用方法。

2、熟悉单片机应用电路的设计方法。

3、掌握单片机并行I/O口的直接应用方法。

4、掌握单片机应用程序的设计和调试方法

二、设计要求

1、用Proteus软件画出电路原理图。要求在P1.0至P1.7口线上分别接LED0

至LED7八个发光二极管,在P3.0口线上接一蜂鸣器。

2、编写程序:要求LED0至LED7以秒速率循环右移。

3、编写程序:要求LED0至LED7以秒速率循环左移。

4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警

三、电路原理图

4、实验程序流程框图和程序清单

一、循环右移

MAIN: MOV P1, #0FFH

MOV A, #7FH

LOOP: MOV P1, A

CLR P3.0

LCALL DELAY

CPL P3.0

LCALL DELAY

RR A

LJMP LOOP

DELAY:

MOV R7, #17H

DL1:

MOV R6, #98H

DL0:

MOV R5, #46H

DJNZ R5, $

DJNZ R6, DL0

DJNZ R7, DL1

RET

END

二、循环左移

ORG 00H

MAIN: MOV P1, #0FFH

MOV A , #0FEH LOOP: MOV P1, A

CLR P3.0

LCALL DELAY

SETB P3.0

LCALL DELAY

RL A

LJMP LOOP DELAY:

MOV R7, #17H DL1:

MOV R6, #98H DL0:

MOV R5, #46H

DJNZ R5, $

DJNZ R6, DL0

DJNZ R7, DL1

RET

END

四、实验总结

通过本次试验,加深了对延时程序的理解,熟练了对keil和protues的使用。更加熟悉了单片机实验课的节奏,加强了自己的动手能力,收获很多.

五、思考题

1、编程实现LED0至LED7以十六进制计数规律亮灯?

O RG 0000H

MOV P1, #0FFH

MOV A, #0FFH

MOV R7, #16

LOOP:

MOV P1, A

LCALL DELAY1S

DEC A

DJNZ R7, LOOP

LJMP MAIN

DELAY1S:

MOV R7, #0A7H

DL1:

MOV R6, #0ABH

DL0:

MOV R5, #10H

DJNZ R5, $

DJNZ R6, DL0

DJNZ R7, DL1

NOP

RET

END

实验三、定时器/计数器应用实验一

实验性质、设计性实验

一、实验目的

1、掌握中断系统外部中断源的使用方法。

2、掌握延时程序的编程及使用方法。

3、掌握Proteus软件与Keil软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法

二、设计要求

1、用Proteus软件画出电路原理图,在单片机的P1.0口线上接按键K0 ,作为外部中断源0使用,用于开启波形,在单片机的 P1.1口线上接按键K1,作为外部中断源1使用,用于关闭波形。

2、在单片机的P1.2口线上产生周期50mS的连续方波,在P1.2口线上接示波器观察波形。

3、电路原理图。

三、实验程序流程框图和程序清单

` ORG 0000H START: LJMP MAIN ORG 0030H MAIN: MOV TMOD, #10H MOV TH1, #0FFH MOV TL1, #9CH MOV IE, #00H SETB TR1 LOOP: JNB TF1, LOOP MOV TH1, #0FFH MOV TL1, #9CH CLR TF1

CPL P1.0

LJMP LOOP END

ORG 0000H LJMP MAIN ORG 001BH

LJMP LOOP1 ORG 0030H MAIN: MOV SP, #3FH

MOV TMOD, #20H

MOV TH1 , #88H

MOV TL1, #88H

SETB EA SETB ET1

SETB TR1

HERES: LJMP $ LOOP1:

CPL P1.1 RETI

END

四、实验结果(波形图)

实验一

实验二

五、实验总结

通过本次实验,对单片机的定时功能有了更加深刻的认识。熟练对keil 的使用,收获非常大。 六、思考题

在p1.0口线上产生周期为500微妙,占空比为2:5的连续矩形波。

ORG 0000H SRART: LJMP MAIN

ORG 0030H

MAIN: MOV SP, #7FH

MOV TMOD, #01H MOV IE, #00H

SETB TR0

LOOP: CLR P1.0 CLR TF0 MOV TH0, #0FEH

MOV TL0, #0D4H

LOOP1: JNB TF0, LOOP1

CLR TF0

CPL P1.0

开始

TMOD 初始化

计数初值初始化

中断初始化启动定时器

定时300us

重置计数初值

清计数溢出标志

P1.0口置零

启动定时器计数初值初始化P1.0口取反

定时200us

Y N

N

Y

MOV TH0, #0FFH

MOV TL0, #38H

LOOP2: JNB TF0, LOOP2

LJMP LOOP

END

START: LJMP MAIN

ORG 0030H

MAIN: MOV SP, #2FH

CLR EA

MOV TMOD, #22H

MOV TH0, #9CH

MOV TL0, #9CH

SETB TR0

LOOP1: JNB TF0, LOOP1

CLR TF0

CLR TR0

SETB TR1

CPL P1.0

MOV TH1, #6AH

MOV TL1, #6AH

LOOP2: JNB TF1, LOOP2

CLR TF1

CLR TR1

SETB TR0

CPL P1.0

LJMP LOOP1

END

ORG 0000H START: LJMP MAIN ORG 0100H

MAIN:

MOV SP, #2FH

CLR EA

CLR ET0

MOV TMOD, #02H

MOV TH0, #09CH

MOV TL0, #09CH

MOV A, #00H

SETB TR0

LOOP0:

JNB TF0, LOOP0

CLR TF0

INC A

CJNE A, #02H, LOOP0

CPL P1.0

LOOP2: JNB TF0, LOOP2

CLR TF0

INC A

CJNE A, #05H, LOOP2

CPL P1.0

CLR A

LJMP LOOP0

END

定时器/计数器应用实验二

实验项目类型:设计型

实验时间:2012.11.15

一、实验目的

1、掌握定时器/计数器计数功能的使用方法。

2、掌握定时器/计数器的中断、查询使用方法。

3、掌握Proteus软件与Keil软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

二、设计要求

1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。

2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。

三、电路原理图。

四、实验程序流程框图和程序清单。

汇编程序1

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:CLR EA

MOV TMOD, #06H

MOV TH0, #9CH

MOV TL0, #9CH

SETB TR0

LOOP:JNB TF0, LOOP

CPL P1.0

CLR TF0

LJMP LOOP

END

C语言程序1

#include

sbit P1_0=P1^0;

void main( )

{

IE=0;

TMOD=0X06;

TR0=1;

for(;;)

{

TH0=0X9C;

TL0=0X9C;

do{}while(!TF0);

P1_0=!P1_0;

TF0=0;

}

}

汇编程序2

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP TP0

ORG 0030H MAIN: MOV SP, #2FH

MOV TMOD, #06H

MOV TH0, #38H

MOV TL0, #38H

SETB EA

SETB ET0

SETB TR0

SJMP $ TP0: CPL P1.0

CLR TF0

RETI

END

C语言程序2

#include

sbit P1_0=P1^0;

void time() interrupt 1 {

P1_0=!P1_0;

}

void main()

{ EA=1;

ET0=1;

TMOD=0X06;

TR0=1;

TL0=0X38;

TH0=0X38;

while(1);

}

五、实验结果(波形图)。

实验一

开始

清零溢出标志位输出取反

中断返回

实验二

六、实验总结。

通过本次实验使我对定时器/计数器中的计数工作方式有了更好的掌握和了解,增强了自己的动手能力。

七、思考题。利用定时器0在p1.0口线上产生周期为200微秒的连续方波,利用定时器1,对p1.0口线上波形进行计数,满五十个,则取反p1.0口线状态,在p1.0口线上接示波器观察波形。

汇编程序3

ORG 0000H

START: LJMP MAIN

ORG 0030H

MAIN: CLR EA

CLR ET1

MOV TMOD, #62H

MOV TH1, #0CEH

MOV TL1, #0CEH

MOV TL0, #9CH

MOV TH0, #9CH

SETB TR0

SETB TR1

LOOP: JNB TF0, LOOP

CPL P1.0

CLR TF0

LOOP1: JNB TF1, LOOP

CPL P1.1

CLR TF1

LJMP LOOP

END

C语言程序3

#include

sbit P1_0=P1^0;

sbit P1_1=P1^1;

void time() interrupt 1

{

P1_0=!P1_0;

}

void time_() interrupt 3

{

单片机实验7学习资料

单片机实验7

实验七直流数字电压表设计 姓名:田坤学号:200912512 专业:电子信息科学与技术 1.实验目的: 掌握LED动态显示和A/D 转换接口设计方法。 2.实验原理: 实验电路原理图如图A..94所示。图中显示器采用4位共阴极数码管,并按动态显示方式接线。A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5kHz。电位器的输出电压送到A/D转换器中转换,转换结果以十进制形式显示在数码管上。调节电位器可使数码管的显示值发生相应变化。 图A.94 实验7的电路原理图 3.实验内容: (1)、学习使用Proteus软件,掌握原理图绘图方法; (2)、学习使用Keil C软件,掌握C51程序编写与调试方法;(3)、理解动态显示与A/D转换工作原理,完成单片机电压采集与显示程序的编写与调试。 4.实验步骤: (1)、在Proteus中绘制电路原理图,按照表A.9将元件添加到编辑环境中; (2)、在Keil中编写C51程序,并使之编译通过;

(3)、在Proteus中加载程序,观察仿真结果。 5.实验要求: 提交的实验报告中应包括电路原理图、含注释内容的源程序及实验结果分析。 表A.9 实验7的元器件清单 1)源程序如下: #include // 头文件 #include unsigned int tmp; //定义一个整形中间变量 sbit START=P2^5; //定义ADC0808启动位 sbit ad_busy=P2^6; //定义ADC0808转换结束标志位 sbit OE=P2^7; //定义ADC0808输出使能标志位 sbit P2_0=P2^0; //定义四个数码管 sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; char led_mod[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //LED字模

单片机实验讲义

实验一流水灯 实验目的: 1、熟悉用单片机产生流水灯的效果; 2、掌握循环移位的工作原理和操作方法; 3、学会使用C51 封装好的函数库C51LIB,延时函数的时间估算。 实验仪器: 电脑,TX-1C单片机实验板,万用表USB-232线,USB线。 实验原理: 实验内容: P1.0~P1.8对于Led1~Led8八个发光二极管,要求来回循环点亮,停顿时间为0.5秒。显示效果如下: Led1 Led2 Led3 Led4 Led5 Led6 Led7 Led8 亮暗暗暗暗暗暗暗 暗亮暗暗暗暗暗暗 暗暗亮暗暗暗暗暗 暗暗暗亮暗暗暗暗 暗暗暗暗亮暗暗暗 暗暗暗暗暗亮暗暗 暗暗暗暗暗暗亮暗 暗暗暗暗暗暗暗亮 亮暗暗暗暗暗暗暗 暗亮暗暗暗暗暗暗 暗暗亮暗暗暗暗暗 暗暗暗亮暗暗暗暗 ………………………………………………………… 实验步骤: 1、编程,调试,下载; 2、记录实验现象; 3、举一反三:编写3/4/5/6/7个灯循环点亮的程序。

实验二利用定时器控制数码管的显示 实验目的: 1、学会利用单片机的定时器; 2、熟悉数码管显示原理; 3、了解蜂鸣器发声原理。 实验仪器: 电脑,TX-1C单片机实验板,万用表,USB-232线,USB线。实验原理: 2、记录实验现象。

实验三矩阵键盘检测 实验目的: 1、学会矩阵键盘的检测 2、掌握数码管静态显示原理 实验仪器: 电脑,TX-1C单片机实验板,万用表,USB-232线,USB线。 实验原理: 静态数码管显示原理:本开发板数码管为共阴极,所以要想点亮数码管,则给阳极加高电平。 实验内容: 依次按下4*4 矩阵键盘上从第1 到第12个键,同时在六位数码管上依次显示0、1、2、3、4、5、6、7、8、9、A、B。 实验步骤: 1、编程,调试,下载; 2、记录实验现象; 3、举一反三:第13个键到第16个键C、D、E、F。

最新单片机原理实验教案参考程序

单片机原理实验教案 参考程序

广东松山职业技术学院《MCS-51单片机原理》实验指导书 宁玉珊黄晓林 使用Proteus辅助设计与仿真

实训项目1 Proteus辅助设计与仿真的使用 一、实训目的 学习并熟练掌握PROTEUS辅助设计与仿真软件的使用。通过使用Proteus的ISIS组件绘制AT89C51功能接口原理图,并对原理图编写程序和调试程序,观察在仿真条件下的实现功能的效果。 二、实训内容 在PROTEUS仿真环境下实现一个发光二极管(LED)闪烁。要求LED亮0.5s灭1s,并绘制原理图和编写实现程序,同时用虚拟的示波器观察硬件和软件实现的效果。 三、实训器材 安装有Proteus7软件的计算机 1 台。 四、实训步骤 1)在硬盘建立文件夹用来保存新建项目的所有文件。如在D盘建立PROJECT文件夹。 2)选择‘开始→程序→Proteus7 professional→ISIS professional(或者双击桌面图标ISIS)’,进入Proteus仿真环境,如图P1_1和P1_2所示。 图P1-1

图P1-2 3)选择菜单【File/New Design】创建一个新的设计项目,如图P1_3所示。 图P1-3 4)此时系统会弹出模板选择窗口,选择‘DEFAULT’点击【OK】即可,如图P1_4所示。

图P1_4 5)点击界面左侧工具栏中的图标,接着点击元件池上方的按钮,将要用到的元器件从系统库调到当前设计文件库中。在弹出的Pick Devices对话框左上角的‘Keywords’文本框中键盘输入元件名(或元件的其它关键词)搜索到需要的元器件。双击‘Results’栏下的目标元件,该元件即调出到当前设计文件库的元件列表中,如图P1_5所示。本实训中所要用到的元件如表PS1_1所示。 图P1_5 元件名称搜索关键词元件序 数值备注 号 电阻器Resistor R1 10k 电阻器Resistor R2 1k 电解电容器MINELECT1U63V C1 4.7μ 陶瓷电容器CERAMIC22P C2、C3 22p 晶振CRYSTAL X1 12MHz 单片机AT89C51 U1

C51单片机实验指导书

单片机原理与接口技术实验讲义 目录 第一章开发环境安装使用说明 (3) 第二章基于51单片机系统资源实验 (12)

实验1 IO开关量输入实验 (12) 实验2 IO输出驱动继电器(或光电隔离器)实验 (13) 实验3 IO输入/输出---半导体温度传感器DS18B20实验 (14) 实验4 外部中断----脉冲计数实验 (15) 实验5 计数器实验 (16) 实验6 秒时钟发生器实验 (17) 实验7 PC机串口通讯实验 (18) 实验8 RS485通讯实验 (19) 实验9 PWM发生器(模拟)实验 (20) 实验10 蜂鸣器实验 (21) 第一章开发环境安装使用说明 一、KeilC51集成开发环境的安装 1.Keil u Vision2的安装步骤如下

将安装文件拷贝到电脑根目录下,然后双击图标,如图1-1所示:注意:去掉属性里的只读选项。 图1-1 启动安装环境对话框 2.选择Eval Version。然后一直next直至安装完成,如图1-2所示: 二.在Keil uVision2中新建一个工程以及工程配置 1.打开Keil C环境,如图1-3所示。

图1-3打开工程对话框 2.新建工程或打开工程文件:在主菜单上选“Project”项,在下拉列表中选择“New Project”新建工程,浏览保存工程文件为扩展名为“.Uv2”的文件。或在下拉列表中选择“Open project”打开已有的工程文件。如 图1-4所示: 图1-4 新建工程 3.环境设置:新建工程文件后,在工具栏中选择如下图选项设置调试参数及运行环境,或从主菜单“Project”项中 选择“Options for Target ‘Target1’”,打开如下图1-5设置窗口。

(完整版)创新实验室建设规划

创新实验室建设规划 1.指导思想 创新实验室的建设,旨在促进探索创新性人才培养的新模式,促进探索并建立以问题和课题为核心的教学模式,倡导以学生为主体的本科人才培养和研究性学习教学改革,调动学生学习的主动性、积极性和创造性,激发学生的创新思维和创新意识,同时在项目实践中逐渐掌握思考问题、解决问题的方法,提高学生创新实践的能力。 通过创新实验室计划得实施,带动广大的学生在本科阶段得到科学研究与发明创造的初步训练,增强人才培养过程中实践教学环节的比重,增强学生的动手能力,推广研究性学习和个性化培养,形成创新教育的氛围,建设创新文化,进一步推动教育教学改革,提高教学质量。 1.1 突出能力培养,全面实施素质教育 为全面贯彻落实学院“高级实用型人才”的培养目标,力行“以培养能力为中心,全面提高教学质量”;全面实施素质教育,通过项目实践启发学生学习兴趣,引导学生自学、思考和探究; 在理论与实践、知识和能力、专业和技术相结合的过程中进行人才的培养。具体地说,就是有效地实施我院推行的“一体二翼”人才培养模式,为形成“以计算机技术和电子信息技术综合应用能力培养为中心”的高级实用型人才提供平台和实践环境。 1.2扎实推进教育教学改革 以培养兴趣、鼓励创新、突出重点和注重过程逐步全面实施教育教学全过程,按照“自主选题、自主设计、自主实验”的要求,以项目为研究载体,在指导老师的指导下,注重学生自主实验和过程训练,使学生的实践能力和创新精神得到不断增强,人才培养质量得到不断提高。 1.3 突出特色,营造品牌 通过提供电子制作、课题设计、项目开发和科学研究的条件,从而使学生尽早进入专业科研领域,培养学生的研究兴趣和科学态度,训练实践能力、独立工作能力、团队合作能力,加强师生联系与交流,促进产学研紧密结合。进而形成我系鲜明特色的——软硬件一体化开发设计能力和项目开发和管理能力,创设品牌。 1.4 抓住机遇,进行师资队伍全面建设 计算机系有一支具有计算机应用软硬件技术和应用信息电子方向技术基础的老,中,青年技术骨干教师。加强实践性教学环节,培养复合型人才,逐步形成独具特使实践教学新体系,通过计划的实施,教改推进和项目的开展,全面提升整个师资队伍的水平。 2.现有基础 2.1 初步建立了供学生实践应用的“创新实验室”。 创建了开放式创新实验室。开放式实验室为学生创造进行计算机软件与电路电子设计的有利条件,是在校学生课内、课外进行作品设计开发,开展实验活动的主要场所。在专业教师的指导下,学生应用自带的计算机,电子部件及各类工具在该实验室进行单片机应用技术,嵌入式ARM7,ARM9等芯片应用技术进行各类智能化应用实验系统可进行各种应用性实践实验,培养同学们的实际工作能力。

单片机实验讲义

单片机实验讲义

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、实验结束后关闭实验箱电源和计算机,拔下连线,收起实验箱并 放回原处。 软件实验 实验一清零实验 一、实验目的:

dickus单片机实验

数据传送实验 实验项目类型:设计型 实验时间:2012.10.15 一、实验目的 1、掌握单片机的汇编指令系统及汇编语言程序设计方法。 2、掌握单片机的存储器体系结构。 3、熟悉Keil软件的功能和使用方法。 4、掌握单片机应用程序的调试方法。 二、设计要求 1、编写程序将00H~0FH 16个数据分别送到单片机内部RAM 30H~3FH单元中。 2、编写程序将片内RAM 30H~3FH的内容传送至片内RAM 40~4FH单元中。 3、编写程序将片内RAM 40H~4FH单元中的内容传送到外部RAM 4800H~480FH单元中。 4、编写程序将片外4800H~480FH单元内容送到外部RAM 5800H~580FH单元中。 5、编写程序将片外RAM 5800H~580FH单元内容传送回片内RAM 50H~5FH 单元中。 三、实验程序流程框图和程序清单。

流程图 程序一程序二 程序三程序四程序五 程序清单 ORG 0000H MAIN: MOV R0, #30H MOV A, #00H

T1: MOV @R0, A INC R0 INC A CJNE A, #10H, T1 MOV R0, #3FH MOV R2, #10H MOV R1, #4FH T2: MOV A, @R0 MOV @R1, A DEC R0 DEC R1 DJNZ R2, T2 MOV R2, #10H MOV R1, #4FH MOV DPTR, #480FH T3: MOV A, @R1 MOVX @DPTR, A DEC R1 DEC A MOV DPL, A DJNZ R2, T3 MOV DPL, #00H MOV R2, #10H T4: MOV DPH, #48H MOVX A, @DPTR MOV DPH, #58H MOVX @DPTR, A INC DPTR DJNZ R2, T4 MOV R0, #50H MOV DPTR, #5800H MOV R2, #10H T5: MOVX A, @DPTR MOV @R0, A INC R0 INC A MOV DPL, A

重庆大学 单片机实验

实验一系统认识及基本程序设计实验 四、实验内容 1. 将BCD 码整数0~255 存入片内RAM 的20H、21H、22H 中,然后转换为二进制整数00H~FFH,保存到寄存器R4 中。修改20H、21H、22H 单元的内容,如:00H,05H,08H;观察实验结果。 参考程序: ;============================================================== ; 文件名称: Asm2-1.asm ; 功能描述: BCD整数转换为二进制整数(8位, 范围从00H--FFH) ;============================================================== ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R0, #20H ;BCD存放高位地址 MOV R7, #03H ;BCD码0--255, 最多3位 CLR A MOV R4, A LP1: MOV A, R4 MOV B, #0AH MUL AB ;乘10 ADD A, @R0 ;加下一位的值 INC R0 ;指向下一单元 MOV R4, A ;结果存入R4 DJNZ R7, LP1 ;转换未结束则继续 SJMP MAIN ;设置断点, 观察实验结果R4中的内容 END 2. 将16 位二进制整数存入R3R4 寄存器中,转换为十进制整数,以组合BCD 形式存储在RAM 的20H、21H、22H 单元中。 参考程序: ;============================================================= ; 文件名称: Asm2-2.asm ; 功能描述: 二进制整数(16位)转换为十进制整数(组合BCD) ;============================================================= ; 0--FFFFH(R3R4)==>0--65535 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R0, #22H ;转换结果低位地址 MOV A, R0 PUSH ACC ;ACC表示累加器A的直接地址 MOV R7, #03H

单片机实验项目及要求

单片机实验项目 实验一 LED闪烁灯设计(参照实验指导书实验一) 要求:1、完成一个LED亮、灭循环(间隔0.2秒)修改间隔时间为0.01秒 2、完成2个指示灯同时亮、灭循环(间隔0.2秒) 3、完成8个指示灯同时亮、灭循环(间隔0.2秒) 实验二广告灯左右移设计(参照实验指导书实验四) 要求:1、完成8个LED 单一灯(LED)的左移、右移(间隔0.2秒) 2、完成8个LED的从左到右、从右到左依次点亮(间隔0.2秒) 3、完成8个指示灯从两边倒中间依次点亮(间隔0.2秒) 4、完成8个指示灯从中间倒两边中间依次点亮(间隔0.2秒) 创新:实验一与实验二结合完成连续6个花色的广告灯运行过程 实验三单键识别设计(参照实验指导书实验八) 要求:1、完成独立按键的单次识别、去抖、等待弹起的原理与方法(利用8个LED实现BCD码变换)。 2、完成16进制、20进制等计数器编程方法 3、完成计数器的加、减法的计数过程及原理 4、完成一键多功能设计(参照实验指导书实验九) 5、完成4*4矩阵键盘的设计(参照实验指导书实验十四) 6、增加键盘音 实验四动态数码显示设计(参照实验指导书实验十三) 要求:1、完成2个动态数码管的设计(利用按键手动计数,实现20进制计数器的设计)(参照实验指导书实验十) 实验五六十秒计时器设计(参照实验十三)动态数码显示设计 1、完成8个动态数码管的设计(利用按键手动计数,实现60进制计数器的设计)(参照实验指导书实验十一) 2、利用4个动态数码管的完成20进制可逆计数器的设计(参照实验指导书实验十二) 实验七定时器中断实验(参照实验十六)定时计数器T0作定时应用设计(二) 要求:1、完成秒计数器,并在数码管上显示秒计数过程 2、完成进制控制(20秒),并在数码管上显示循环过程 实验八智能电子钟设计(参照实验二十)智能电子钟设计 要求:1、完成智能电子钟的自动走时设计,并在数码管上显示走时过程,时、分、秒中间采用“-”分开。 2、利用四个独立按键完成时、分、秒的初始化过程,要求第一个按键设置功能“0”代表时间设置功能、“1”代表分钟设置功能、“2”代表秒设置功能;第二、三个按键在不同的功能下分别控制各自的时、分、秒计数器;第四个按键完成设置退出。

单片机实验指导书2

MCS51单片机原理及应用 实验指导书 唐山学院信息工程系 单片机实验室 2008年9月

实验一 P1口实验 一、实验目的 1.学习P1口的使用方法; 2.学习延时子程序的编写和使用; 3.学习单片机实验系统的使用方法和程序的调试方法。 二、实验题目 1.P1口做输出口,接八只发光二极管,编写程序,使其循环点亮。 2.P1口低四位接四只发光二极管L1-L4, P1口高四位接开关K1-K4,编写程 序,将开关的状态在发光二极管上显示出来。 三、实验原理说明 P1口为准双向口,P1口的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来往口锁存器写入过“0”,再作为输入时,需要向口锁存器对应位写入“1”。 延时程序的编写可以用两种方法,一种是用定时器来实现,一种使用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。 如果系统晶振为6.144MHz,则一个机器周期为12/6.144μs即1/0.512μs。 现要编写一个延时0.1s的程序,可以大致写出如下: MOV R7, #200 DE1: MOV R6, #X DE2: DJNZ R6, DE2 DJNZ R7, DE1 上面 MOV、DJNZ指令均为两个机器周期,所以执行一条指令需要1/0.256us, 现求出X值:(X*1÷0.256+1÷0.256+1÷0.256)*200+1÷0.256=0.1*106 指令3 指令2 指令4 指令1 计算出X=126,代入上式可知实际延时约为0.100004s。 四、连线方法 题目1:8031的P1.0—P1.7分别接发光二极管L1—L8 题目2:P1口的P1.0—P1.3接L1-L4, P1口的P1.4—P1.7接K1-K4 五、实验电路

单片机U盘读写参考程序

/*******************************************************/ #include"reg52.h" #include"stdio.h" #include "string.h" #include "intrins.h" #include"CH375INC.H" /*******************************************************/ #define uchar unsigned char #define uint unsigned int /*******************************************************/ sbit CH375_INT=P3^3; sbit CH375_A0=P3^4; sbit CH375_RD=P3^5; sbit CH375_WR=P3^6; sbit CH375_CS=P3^7; /*******************************************************/ uchar xdata my_buf[512]; /*******************************************************/ void uart_init() { TMOD=0X20; TH1=TL1=0XFD; TR1=1; REN=1; SM0=0;SM1=1; EA=1; ES=1; } /*******************************************************/ void uart_send_pc(uchar *s) //串口监视//void uart_send_pc(uchar a[20]) { //{ uchar len=strlen(s); // uchar i; uchar i; // for(i=0;i<20;i++) for(i=0;i

单片机实验程序

单片机实验程序 软件实验一 1、分别编程实现两个16位无符号数相加,结果存放在40H41H中;两个16位的无符号数相减,结果存放在30H31H中。 ; 两个16位无符号数相加,结果存放在30H31H中 ORG 0000H LJMP MAIN ORG 0030H MAIN : MOV R3,#01H ;输入加数高八位 MOV R4,#23H ;输入加数低八位 MOV R5,#45H ;输入被加数高八位 MOV R6,#67H ;输入被加数低八位 MOV A,R4 ;将R4存入寄存器A ADD A,R6 ;A与R6相加,结果存入A MOV 31H,A ;将低八位的和数存入31H MOV A,R3 ;将R3存入寄存器A ADDC A,R5 ;A与R5相加,结果存入A MOV 30H,A ;将高八位的和数存入30H SJMP $ END ; 两个16位的无符号数相减,结果存放在30H31H中。 ORG 0000H LJMP MAIN ORG 0030H MAIN : MOV R3,#12H ;输入减数高八位 MOV R4,#34H ;输入减数低八位 MOV R5,#56H ;输入被减数高八位 MOV R6,#78H ;输入被减数低八位 MOV A,R4 ;将R4存入寄存器A CLR C ;C位清"0" SUBB A,R6 ;A与R6相减,结果存入A MOV 31H,A ;将低八位的差数存入31H MOV A,R3 ;将R3存入寄存器A SUBB A,R5 ;A与R5相减,结果存入A MOV 30H,A ;将高八位的差数存入30H SJMP $ END 2、编程实现 X (X ≥40) Y= 2X (20=40时,Y=X;20=40时,将X的值赋给存放Y的值的R3 MOV R3,A SJMP $ BIGGER20: MOV A,R2 ;20

单片机实验指导书(PROTUES实用)

单片机原理与接口技术实验指导书 2009.10.28

目录 软件部分 (1) 实验一赋值程序 (1) 一实验目的 (1) 二实验内容 (1) 三程序流程图 (1) 四实验步骤 (1) 五参考程序 (1) 实验二数据区传送程序 (3) 一实验目的 (3) 二实验内容 (3) 三程序流程图 (3) 四实验步骤 (3) 五参考程序 (3) 硬件部分 (5) 实验一P1口亮灯实验 (5) 一实验目的 (5) 二实验内容 (5) 三程序流程图 (5) 四仿真电路 (6) 五硬件实现电路 (6) 六实验步骤 (7) 七参考程序 (7) 实验二P1口转弯灯实验 (8) 一实验目的 (8) 二实验内容 (8) 三程序流程图 (8) 四仿真电路 (8) 五实验电路 (9) 六实验步骤 (9) 七参考程序 (9) 附录一Keil Vison2使用入门 (11) 附录二Protues使用入门 (13) 附录三KeilC与Proteus连接调试 (15)

软件部分 软件实验中,涉及外部数据存储器扩展寻址操作,须按下图连接实验线路。 说明: 1 将存储器单元的D0-D7与数据总线单元D0-D7相连;存储器单元的A0-A12与地址总线单元A0-A12相连。 2 存储器单元的WE/PGM与六位LED左下方单元的WR或IOWR相连。 3 存储器单元的CS1与六位LED右下方单元A15相连。 4 存储器单元的OE与六位LED左下方单元的RD或IORD相连

实验一赋值程序 一实验目的 1 熟悉汇编指令 2 掌握汇编语言程序设计的一般方法 二实验内容 编写程序实现存储块(2000H---20FFH)的赋值操作(如全为0FFH)。三程序流程图 图1 流程图 四实验步骤 1 编写程序并调试。 2 在实验箱上运行程序,并查看对应存储器和寄存器的内容。。 五参考程序 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R0,#00H MOV DPTR,#2000H MOV A,#0FFH LOOP0:MOVX @DPTR,A INC DPTR INC R0

单片机实验室建设方案

单片机实验室建设方案 血糖测量的电生物化学原理是当施加一定电压于经酶反应后的血液产生的电流会随着血液中的血糖浓度的增加而增加。通过精确测量出这些微弱电流,并根据电流值和血糖浓度的关系,反算出相应的浓度。所以,确定这个关系是问题的核心。但其关系复杂,受多方面因素影响。电压强度、所使用的试条以及检测的血液量都会对其产生影响。理论上需要在所有浓度点上大量实验才能确定最终的关系。在实际操作中,只需在选择若干重要浓度点做大量实验,然后采用曲线拟合或插值等数据处理方式来确定其与电流值之间的关系。 血糖测量通常采用电化学分析中的三电极体系。三电极体系是相对于传统的两电极体系而言,包括,工作电极(WE),参比电极(RE)和对电极(CE)。参比电极用来定点位零点,电流流经工作电极和对电极工作电极和参比电极构成一个不通或基本少通电的体系,利用参比电极电位的稳定性来测量工作电极的电极电势。工作电极和辅助电极构成一个通电的体系,用来测量工作电极通过的电流。利用三电极测量体系,来同时研究工作电极的点位和电流的关系。如图1所示。

图1 三电极工作原理 方案描述 该血糖仪提供多种操作模式以适应不同场合的应用,另外提供了mmol/L,mg/dl,g/l 三种常见测量单位的自由切换并自动转换。该三个单位之间的转换关系如下:1mmol/L=18 mg/dL 1mmol/L=0.18 g/L 1 mg/dL=0.01 g/L 针对不同国家地区的不同要求,血糖仪可以采用以上任意一种单位来显示测量结果,转换的方式采取使用特殊的代码校正条来实现。 (1)单片机及内部硬件资源的充分利用。Silicon labs C8051F410单片机内部集成了丰富的外围模拟设备,使用户可以充分利用其丰富的硬件资源。C8051F410单片机的逻辑功能图如图2所示。利用其中12位的A/D转换器用来做小信号测量,小信号电流经过电流采样电路最终转换为电压由该A/D采样,然后以既定的转换程序计算出浓度显示在液晶

单片机原理实验指导书(2012.10)

《单片机原理》实验指导书 计算机科学与技术系2012年8月

目录 第一部分单片机仿真实验 (1) 实验一:流水灯实验 (1) 实验二:中断实验 (4) 实验三:定时器中断实验 (6) 实验四:串行口实验 (9) 实验五:矩阵式键盘输入识别 (13) 实验六:LCD循环显示设计 (19) 第二部分单片机硬件实验............................错误!未定义书签。第一章试验箱系统概述 ...................................错误!未定义书签。 一、系统地址分配........................................... 错误!未定义书签。 二、系统接口定义........................................... 错误!未定义书签。 三、通用电路简介........................................... 错误!未定义书签。第二章实验指导...............................................错误!未定义书签。实验七P1口亮灯和P1口加法器实验........... 错误!未定义书签。实验八简单I/O口扩展(选作).................. 错误!未定义书签。实验九8255控制交通灯................................ 错误!未定义书签。实验十128*64LCD液晶显示 .......................... 错误!未定义书签。

第一部分单片机仿真实验 实验一:流水灯实验 一、实验目的: 通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的存储器。 二、实验原理图 实验参考电路图如下: 三、参考实验程序 //流水灯实验 #include //包含单片机寄存器的头文件 sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机 //的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的

51单片机实验程序

3 3 3 用查表方式编写y=x1 +x2 +x3 。(x 为0~9 的整数) #include void main() { int code a[10]={0,1,8,27,64,125,216,343,512,729}; //将0~9 对应的每位数字的三次方的值存入code中,code为程序存储器,当所存的值在0~255 或-128~+127 之间的话就用char ,而现在的值明显超过这个范围,用int 较合适。int 的范围是0~65535 或-32768~32767 。 int y,x1,x2,x3; //此处定义根据习惯,也可写成char x1,x2,x3 但是变量y 一定要用int 来定义。 x1=2; x2=4; x3=9; //x1,x2,x3 三个的值是自定的,只要是0~9 当中的数值皆可,也可重复。 y=a[x1]+a[x2]+a[x3]; while(1); //单片机的程序不能停,这步就相当于无限循环的指令,循环的内容为空白。 } //结果的查询在Keilvision 软件内部,在仿真界面点击右下角(一般初始位置是右下角)的watch 的框架内双击“double-click or F2 to add”文字输入y 后按回车,右侧会显示其16 进制数值如0x34,鼠标右键该十六进制,选择第一行的decimal,可查看对应的10 进制数。 1、有10 个8 位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验的 数据(1 的个数为偶数)都要存到内RAM50H 开始的数据区中。试编写有关程序。 #include void main() { int a[10]={0,1,5,20,24,54,64,88,101,105}; // 将所要处理的值存入RAM 中,这些可以根据个人随意设定,但建议不要超过0~255 的范围。 char i; // 定义一个变量 char *q=0x50; // 定义一个指针*q 指向内部0x50 这个地址。 for(i=9;i>=0;i--) //9~0 循环,共十次,也可以用for(i=0;i<10;i++) { ACC=a[i]; //将a[i] 的值赋给累加器ACC if (P==0) //PSW0 位上的奇偶校验位,如果累加器ACC 内数值1 的个数为偶数那么P 为0,若为奇数,P 为1。这里的P 是大写的。 { *q=a[i]; q++; // 每赋一个值,指针挪一个位置指向下一个。 } } while(1); //同实验一,程序不能停。 }

单片机实验

实验一P1口亮灯实验 实验目的 ⑴学习P1口的使用方法; ⑵学习延时子程序的编写。 实验预备知识 ⑴P1口对准双向口,每一位都可独立地定义为输出线或输入线。 ⑵本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。 实验内容 P1作为输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 程序流程 实验电路 实验步骤 P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。 思考 改变延时常数,使发光二极管闪亮时间改变。 修改程序,使发光二极管闪亮移位方向改变。

实验二 P3.3口输入,P1口输出 实验目的 掌握P3口P1口简单使用。 实验内容 P3.3口输入一脉冲,P1口按位加一方式点亮发光二极管。程序流程 实验电路

实验步骤 ⑴P3.3用插针连至K1,P1.0~P1.7用插针连至L1~L8。 ⑵编译、装载、连续运行。 ⑶开关K1每拨动一次,L1~L8发光二极管按位加一点亮。 思考 修改程序,使发光二极管左移方式点亮。

实验三工业顺序控制(中断控制) 实验目的 掌握工业顺序控制程序的简单编程:中断的使用。 实验预备知识 在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制,倒注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。 实验内容 MCS-51的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,高电平启动。P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。 程序流程

单片机实验室建设规划

单片机实验室建设规划 高校实验室建设是与学科建设、专业建设、课程建设紧密相关的重要基础建设,是开展科学研究、培养人才的重要基地,是高校办学水平的重要标志之一。高等职业技术教育培养的是职业性、技能型的适应生产、建设、管理和服务第一线的应用型的专门人才,实践教学是高职教育的重要特征。为此必须高度重视高职专业实验室工作,切实加强实验室建设,不断提高实验室管理水平和实验教学质量。根据我院的发展规划以及专业建设需要,特制定本规划。 一、指导思想 以邓小平理论和党的十六大精神为指导,按照教育“三个面向”的要求,遵循高职教育规律,立足我校办学实际,贯彻勤俭办学的方针,充分利用多种经费来源,大力推进高职专业实验队伍、设备、管理职业化和现代化,以达到最佳的投资效益,满足我院教学和科研的需要,为本地区经济建设和社会发展培养适应生产、建设、服务第一线需要的德、智、体、美等方面全面发展的高等技术应用性专门人才。 二、院教学实验室建设现状 目前,我院实验室建设与实验教堂基本状况是:仪器设备总额近30 余万元,校内实训开出率约60%,理工科实验开出率不足50%。高职学院成以来,通过学校实验专项经费投入和引进社会资金,我院实验环境和实验条件得到改善,实验技术人员队伍素质和管理水平逐步提高,初步满足了高职专业教学的需要。 从目前状况看,还存在不少问题。主要表现在:(1)高职专业实验室的建设被重视的程度与建设的需求不谐调,资金投入明显不足;(2)实验室的管理体制不完善,尙未设立专门的实验室管理机构;(3)校内实训基地没有专用场地,多数专业的实验室或模拟实验室尚未规划设计,已建专业实验室(特别是软件高职实验室)未形成规模;(4)实验室技术人员的数量不足,电脑和网络的维护和维修人员的素质有待提高;(5)实验教学管理缺严格少规范,实验教学质量有待提高。 三、实验室建设目标与主要任务 根据国家教育部《高职高专院校人才培养工作水平评估方案》要求和我院的发展规划,未来三年,我院将进一步调整实验室结构和布局,搞好实验室队伍建设,不断优化资源配置,加大投资力度,更新和补充教学仪器设备,建成一个适应现代化办学要求的规范化、现代化

单片机实验参考程序

实验一键盘输入实验 参考程序: ;4*4矩阵键盘读取程序,利用P0口,列线左起P0.0-P0.3 ;行线上起P0.4-P0.7,行线默认接高电平, ;P3.7作为键盘被读取的提示灯 ; 0 1 2 3 ; 4 5 6 7 ; 8 9 A B ; C D E F ;不考虑有两个或以上按键同时按下的情况, ;每次扫描到一个有按下则结束本次扫描 SETB P3.7 ;确认关闭键盘响应指示灯 MAIN: MOV R0,#0EFH ;用于给键盘行列线确定的电平 MOV R1,#0H ;循环次数,R1=0对应第一行,=1为第二行,以此类推SMAIN: MOV P0,R0 ;改变行线的状态,列线全处于高电平 NOP NOP MOV A,P0 JB ACC.0,L1 ;判断某行的第一列是否按下,按下则P0.0为低电平 MOV R2,#0H ; 将某行的列码保存至R2,显示程序会根据此值和R1的值计算具体为何按键按下 ACALL DISP SJMP MAIN ; 每次扫描到一个有按下则结束本次所有扫描

L1: JB ACC.1,L2 ;判断某行的第二列是否按下,按下则P0.1为低电平MOV R2,#01H ACALL DISP SJMP MAIN L2: JB ACC.2,L3 ;判断某行的第三列是否按下,按下则P0.2为低电平MOV R2,#02H ACALL DISP SJMP MAIN L3: JB ACC.3,SKIP ;判断某行的第四列是否按下,按下则P0.3为低电平MOV R2,#03H ACALL DISP SJMP MAIN ; SKIP: INC R1 ;R1加1,共计4行, MOV A,R0 RL A ;左移R0内的值,以并扫描下一行 MOV R0,A CJNE R1,#04H,SMAIN ;若四行扫描完毕,则跳转至程序最初,相关参数为初始值NO: MOV P2,#0FFH ;程序能执行到此说明四行扫描完毕并且一个按键都没按下,关闭数码管和指示灯 SETB P3.7 SJMP MAIN DISP: CLR P3.7 ;点亮键盘响应指示灯 MOV A,R1 RL A RL A ;R1对应行,具体的按键计算为R1*2+R2 ADD A,R2 ADD A,#3H ;下列指令与表格见有3字节的距离 MOVC A,@A+PC MOV P2,A ;十六进制的高位用数码管L1显示 RET ;共阳数码管0-F的显示码 DIS: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH DELAY: m ov r7,#255;延时 del1: mov r6,#255; del2: djnz r6,del2 djnz r7,del1 ret END

相关文档
最新文档