当前位置:文档之家› 单片机接口技术与实验(附原理图及源程序)

单片机接口技术与实验(附原理图及源程序)

单片机接口技术与实验(附原理图及源程序)
单片机接口技术与实验(附原理图及源程序)

《单片机接口技术与实验》

姓名:

学号:

年级:

专业:电子信息科学与技术

实验二并行口输入输出实验——循环彩灯控制

一、实验功能

(1)。P1口接8 个开关,P0 口接8个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮.开关断开时,灯灭。

二、实验原理图

注意:因为P0口作为输出口时必须接上拉电阻,为简化起见,此处接到P2口上

三、实验程序

org 0000h

ljmp main

org 0100h

main: mov p1,#0ffh

mov p2,p1

ajmp main

end

(2)

一、实验功能

用5个开关K0~K4,控制P0 口所接8个灯得循环,各开关得功能要求如下: (1)K1~K2 分别选择灯得四种闪动方式;

(2)K3 用于控制灯得循环方式(顺时针或逆时针);

(3)K4用于选择灯得两种循环速度

(4)K0 用于引发外部中断,在外部中断子程序中,读取通过K1-K4 所设定得循环彩灯得工作方式,并按所设定得工作方式控制彩灯运行。

二、实验原理图

三、实验流程图

四、实验程序

ORG0000H

?LJMPMAIN

ORG0003H

?LJMPINT0PR0

??ORG0100H

MAIN:MOV P1,#0FFH

MOV SP,#60H ?SETB EX0

??SETBIT0?????

??SETB EA

??MOV C,P1、2

?MOV50H,C

?MOV C,P1、3

?MOV51H,C

?JB P1、0,NEXT1

?JNB P1、0,NEXT2

NEXT1: JB P1、1,CIRCLE1

JNB P1、1,CIRCLE2

NEXT2: JB P1、1,CIRCLE3

JNBP1、1,CIRCLE4

CIRCLE1:MOV A,#80H ?LJMP STEP0

CIRCLE2:MOVA,#0C0H

?LJMP STEP0

CIRCLE3:MOV A,#0AAH ?LJMP STEP0

CIRCLE4:MOV A,#0E0H

LJMP STEP0

STEP0:MOV P2,A

JB50H,S1

??JNB 50H,S2

STEP1:?JB 51H,LOOP1

??JNB 51H,LOOP2

S1:LCALLDELAY1

LJMP STEP1

S2:LCALL DELAY2

LJMP STEP1

DELAY1:MOVR7,#100

D1: MOVR6,#100

D2:MOV R5,#10

D3:DJNZR5,D3 ?DJNZ R6,D2

?DJNZ R7,D1

RET

DELAY2:MOV R7,#200

D4:MOVR6,#100

D5:MOV R5,#10

D6: DJNZ R5,D6

?DJNZ R6,D5

??DJNZ R7,D4

?RET?????

LOOP1:RL A

LJMPSTEP0

LOOP2:RR A

LJMP STEP0

?ORG0400H

INT0PR0:

MOVC,P1、2

?MOV 50H,C

?MOVC,P1、3

?MOV51H,C

?JB P1、0,WORK1

JNB P1、1,WORK2

WORK1:JBP1、1,L1

JNB P1、1,L2

WORK2:JBP1、1,L3

JNB P1、1,L4

L1: MOV A,#80H

LJMP PASS

L2: MOV A,#0C0H

LJMP PASS

L3: MOV A,#0AAH

LJMP PASS

L4: MOVA,#0E0H

LJMP PASS

PASS: RETI

??END

实验三七段LED数码管控制实验

一、实验功能

1.实验采用4 位一体得数码管,用P1 口通过驱动芯片控制段码输出信号线,P0 口

通过驱动芯片控制位选线:

(1)当开关K0接低电平时,第一位依次显示0~F,然后第二位、第三位、第四

位,再循环回第一位.

(2)当开关K0 接高电平时,四位动态显示“HELP”

二、实验原理图

三、实验流程图

四、实验程序

org0000h

ljmp main

org0100h

main:

mov p2,#0ffh

??setbp1、0

movdptr,#tab

mov r0,#0

mov a,#00h

loop1: mov r0,#00h

jnb p1、0,h

sjmp loop2

h:mov p2,#0feh

lcall light

mov p2,#0fdh ?lcall light

?mov p2,#0fbh

??lcall light

??mov p2,#11101111b

?lcall light

?sjmploop1

light:jb p1、0,loop2

mov a,r0

movc a,a+dptr

??inc r0

mov p0,a

?lcall delay1

cjne r0,#16,light

mov r0,#0

?ret

loop2: movp2,#0feh

movp0,#73h

lcalldelay1

jnbp1、0,loop1

movp2,#0fdh

mov p0,#38h

lcalldelay1

jnb p1、0,loop1

mov p2,#0fbh

movp0,#79h

lcall delay1

jnb p1、0,loop1

mov p2,#11101111b

mov p0,#76h

lcalldelay1

jnb p1、0,loop1

sjmp loop1

tab:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h

delay1:

MOVR3,#10

D2:MOVR2,#100

D1:MOV R1,#100

D0:DJNZ R1,D0

DJNZ R2,D1

DJNZR3,D2

RET

end

实验四定时器中断实验

一、实验功能

1.用T0定时器实现1秒定时,控制一个LED亮1 秒,灭1 秒,并不断循环。

二、实验原理图

三、实验流程图

四、实验程序

or g 0000h

ljmp m ai n o rg 000bh ljm p t0pr0

org 0100h main: mov s p,#60h

mov tmo d,#01h mo v th 0,#0b8h mov tl0,#00h m ov r0,#100 se tb ea se tb et0 setb t r0 lo op : sjm p $ ljmp loo p

t0pr0: djnzr0,w

cpl p2、7

mov r0,#100

w:mov th0,#0b8h

mov tl0,#00h

reti

end

2、

一、实验功能

实现一个4 位秒表:

(1)用开关K0 模拟秒表得启动、停止、清零功能,按一次启动计时,按一次停止,再按一次清零,在三个状态中循环。

(2)最低位按1/10 秒计数,依次计数单位为1/10秒,1 秒,1 分

(3) 要求K0 使用外部中断,优先级高于T0 得优先级

二、实验原理图

三、实验流程图

四、实验程序

org 0000h

ljmp main

org 0003h

ljmp intx0

org 000bh

ljmp t0pr0

org0100h main: movtmod,#01h

mov th0,#0b8h

movtl0,#00h

mov p2,#0ffh

mov r0,#1

mov r1,#0

mov r2,#0

movr3,#0

mov r4,#0

mov r5,#0

mov a,#0

mov dptr,#tab

setb ea

setb ex0

setb it0

setb tr0

??setbpx0

?setb et0

k:lcall aaa

jmpk

aaa: movp2,#0feh

mova,r2

lcall loop

?lcall mm

movp2,#0fdh

mov a,r3

lcallloop

?lcall mm

mov p2,#0fbh

mov a,r4

lcall loop

lcall mm

movp2,#11101111b

mova,r5

lcall loop ?lcall mm

?ret

mm: djnz acc,$

?djnz acc,$

?ret

loop: movca,a+dptr

mov p0,a

ret

tab:db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh intx0:inc r0

cjner0,#1,st

setb tr0

reti

st:cjne r0,#2,w

clr tr0

reti

w: mov a,#0

movr0,a

mov r1,a

mov r2,a

mov r3,a

movr4,a

?movr5,a

reti

t0pr0: mov th0,#0b8h

mov tl0,#00h

inc r1

cjne r1,#10,exit

mov r1,#0

inc r2

cjne r2,#10,exit

mov r2,#0

inc r3

cjne r3,#10,exit

mov r3,#0

incr4

cjne r4,#6,exit

movr4,#0

??incr5

??cjne r5,#10,exit

?mov r5,#0

exit:reti

end

实验五脉冲宽度与周期测量实验

一、实验功能

同时测量脉冲宽度与周期,由开关K0 选择显示脉冲宽度还就是显示脉冲周期。

二、实验原理图

三、实验流程图

四、实验程序

单片机实验

实验一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道工序只有一位输出,第七道工序三位有输出。 程序流程

单片机原理及应用习题答案 第三版

第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路与相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度与精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度与精度也相对要低一些。例如,现在的单片机产品的CPU 大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量与CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术与段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。用户通过标准总线连接外设,能达到即插即用。单片机应用系统的外设都就是非标准的,且千差万别,种类很多。单片机的I/O接口实际上就是向用户提供的与外设连接的物理界面。用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。 另外,单片机的微处理器(CPU)、存储器、I/O接口电路集成在一块芯片上,而通用微机的微处理器(CPU)、存储器、I/O接口电路一般都就是独立的芯片 1-4 IAP、ISP的含义就是什么? ISP:In System Programable,即在系统编程。用户可以通过下载线以特定的硬件时序在线编程(到单片机内部集成的FLASH上),但用户程序自身不可以对内部存储器做修改。 IAP:In Application Programable,即在应用编程。用户可以通过下载线对单片机进行在线编程,用户程序也可以自己对内部存储器重新修改。 1-6 51单片机与通用微机相比,结构上有哪些主要特点? (1)单片机的程序存储器与数据存储器就是严格区分的,前者为ROM,后者为RAM; (2)采用面向控制的指令系统,位处理能力强; (3)I/O引脚通常就是多功能的; (4) 产品系列齐全,功能扩展性强; (5) 功能就是通用的,像一般微处理机那样可广泛地应用在各个方面。 1-7 51单片机有哪些主要系列产品? (1)Intel公司的MCS-51系列单片机:功能比较强、价格比较低、较早应用的单片机。 此系列三种基本产品就是:8031/8051/8751; (2)ATMEL公司的89系列单片机:内含Flash存储器,开发过程中可以容易地进行程

中山大学左明老师单片机实验七共20页

实验七 D/A与A/D转换 一、实验目的 1、学习D/A转换的基本原理和D/A转换芯片DAC0832的性能及篇程方法 2、了解单片机系统中扩展D/A转换芯片的基本方法 3、学习A/D芯片ADC0809的转换性能及编程方法 4、了解A/D芯片与写单片机的接口方法 5、通过实验掌握单片机进行数据采集的方法 二、实验说明 1、D/A转换是把数字量转换成模拟量的变换。从D/A输出的是模拟信号。实验程序一是通过在D/A的输入端送入有一定规律的数字量,在输出端产生锯齿波、三角波、正弦波的波形,通过示波器观察来直观地了解D/A的转换功能。 要把一个数据通过0832输出,要经过两次锁存。典型的程序如下: MOV DPTR,#PORT MOV A,#DATA MOVX @DPTR,A INC DPTR MOVX @DPTR,A 2、A/D转换是把模拟量转换成数字量的变换。启动A/D采样转换只需要两条指令: MOV DPTR,#PORT MOVX @DPTR,A

三、实验内容 内容一:利用DAC0832编程产生锯齿波、三角波、正弦波。三种波形轮流显示 一、连线方法:0832的CS0832接CS0。输出DAOUT接示波器探头,示波器探头地线接实验板地线 二、代码 ;D61.ASM ORG 4000H LJMP MAIN ORG 401BH LJMP DELAY PORT EQU 0CFA0H ORG 4100H MAIN: MOV TMOD,#10H SETB EA SETB ET1 MOV TL1,#0AFH MOV TH1,#3CH SETB TR1 DISP: MOV R1,#50H

单片机原理及应用习题答案 第三版

第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠

单片机实验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字模

单片机实验指导书

实验一KEIL 51软件实验 实验目的: 1、掌握KEIL集成开发环境的使用 2、掌握算术运算程序 实验设备:计算机、KEIL51软件 实验内容: 编程实现把片人RAM30H单元和40H单元两个16字节数相加,结果放于30H单元开始的位置处。在KEIL51编译、连接、仿真调试。 实验步骤: 一、运行KEIL51软件,出现图1所示KEIL 51主界面。 图1 KEIL 51主界面 首先用Project菜单下的New Project命令建立项目文件,过程如下。 (1) 选择Project菜单下的New Project命令,弹出如图2所示的Create new Project对话框。 图2 Create New Project对话框 (2) 在Create New Project对话框中选择新建项目文件的位置(最好一个项目建立一个文件夹如E:\project), 输入新建项目文件的名称,例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select Device for Target ‘Target 1’对话框,用户可以根据使用情况选择单片机型号。Keil uVision2 IDE几乎支持

所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。 图3 Select Device for Target ‘Target 1’对话框 (3) 这里选择atmel公司的A T89c51。单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。 单击后,项目文件就创建好了。项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。 这时只有一个框架,紧接着需向项目文件中添加程序文件内容。 图4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框 二、给项目添加程序文件 当项目文件建立好后,就可以给项目文件加入程序文件了,Keil uVision2支持C语言程序,也支持汇编语言程序。这些程序文件可以是已经建立好了的程序文件,也可以是新建的程序文件,这里我们新建的汇编程序文件后再添加。 (1) 选择文件菜单上的new命令,出现新建文本窗口,如图5所示。

单片机实验考核题目及答案

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

单片机实验模版

单片机实验模版 本科实验报告 课程名称:单片机综合设计学院(系): 专业:电子 班级: 学号: 学生姓名: 2018 年月日

实验项目列表 注意:独立完成预习报告和实验操作。 专业:班级:学号: 学生签字: 联系:

《单片机原理及应用实验》报告填写要求依照《大连理工大学本科实验报告规范(试行)》提出的各项要求,现规定《单片机原理及应用实验》报告填写要求如下: 一、每次实验前必须完成预习报告。注意:预习报告中的回答问题必须手写,且由 学生本人签名。第一次实验时,课前将预习报告与《实验项目列表》一同交给 实验老师。每次实验时,课前提交预习报告,没有完成预习报告者不得进行实 验。 二、每一个实验项目均须撰写一份实验报告,最后按顺序装订、上交。 三、实验报告内容: 1、实验目的和要求:写明实验的目的和任务要求; 2、实验原理和内容:与实验内容相关的算法描述、程序的结构类型,与实验相关的 接口模块功能描述。 3、算法流程:使用流程图对算法进行描述。流程图应当逻辑正确、简单清晰。流程 图能够采纳打印或手工绘制。 4、使用protel等工具绘制实验系统电路图(也可手工绘制)。系统电路图应正确、 工整。系统电路中应包含单片机以及单片机工作时所必需的外围相关器件(晶 体、上电复位电路等); 5、程序清单:程序清单一律采纳打印的方式,源程序文件的格式要整齐、规范(语 句的标号、指令及注释应在不同列中)。在程序的关键语句上加注释。相关子程 序要在凝视中进行功能说明; 6、实验结果与分析:明确地写出最后结果(是否实现设计要求等),对实验中所遇 到的问题以及解决的方法加以描述; 7、实验体会、建议:通过实验所体会的收成。针对实验内容、教学方法、考核方法 等提出需要解决的问题,提出改进建议; 8、全部文字叙述内容要求简明扼要,思路清晰、用词规范; 9、要紧仪器设备:记录要紧仪器的名称、型号(包括实验运行软件名称)等 10、实验时刻:报告中应标明实验的日期(年、月、日;星期;组号)。 四、要求实验报告字迹工整,文字简练,数据齐全,图表规范,运算正确,分析充分、具体、定量。

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

单片机实验七-外部中断

实验七外部中断 1:在P1.0上产生周期为10ms的方波,设晶振频率12MHz.(要求分别以查询方式和中断方式设计程序) 查询: ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H SETB TR1 WAIT:JBC TF1,NX SJMP WAIT NX:CPL P1.0 MOV TH1,#0CEH MOV TL1,#78H SJMP WAIT END 中断: ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H MOV IE, #88H SETB TR1 WAIT: SJMP WAIT ORG 001BH CPL P1.0

MOV TH1,#0CEH MOV TL1,#78H RETI END 例2按照按键次序,先后依次点亮8盏灯中的一盏,要求采用中断方式编程。 案例一: ORG 0000H LJMP MAIN ORG 0013H ; 中断矢量 LJMP INT ORG 040H MAIN:SETB EX1 ; 开外部中断允许 CLR PX1 ; 外部中断低优先级 SETB IT1; 边沿触发 SETB EA; 开中断总允许 MOV A,#01H; 给A寄存器赋初值 HERE:SJMP HERE; 原地等待中断申请 INT: MOV P1,A ; 输出到P1口显示 RL A ; 左环移一次,准备下次显示的数据 RETI ; 中断返回 END 案例二: ORG 0000H LJMP MAIN ORG 0013H ; 外部中断1矢量 LJMP INT ORG 030H MAIN: MOV R0,#09

《单片机系统设计技术》实验指导

《单片机系统设计技术》 实验指导书 适用专业: 电气、自动化、信息等 编写单位: 电气信息学院 编写人: 曹 林 审核人: 审批人: 批准时间:年月日

目 录 实验1 IO控制LED流水灯实验 (3) 实验2 IO控制数码管动态扫描实验 (5) 实验3 外部中断实验 (8) 实验4 定时器应用控制实验 (10) 实验5 UART实验 (12) 实验6 键盘扫描输入编程 (14) 实验7 UART与PC对话实验 (17) 实验8 ADC数据采集实验 (19)

实验1 IO控制LED流水灯实验 1.实验目的 1)、熟悉KEIL编程环境和调试环境。 2)、掌握单片机汇编语言和指令的用法。 3)、理解简单的IO控制程序,延迟子程序,并对其修改,使其功能改变。 2.实验设备 硬件: PC 机,单片机教学实验开发平台; 软件: KEIL集成开发环境、STC ISP程序下载软件。 3.实验内容 使用P0口控制8个LED 进行流水灯显示。 4.实验预习要求和实验准备要求 预习教科书关于单片机硬件架构内容、IO口的内容,特殊寄存器内容。 预习汇编程序编写、MCS-51指令表。 带上教科书、U盘、具备二进制和十六进制转换的科学计算器。 5.实验原理和步骤 1)实验原理 (1)实验原理图 图1 P0口连接的8盏LED灯 从图1中可以看出:如果需要把LED点亮有两个条件,其一是需要用短接帽把J1的2脚和3脚短接,在PCB上就是将电路板左上角LED和VCC短接起来;其二是P0.X口给出低电平,让电流从VCC开始流经限流电阻、LED后进入单片机的P0.X口,最后到单片机内部的地线上。因此,简单地说就是在短接帽接好的前提下,向P0.X口写0则LED将点亮,写1则LED将熄灭。图中网络标识PORT0_0、PORT0_1……PORT0_7和单片机P0.0、P0.1……P0.7连接,可观察原理图上单片机P0口的网络标识也是PORT0_0、 PORT0_1……PORT0_7。

实验七 单片机串口通信

实验七串口通信实验 【实验目的】 1、理解单片机串行口的工作原理; 2、学习使用单片机的TXD、RXD口; 3、学习PC机的串口通讯原理。 【实验内容】 任务: 1.单片机与电脑串口通讯,将单片机与电脑相连,借助串口调试助手,单片机发送“Everything is possible ^_^”。 2.串口调试助手中输入“turnonled1”、“turnonled2”、“turnonled3”中一个,相应的led点亮,单片机再发送“Turn on LED1 has been executed!”消息提示输入下一个需要点亮的灯。通讯波特率:9600bps,信息格式:无校验位+8个数据位+1个停止位,传送方式,单片机采用中断方式接收信息。 原理: SM0、SM1:由软件置位或清零,用于选择串行口四种工作方式。 SM2:多机通信控制位。在方式2和方式3中,如SM2=1,则接收到的第9位数据(RB8)为0时不启动接收中断标志RI(即RI=0),并且将接收到的前8位数据丢弃;RB8为1时,才将接收到的前8位数据送入SBUF,并置位RI,产生中断请求。当SM2=0时,则不论第9位数据为0或1,都将前8位数据装入SBUF 中,并产生中断请求。在方式0时,SM2必须为0。 REN:允许串行接收控制位。若REN=0,则禁止接收;REN=1,则允许接收,该位由软件置位或复位。 TB8:发送数据D8位。在方式2和方式3时,TB8为所要发送的第9位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0为数据,TB8=1为地址;也可用作数据的奇偶校验位。该位由软件置位或复位。 RB8:接收数据D8位。在方式2和方式3时,接收到的第9位数据,可作为奇偶校验位或地址帧或数据帧的标志。方式1时,若SM2=0,则RB8是接收到的停止位。在方式0时,不使用RB8位。 TI:发送中断标志位。在方式0时,当发送数据第8位结束后,或在其它方式发送停止位后,由内部硬件使TI置位,向CPU请求中断。CPU在响应中断后,必须用软件清零。此外,TI也可供查询使用。 RI:接收中断标志位。在方式0时,当接收数据的第8位结束后,或在其它方式接收到停止位的中间由内部硬件使RI置位,向CPU请求中断。同样,在CPU 响应中断后,也必须用软件清零。RI也可供查询使用。

(完整版)单片机课后习题答案

单片机课后习题答案 1.89C51单片机内包含哪些主要逻辑功能部件? 答:80C51 系列单片机在片内集成了以下主要逻辑功能部件: (l)CPU(中央处理器):8位(2)片内RAM:128B(3)特殊功能寄存器:21个(4)程序存储器:4KB (5)并行I/O 口:8位,4个⑹串行接口:全双工,1个⑺定时器/计数器:16位,2个(8)片内时钟电路:1 个 2.89C51 的EA 端有何用途? 答:/EA端接高电平时,CPU只访问片内flash Rom并执行内部程序,存储器/EA 端接低电平时,CPU 只访问外部ROM ,并执行片外程序存储器中的指令。/EA 端保持高电平时,CPU 执行内部存储器中的指令。 3.89C51 的存储器分哪几个空间?如何区别不同空间的寻址? 答:ROM (片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits 地址)(64KB)片外RAM(MOVX)(16bits 地址)(64KB)片内RAM (MOV)(8bits 地址)(256B) 4. 简述89C51 片内RAM 的空间分配。 答:片内RAM有256B,低128B是真正的RAM区,高128B是SFR (特殊功能寄存器)区。 5. 简述布尔处理存储器的空间分配,片内RAM 中包含哪些可位寻址单元。 答:片内RAM 区从00H~FFH (256B) 其中20H~2FH (字节地址)是位寻址区对应的位地址是00H~7FH 6. 如何简捷地判断89C51 正在工作? 答:用示波器观察8051 的XTAL2 端是否有脉冲信号输出(判断震荡电路工作是否正常?)ALE (地址锁存允许)(Address Latch Enable )输出是fosc 的 6 分频用示波器观察ALE 是否有脉冲输出(判断8051 芯片的好坏?)观察PSEN (判断8051能够到EPROM 或ROM中读取指令码?) 因为/PSEN 接外部EPROM (ROM )的/OE 端子OE=Output Enable (输出允许) 7. 89C51 如何确定和改变当前工作寄存器组? 答:PSW (程序状态字)(Program Status Word )中的RS1和RS0可以给出4 中组合,用来从4组工作寄存器组中进行选择PSW属于SFR( Special Function Register)(特殊功能寄存器) 9. 读端口锁存器和“读引脚”有何不同?各使用哪种指令? 答:读锁存器(ANLP0,A )就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1 这条指令就是读引脚的,意思就是把端口p1 输入数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH 、XCHD 算术及逻辑运算 ORL、CPL、ANL 、ADD、ADDC 、SUBB、INC 、DEC 控制转移CJNE、DJNZ 都属于读锁存器。10. 89C51 P0?P3 口结构有何不同?用作通用I /O 口输入数据时,应注意什么?

单片机实验LCD显示实验

实验19L C D显示实验 一、实验目的: 学习液晶显示的编程方法,了解液晶显示模块的工作原理。 掌握液晶显示模块与单片机的接口方法。 二、所需设备 CPU挂箱、8031CPU模块 三、实验内容 编程实现在液晶显示屏上显示中文汉字“北京理工达盛科技有限公司”。 四、实验原理说明 五、实验步骤 1、实验连线 8255的PA0~PA7接DB0~DB7,PC7接BUSY,PC0接REQ,CS8255接 CS0。 2、运行实验程序,观察液晶的显示状态。 六、程序框图 八、附:点阵式LCD 模块 点阵式LCD模块 由一大一小两块液晶 模块组成。两模块均 由并行的数据接口和 应答信号接口两部分 组成,电源由接口总 线提供。 (1)OCMJ2×8液晶 模块介绍及使 用说明 OCMJ中文模块系列液晶显示器内含 GB 2312 16*16点阵国标一级简体汉字和 ASCII8*8(半高)及8*16(全高)点阵英文字库,用户输入区位码或 ASCII 码即可实现文本显示。 OCMJ中文模块系列液晶显示器也可用作一般的点阵图形显示器之用。

提供有位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。完全兼容一般的点阵模块。 OCMJ中文模块系列液晶显示器可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。 本系列模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令。一改传统的使用大量的设置命令进行初始化的方法,OCMJ 中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用”。同时保留了一条专用的复位线供用户选择使用,可对工作中的模块进行软件或硬件强制复位。规划整齐的10个用户接口命令代码,非常容易记忆。标准用户硬件接口采用REQ/BUSY 握手协议,简单可靠。 硬件接口 接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY 高电平(BUSY =1)表示 OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ 空闲,等待接收用户命令。发送命令到 OCMJ可在BUSY =0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ 信号(REQ =1)通知OCMJ请求处理当前数据线上的命令或数据。OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需5个字节,模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长,具体的时序图和时间参数说明查阅相关手册。

单片机实验答案

前言 由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机。为配合《单片机应用技术》课程的教学,使学生尽快了解、掌握89C51单片机的使用,特编写了这本上机指导书(基础篇)。 《单片机》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强动手是不能获得预期效果的。本实验指导书提供了9个实验的指导性材料,实验还有一些思考题,可以根据课时的安排和教学要求进行取舍。为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。 由于时间紧迫,加上编者学识有限,如有不妥之处,欢迎读者批评指正。 编者

实验须知 1. 实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备工作,编写好实验中要求自编或修改的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上机操作。 2. 各种电源的电压和极性不能接错,严禁带电接线和接插元器件。通电前须经过指导教师检查认可后方能通电。 3. 不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。 4. 严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。 5. 实验中若损坏仪器或元器件,应及时向指导教师报告,听候处理。 6. 在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成实验。 7. 实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。 8. 按规定认真完成实验报告,对实验中出现的现象进行分析,在规定的时间内交上实验报告。 9. 凡实验或实验报告未能按规定完成的学生,不能参加本课程的考试或考查。

单片机试验源程序文件

单片机实验指导书(实验源程序)

实验二、三 I/O接口实验 1、输出实验 例1: ORG 0000H AJMP START ;跳转到初始化程序 ORG 0033H ;----- 主程序开始 ----- START: MOV P1,#0FFH ;是所有LED熄灭 ACALL DELAY ;调用延时子程序 CLR P1.0 ;P1.0输出低电平,使LED3点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED3熄灭 CLR P1.1 ;P1.1输出低电平,使LED4点亮 ACALL DELAY ;调用延时子程序 SETB P1.1 ;P1.1输出高电平,使LED4熄灭 CLR P1.2 ;P1.2输出低电平,使LED5点亮 ACALL DELAY ;调用延时子程序 SETB P1.2 ;P1.2输出高电平,使LED5熄灭 CLR P1.3 ;P1.3输出低电平,使LED6点亮 ACALL DELAY ;调用延时子程序 MOV P1, #0F0H ;LED3~LED6全部发光 ACALL DELAY ;调用延时子程序 AJMP START ;返回到标号START处再循环 ;----- 延时子程序 ----- DELAY: MOV R5,#10 LOOP: MOV R6,#200 LOOP1: MOV R7,#250 LOOP2: DJNZ R7,LOOP2 DJNZ R6,LOOP1 DJNZ R5,LOOP RET 例2: ORG 0000H AJMP START ;跳转到初始化程序 ORG 0033H ;----- 主程序开始 ----- START: MOV P1,#0FFH ;是所有LED熄灭 ACALL DELAY ;调用延时子程序 MOV ACC,#0FEH ;ACC中先装入LED3亮的数据(二进制的11111110) MOV P1,ACC ;将ACC的数据送P1口 ACALL DELAY ;调用延时子程序 MOV R0,#03H ;上句送到P1口的数据就点亮了LED1,所以将数据再移

单片机实验报告

本科生实验报告 实验课程单片机原理及应用 学院名称核技术与自动化工程学院 专业名称电气工程及其自动化 学生姓名 学生学号 指导教师任家富 实验地点6C902 实验成绩 二〇一五年三月二〇一五年六月 单片机最小系统设计及应用 摘要 目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用,本次设计课程采用STC89C52单片机和ADC0804,LED显示,键盘,RS232等设计一个单片机开发板系统。进行了LED显示程序设计,键盘程序设计,RS232通信程序设计等。实现了单片机的各个程序的各个功能。对仿真软件keil的应用提升了一个新的高度。单片机体积小、成本低、使用方便,所以被广

泛地应用于仪器仪表、现场数据的采集和控制。通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。 关键词:单片机;智能;最小系统;ADC;RS232;显示;STC89C52 第1章概述 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。 第2章实验内容 2.1单片机集成开发环境应用

100个单片机c51实验源程序

/*--------------------------------------- Name :LCD1602液晶显示Created By : Paul He Date : 2012.9.18 ----------------------------------------*/ # include # include "macroandconst.h" # define LcdData P0 sbit EN=P3^5; sbit RW=P3^6; sbit RS=P3^7; //sfr LcdData=0x80; /********************* 延时函数 *********************/ void Delay(uint16 t) { while(t--); } /********************* LCD1602驱动程序 *********************/ void //完成一个字节命令的写入LcdWriteCmd(uint8 cmd) { Delay(1000); EN=0; RW=0; RS=0; LcdData=cmd; EN=1; Delay(20); EN=0; } void //完成一个字节数据的写入LcdWriteDat(uint8 dat) { Delay(1000); EN=0; RW=0; RS=1; EN=1; LcdData=dat; EN=0; } void //清屏 LcdClear() { LcdWriteCmd(0x01); } void //初始化液晶屏 LcdInit() { LcdWriteCmd(0x38); Delay(200); LcdWriteCmd(0x0e); Delay(200); LcdWriteCmd(0x06); Delay(200); } void //完成字符串的写入,如 果第一行写满,自动切换到第 二行 LcdWriteStr(uint8 addr,uint8 *p) { LcdWriteCmd(addr); while(*p!=0x00) { LcdWriteDat(*p); p++; if(addr++==0x8f) { LcdWriteCmd(0xc0); } } } //主函数 void main() { LcdClear(); LcdInit(); LcdWriteStr(0x80,"HeHuiB o"); LcdWriteStr(0xc0,"1010107 2054"); while(1); }

相关主题
文本预览
相关文档 最新文档