单片机综合实验报告

时间:2024.5.14

目 录

第一章 实验任务书 .......................................................................................... 1

1.1 实验目的 ......................................................................................................... - 1 -

1.2 实验设备 ............................................................................................................. 1

1.3 实验内容 ............................................................................................................. 1

1.4 实验扩展 ............................................................................................................. 2

1.5 实验要求 ............................................................................................................. 2

第二章 设计构思 .............................................................................................. 2

2.1 整体设计思路 ..................................................................................................... 2

2.2 程序各部分的设计 ............................................................................................. 3

2.2.1 键盘程序的设计 ........................................................................................ 3

2.2.2 显示程序的设计 ........................................................................................ 5

2.2.3 定时器中断子程序的设计 ........................................................................ 6

2.2.4 外部中断0程序的设计 ............................................................................ 7

2.2.5 扩展功能的实现 ........................................................................................ 8

第三章 实验感想 .............................................................................................. 9

3.1 实验感想 ............................................................................................................. 9

附 录——总电路图

接口技术综合实验

第一章 实验任务书

1.1 实验目的

1、通过实验,学生得到接口技术实际应用系统开发的综合训练。

2、提高学生单片机综合系统的开发的能力。

1.2 实验设备

接口技术实验箱一套、一台计算机。

1.3 实验内容

利用接口技术实验箱,进行温度单片机控制系统设计。单片机控制系统控制系统结构如方块图所示:

单片机综合实验报告

系统中对象的被控变量——温度值由温度变送器转换为0~5V信号(由外部提供的0~5V信号源)作为ADC0809的模拟输入量,要求单片机控制系统定时1S进行A/D转换,转换结果——测量值(16进制数表示)在数码管右两位中显示。

数字控制器的设定值(16进制数表示)从键盘输入,在数码管左两位中显示设定值;数字控制器采用比例控制,输出为Y=K*(设定值-温度测量值) , 假设K=1,︱设定值-温度测量值︱≦7FH,数字控制器输出是有符号数。

- 1 -

接口技术综合实验

数字控制器输出送入DAC0832进行D/A转换,得到0~5V 的模拟信号控制执行器——加热棒对对象加热,输出0~2.49 V使加热棒逐渐加大加热量,输出2.5~5 V使加热棒逐渐减少加热量。

1.4 实验扩展

1、前两位数码管以十进制方式显示设定的温度值。

2、输入设定温度值的时候只能输入0~9这10个十进制数,按其他按键单片机不响应。

1.5 实验要求

1、根据实验内容,设计硬件电路原理图,并给出详细接线图(包括8051芯片、晶振电路、复位电路,电源、ADC0809、DAC0832、8255、键盘与数码管显示电路等)。

2、利用PROTEL软件绘制出上述电路原理图(即.SCH文件)(选作)

3、利用PROTEL软件设计出印刷电路板图(即.PCB文件)。(选作)

4、画出程序流程图。

5、给出源程序清单。

6、调试(约定的实验室时间),调试结束后要请老师进行检查,答辩。

利用接口实验箱进行调试。

第二章 设计构思

2.1 整体设计思路

根据实验要求,我将键盘程序作为主程序,键盘程序中加入反复调用显示程序的子程序,这样实现了键盘和显示程序的“同时”运行。然后用定时器程序产生1S的中断,将启动A/D转换的语句放在定时器中断程序里面,这样就实现了1S采样一次的功能。然后用A/D芯片控制外部中断0,这样A/D转换完毕之后会执行INT0子程序。外部中断0子程序里放读取A/D转换结果的程序和启动D/A的程

- 2 -

接口技术综合实验

序。这样,实验要求的全部功能就实现了,具体各个模块的设计和扩展功能的实现在后面会讲到。下面是程序框图。

2.2 电路各部分的设计

2.2.1 键盘程序的设计

键盘程序作为主程序无限循环运行,程序不停的扫描是否有按键按下,如果有则再判断键号,然后将键号存入内存缓冲单元中,供显示程序和温度比较程序使用。具体源程序如下:

/*30H,31H,32H,33H从左到右分别存放4个数码管要显示的数据*/

KL:

KP:

MOV JNZ AJMP R5,#02H LK1 KP ;消抖,调用显示程序来延迟12MS ;循环存数计数器 ;判断是否有按键按下 ;如果有按键按下,则进入消抖环节LK1 LCALL KS1 LCALL DIR LCALL DIR LCALL DIR LCALL DIR LCALL KS1 JNZ AJMP

MOV LK2 KP R3,#0FEH ;R3存列选码

单片机综合实验报告

;确实有按键按下则进入判断键号环节LK2 LCALL DIR LK1: LK2:

- 3 -

接口技术综合实验

MOV MOV MOV MOV R4,#00H A,R3 DPTR,#0FF7EH ;从C口读入状态,然后进入下面的判断键号的程序 ;0行首键号 ;R4为列号计数器 LK4: DPTR,#0FF7CH ;往A口赋列选码 MOVX @DPTR,A MOVX A,@DPTR LCALL DIR MOV AJMP MOV AJMP MOV AJMP MOV AJMP MOV JNB RL MOV LJMP

ADD

CLR Acc.0,LONE A,#00H LKP Acc.1,LTWO A,#04 LKP Acc.2,LTHR A,#08 LKP Acc.3,NEXTL A,#12 LKP R4 A,R3 A ;列计数器加一,如果按键不在此列,判断下一列 ;如果到最后一列,则重新开始整个程序 ;将列选码指向下一列 ;开始判断下一列 ;跳到LKP则表明已经找到按键,将此时的A和R4相加则得到;按键号

;如果键值大于等于10则不将键值存入内存单元,实现了扩展;功能 ;3行首键号 ;2行首键号 ;1行首键号 LZERO: JB LONE: JB LTWO: JB LTHR: JB NEXTL: INC Acc.3,KP R3,A LK4 A,R4 C LKP: CJNE

XU:

XU1:

LK3:

JC PUSH LJMP A,#10,XU XU1 KL Acc ;A入栈,暂时存起来 ;判断按键是否松开,松开后再执行存数 LCALL DIR LCALL KS1 JNZ LK3

- 4 -

接口技术综合实验

LCALL DIR LCALL DIR LCALL DIR LCALL KS1 JNZ DJNZ POP LJMP

LJMP

MOV

MOV

MOV

CPL

ANL

RET LK3 R5,NEXT2 31H KL 30H KP ;循环执行键盘程序 ;控制循环存数 ;若R5减1不为0则用POP指令将前面入栈的键值存入;30H中 ;否则存入31H中 LCALL DIR ;消抖,调用显示程序来延迟12MS NEXT2: POP KND: KS1:

/*判断是否有按键按下的子程序*/ DPTR,#0FF7CH A,#00H ;将A口全置零,然后读取C口的状态 MOVX @DPTR,A DPTR,#0FF7EH ;读取C口的状态 A ;A取反,这样如果有按键按下则A不为零,否则为零 ;屏蔽掉无用的高4位 MOVX A,@DPTR A,#0FH

2.2.2 显示程序的设计

显示子程序即键盘程序中所调用的DIR,每调用一次显示子程序,程序就动态轮流显示四个内存缓冲单元的值各一次,具体源程序如下:

/*显示子程序,从左至右4个数码管轮流显示一次,执行时间大约为4MS*/ DIR:

LD0:

LD1:

PUSH CLR SETB MOV MOV MOV MOV MOVX MOV Acc RS1 ;更换工作寄存器区,达到现场保护的目的 RS0 R0,#30H ;内存显示单元指针 R3,#0FEH ;位选码 A,R3 DPTR,#0FF7CH @DPTR,A A,@R0 - 5 -

接口技术综合实验

MOV

MOVC

MOV

MOVX

LCALL

MOV

JNB

INC

RL

MOV

AJMP

OUT1: CLR

CLR

POP

RET

DEL1MS:PUSH

SETB

CLR

MOV

DL1: MOV

DL2: DJNZ

DJNZ

CLR

SETB

POP

RET

DPTR,#1000H ;1000H为段码表首地址 A,@A+DPTR ;查表找到相应的段码 DPTR,#0FF7DH @DPTR,A DEL1MS ;延迟1MS保证余辉足够 A,R3 Acc.3,OUT1 ;如果显示到最后一位就退出显示 R0 A ;如果没有,则显示下一位 R3,A LD1 RS1 ;退出子程序之前须将工作寄存器区还原 RS0 Acc Acc RS1 ;更换工作寄存器区,达到现场保护的目的 RS0 R6,#4 R5,#125 R5,DL2 R6,DL1 RS1 ;退出子程序之前须将工作寄存器区还原 RS0 Acc

2.2.3 定时器中断子程序的设计

为了产生1S的中断,我将定时器设置为100MS中断一次,10次中断之后则为1S,然后再执行子程序内容,即启动A/D转换。具体源程序如下:

IT0P:

PUSH PUSH PUSH CLR CLR MOV MOV DPH DPL PSW RS1 RS0 TL0,0B0H TH0,#3CH ;保护状态字,即保护寄存器区 ;计数器赋初值

- 6 -

接口技术综合实验

OUT2:

DJNZ MOV MOVX MOV POP POP POP RETI R2,OUT2 DPTR,#7FF8H @DPTR,A R2,#10 PSW DPL DPH ;1S之后才执行语句 ;启动A/D转换 ;恢复寄存器区

2.2.4 外部中断0程序的设计

这当A/D转换完毕后,会产生INT0中断,中断子程序里放读取A/D转换结果、比较温度、和D/A输出的程序,具体源程序如下:

INT0P: PUSH

PUSH

PUSH

PUSH

MOV

MOVX

MOV

ANL

MOV

MOV

SWAP

ANL

MOV

MOV

MOV

MUL

ADD

CLR

SUBB

JC

SJMP

RESC: CPL

ADD

OUT3: MOV

MOVX DPH ;待A/D转换完毕后触发此中断程序,然后执行 ;读A/D结果和D/A的功能 DPL Acc PSW DPTR,#7FF8H A,@DPTR 40H,A A,#0FH 33H,A A,40H A A,#0FH 32H,A A,30H B,#10 AB A,31H C A,40H RESC OUT3 A A,#81H DPTR,#0FFBFH @DPTR,A ;保护寄存器区 ;读取A/D转换结果 ;将转换结果暂时存入40H中,以备后面调用 ;低4位存入33H ;高4位存入32H ;将键盘输入的值组合起来才能进行运算 ;将输入的10进制数转换为16进制数,然后进行后面的;运算 ;高位乘以10加上低位,存入内存后即为16进制数 ;将进位清零,以免影响判断结果 ;设定值-温度测量值 ;如果为正则直接输出,如果为负,则运算后再输出 ;A取反加1后得到差值的绝对值 ;A再加80H即让D/A从2.5V开始输出 ;A6口连接D/A的片选端 ;D/A输出

- 7 -

接口技术综合实验

POP POP POP POP RETI PSW Acc DPL DPH

2.2.5 扩展功能的实现

上面各个模块的程序已经包含了扩展功能,这里再单独拿出来解释一下。

扩展功能1:前两位数码管以十进制方式显示设定的温度值。

这个功能很容易实现,因为显示程序只显示输入的数据,输入的是10进制书显示的自然也就是10进制数,但是因为温度比较的时候都是以16进制数比较的,所以在温度比较的时候要将输入的10进制数转换成16进制数后再进行比较,具体程序如下:

MOV

MOV

MUL

ADD

A,30H B,#10 AB A,31H ;将高位存入A中 ;高位乘以10加上低位,存入内存后即为16进制数 ;加上低位

扩展功能2:输入设定温度值的时候只能输入0~9这10个十进制数,按其他按键单片机不响应。

要实现这个功能需要在键盘程序中修改程序,我的方法是用一个比较语句,在每次计算出键号后判断键号是否大于9,如果大于9则不将键号存入内存单元中,否则才存入内存中。具体程序如下:

LKP:

ADD CLR JC PUSH A,R4 C ;这句表明计算出键号了,且存入了A中 ;进位C清零 ;如果A小于10,则C置1 ;若C为1,即A小于10,则存储键号 ;否则直接重新执行键盘程序,即不存键号 ;A入栈,暂时存起来 CJNE LJMP A,#10,XU XU1 KL Acc XU: XU1:

- 8 -

接口技术综合实验

第三章 实验感想

3.1 实验感想

本次实验让我学到了很多东西,从最初的设计构思到各个模块程序的设计,然后再将各个模块连接起来,每个环节都让我学到了很多知识,让我对这学期学过的单片机有了更深层次的了解,并且锻炼了我的查阅资料的能力,这对以后的学习和研究都是有很大帮助的。这次的综合试验对我有很大的锻炼价值,让我知道了理论与实际是由一定距离的,这次的各个模块的程序虽然在以前的单片机实验中都做过,但是拼一起之后会出现好多问题,有些问题是在编程的时候很难意识到的,只有在实际调试的时候才会碰到,所以在今后的学习中一定要脚踏实地,不能只有理论,更应该有实践,这样才能学到更多更有实际作用的知识。

- 9 -

更多相关推荐:
单片机实验报告

通信与信息工程学院20xx20xx学年第二学期实验报告课程名称单片机原理及应用专业班级学号学生姓名指导教师日期20xx年4月15日1实验一单片机汇编语言程序设计一实验目的1学习MedWin或Keilc51仿真软...

单片机实验报告综合

单片机原理及应用实验报告姓名方恩山学号63120xx40110专业通信工程实验性质设计性班级20xx级1班指导教师许强实验项目名称万用交叉口交通灯控制器实验实验日期16周18周实验成绩实验评定标准一实验目的通过...

单片机实验报告

目录一实验一1二实验二7三实验三11四实验四15实验一定时计数器验证实验一实验目的熟悉定时计数器T0的特点学会合理选择定时方式并能根据具体情况结合软件的方式定时二实验设备及器件IBMPC机一台PROTEUS硬件...

单片机实验报告(基于51单片机)

滨江学院微机原理与接口技术综合实验报告题目:简易电子琴设计学号:学生姓名:XXX院系:滨江学院专业:指导教师:二OXX年月日【摘要】由于音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用…

单片机综合应用实验设计报告

目录广西大学行健文理学院单片机应用综合实验报告题目基于STC89S52单片机开发板的功能设计与应用学部班级姓名学号指导教师撰写日期2目录目录第一章课程设计要求及功能说明111课程设计要求112课程设计电路及功能...

单片机综合实验报告

摘要单片机应用技术课程为一门理论与实践相结合的课程本课程安排的实验旨在培养学生软硬件开发能力用编程语言及硬件设备实现串并行通讯计数定时ADDA等硬件接口的功能进一步加深对常用硬件芯片的了解和应用以及学习用单片机...

单片机综合实验报告

单片机综合实验报告题目秒表班级姓名学号指导老师时间20xx1214一实验内容应用AT89C51的定时器设计一个3位的LED数码显示作为秒表显示时间为0099s能显示到01秒二实验电路及功能说明设计了一个具有开始...

单片机综合实验报告 (2)

单片机综合实验单片机综合实验报告题目模拟真实交通灯班级10班姓名学号指导老师时间一实验内容用8255芯片的PAPB口低四位做输出口控制十二个发光二极管燃灭模拟十字路口交通灯管理并利用数码显示器进行倒计时显示采用...

单片机综合实验报告

单片机综合实验报告题目班级姓名学号指导老师时间模拟真实交通灯0308406一实验内容用8255芯片的PAPB口低四位做输出口控制十二个发光二极管燃灭模拟十字路口交通灯管理并利用数码显示器进行倒计时显示采用单片机...

单片机实验报告

单片机实验报告实验二并行口输入输出实验循环彩灯控制任务一1实现的功能P1口接8个开关P0口接8个灯每个开关对应一个灯实时读取开关状态开关闭合时灯亮开关断开时灯灭2硬件原理图3流程图4程序ORG0000H程序入口...

单片机实验报告

一实验目的1熟练单片机的结构组成及原理2软硬兼施采用硬件电路的焊接搭建和软件的设计调试下载亲自动手对硬件系统加深了解的同时软件编程也能得心应手3了解如何从硬件和软件上分析问题排除故障二实验内容MCS51MCS5...

单片机最小系统实验报告

单片机原理及应用技术设计课题系别专业学号姓名指导老师课程设计报告20xx年6月单片机最小系统流水灯的设计一单片机简介由于单片机技术在各个领域正得到越来越广泛的应用世界上许多记成电路生产家相继推出各种类型的单片机...

单片机综合实验报告(32篇)