精编完整版单片机毕业论文报告40硬件图源程序41.docx

上传人:b****1 文档编号:453691 上传时间:2022-10-10 格式:DOCX 页数:20 大小:140.97KB
下载 相关 举报
精编完整版单片机毕业论文报告40硬件图源程序41.docx_第1页
第1页 / 共20页
精编完整版单片机毕业论文报告40硬件图源程序41.docx_第2页
第2页 / 共20页
精编完整版单片机毕业论文报告40硬件图源程序41.docx_第3页
第3页 / 共20页
精编完整版单片机毕业论文报告40硬件图源程序41.docx_第4页
第4页 / 共20页
精编完整版单片机毕业论文报告40硬件图源程序41.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

精编完整版单片机毕业论文报告40硬件图源程序41.docx

《精编完整版单片机毕业论文报告40硬件图源程序41.docx》由会员分享,可在线阅读,更多相关《精编完整版单片机毕业论文报告40硬件图源程序41.docx(20页珍藏版)》请在冰豆网上搜索。

精编完整版单片机毕业论文报告40硬件图源程序41.docx

精编完整版单片机毕业论文报告40硬件图源程序41

中原工学院

《单片机与接口技术》课程设计报告

 

 

目录

一、引言······························3

2、设计任务··························3

3、硬件电路图的设计··················5

4、软件的编写·······················10

1)程序流程图······················11

2)实验源程序······················15

五、心得体会·························26六、参考文献························27

七、附录····························28

1、引言

单片微型计算机简称单片机,又称微控制器(MCU),它的出现是计算机发展史上的一个重要的里程碑,它以体积小、功能全、性价比高等诸多优点独具特色,在工业控制、尖端武器、通信设备、信息处理、家用电器等嵌入式应用领域中独占鳌头。

本次课设采用的STC89C51单片机是51系列单片机的一种代表,目前51系列单片机是国内目前应用最广泛的一种单片机之一。

单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计的基础课。

本次课程设计主要目的是为了更进一步学会使用和了解单片机,增强学生的动手能力,让我们更透彻的将平时所做的实验吃透学懂。

2、设计任务

一、所需设备:

伟福系列单片机仿真实验箱、PC机及实验指导书

二、设计内容

题目1:

数据采集系统

  从键盘中任意选出6个键作为系统的功能键和LED数码显示一起组成一个单片机键盘显示系统(小的监控程序),并通过实验箱上的接口芯片实现相应的功能(注:

这些硬件电路全在实验箱上,但自己要能设计)。

要求设计相应的硬件电路,并画出实现题目要求功能的流程图,编写、调试相应的程序。

编程要求:

  开机后显示班级号(4位),学号(2位)(复位状态),然后通过功能键设置参数,而后运行主程序。

6个功能键为:

设定

加一

减一

确定

运行

     

 换位

设置参数步骤:

复位状态下,按下“设定”键后6位显示的状态为:

显示设定值              显示参数行号

 

8

8

8

8

0

1

 

四位设定值中的某一位小数点亮(或者整个值闪烁),表示对该位进行设置。

用“加一”、“减一”键改变该位的值,

用“换位”键改变设置位(由左到右),

用“确定”键保存设定的值。

本次设计要求能设置四行参数即可,每行参数在0-9999之间,当连续按“确定”键时,对应的行号(上图)从01-04循环变化。

按下“运行”键,执行数据采集程序(参考实验箱相应的硬件电路,但要求不同),采集模拟量0-5V,显示对应的物理量在0000-最大值之间变化。

5V对应的显示值(最大值)是多少可以在设定时通过某行(四行参数中的一行)参数设置的数值选择确定。

三、硬件电路图的设计

实验中主要用STC89C51单片机做处理器,首先的确保一个单片机最小系统,所以首先绘制的是单片机最小系统的电路图,下图是上次做小车时绘制的最小系统电路图:

要用到键盘和六个数码管显示,故需对其接口进行扩展,所用的器件有74HC138与P2口的高四位相连接,进行译码,译码之后和锁存器

74LS373所存P0口的位数相与,对数码管的段码和位码进行片选选定,同时也可对键盘的读取接口和数据采集芯片进行片选选通,从而给定一个确定的地址,这样单片机就可以与外接电路进行数据的采集,键盘的判定,及数字的显示等工作。

下图为74HC138的连接电路

其中P2.7接138的E3脚,E1和E2都接在低电平上,P2.6/P2.5/P2.4分别和138的C/B/A引脚连接,这样地址片选就可以达到从8000H到FFFF的地址。

下图为单片机P0口接74LS373锁存器

数码管段码接口和位码接口都用的是74LS374芯片,片选信号由138译码器和74LS373锁存器所给地址决定,键盘的读取用芯片74LS245芯片来扩展,本电路主要是参考平时所作实验,及实验的电路连接来设计的。

下图为段码接口,位码接口及键盘读入口的接线电路:

键盘及数码管显示电路设计好之后,接下来要设计的就是数据采集系统的电路,由于我选的题目是任务一里的第一个任务,所以数据采集系统使用的的是AD转换,将5V的电压通过电位器的调节,也就是模拟量通过AD0809芯片转换成数字量,在单片机上显示出来。

下图即为AD0809与单片机的接口电路:

AD0809其中D0—D7与P0口相接,由P0口的数据选择哪一路的输入,EOC与单片机P3.2口相连接,转换完后产生中断延时让其显示,片选线由138的Y1输出口和单片机的读口即P3.7经过一个或非门相连。

这样0809的地址即为9000H,由P0口给定的值决定是IN口口的输入,试验箱上只有两个输入口,我在编程时选定IN0口输入,IN0口接一个连了五伏电压的电位器。

4、软件的编写

软件所要实现的功能:

1、开机后显示班级、学号10-212;

2、用的是实验箱键盘最后一排的六个键,依次为:

“设定”“加一""减一""换位””确定“”运行“;

3、按“设定”键,默认第一位闪烁,此时按“加一”和“减一”键可以调整数值;

4、设定完一位后,按“换位”键可以对下一位进行设定;

5、四位都设定完之后,按“确定”键,去闪烁,并将参数01下设定的值保存;

6、再按下“确定”键,跳至参数02,此时可以依照步骤3对其进行设置;

7、参数01、02、03、04设定好之后,可以按“确定”键对设定的值查询;

8、在不同的参数下,按下“运行”键可以将以该设定值最大值,0为最小值的AD转换结果显示到前四位数码管上。

明确软件所要达到的目的之后,首先得先清楚试验中数码管和键盘的读入地址和数码管的位码地址,为编程序确定键值及参数会起到一个直接的作用,只有清楚这些了才能随心所欲的设定没一个功能键的位置。

(1)程序流程图

流程图是一个程序的主干,也就是说程序是建立在一个流程图的主体框架之上的,有流程图程序才可以有条理的进行编写.

下面为实验程序的流程图

 

N

 

Y

N

 

 

 

 

 

(2)实验源程序

WEIEQU08002H;位

DUANEQU08004H;段

INEQU08001H;键盘读入口

CS0809EQU09000H

LEDBUFEQU30H;显示缓冲区

CANSHUEQU51H;参数1234

ORG0000H

LJMPSTART

ORG0020H

START:

MOV25H,#00H

MOVLEDBUF,#01H;班级、学号的序码

MOVLEDBUF+1,#00H

MOVLEDBUF+2,#012H

MOVLEDBUF+3,#02H

MOVLEDBUF+4,#01H

MOVLEDBUF+5,#02H

MOV36H,#00H

MOV40H,#00H;参数1缓冲区

MOV41H,#00H

MOV42H,#00H

MOV43H,#00H

MOV44H,#00H;参数2缓冲区

MOV45H,#00H

MOV46H,#00H

MOV47H,#00H

MOV48H,#00H;参数3下缓冲区

MOV49H,#00H

MOV4AH,#00H

MOV4BH,#00H

MOV4CH,#00H;参数4下缓冲区

MOV4DH,#00H

MOV4EH,#00H

MOV4FH,#00H

MOV50H,#00H

MOVCANSHU,#01H;参数

L2:

MOVR0,#LEDBUF;显示班级、学号

LCALLDISPLAYLED1;显示子程序,R0为参数

LCALLTESTKEY;判断“有效键”是否按下?

JNB20H.0,L2;没有键按下,则继续显示班级、学号

L3:

MOV25H,#00H

MOVA,CANSHU

MOVB,#04H

MULAB

ADDA,#3CH;将参数首地址存入R0

MOVR0,A;第一次有键按下默认显示参数1下设定的值,即:

显示从40H单元开始的内容

LCALLDISPLAYLED2;调用设定参数显示子程序

LCALLTESTKEY;检测是否有键按下

JNB20H.0,L3;没有键按下,则继续显示参数1下设定的值

LCALLPAZ;有键按下,则判断运行键是否按下

CJNER5,#05H,QD1

LJMPSD;R5=5

QD1:

LJMPS44

SD:

SETB20H.1

MOV36H,#00H

MOVA,CANSHU

MOVB,#04H

MULAB

ADDA,#3CH;通过参数来选择设定值的缓冲区

ADDA,36H

MOVR0,A

H1:

MOVA,CANSHU

MOVB,#04H

MULAB

ADDA,#3CH

ADDA,36H

MOVR0,A;R0指向闪烁寄存字节处

JB20H.1,S1

MOV@R0,#10H

SETB20H.1

LJMPDS1

S1:

MOV@R0,90H;将闪烁字节的值显示出来

CLR20H.1

DS1:

MOVA,CANSHU

MOVB,#04H

MULAB

ADDA,#3CH

MOVR0,A;R0指向显示首区

LCALLDISPLAYLED2

LCALLTESTKEY

JNB20H.0,H1

LCALLPAZ

CJNER5,#02H,S11;换位

MOVA,CANSHU

MOVB,#04H

MULAB

ADDA,#3CH

ADDA,36H

MOVR0,A

MOV@R0,90H

INC36H

HW1:

MOVA,CANSHU

MOVB,#04H

MULAB

ADDA,#3CH

ADDA,36H

MOVR0,A

MOVA,36H

CJNEA,#04H,H1

MOV36H,#00H

LJMPHW1

S11:

CJNER5,#04H,S22;加1

INC70H;闪烁值加1

MOVA,90H

CJNEA,#0AH,H1

MOV90H,#00H

LJMPH1

S22:

CJNER5,#03H,S33;减1

DEC70H;闪烁值减1

MOVA,70H

CJNEA,#0FFH,H2

MOV90H,#09H

H2:

LJMPH1

S33:

CJNER5,#01H,H2;确定1(去掉闪烁,并将该参数下的设定值保存到对应的缓冲区)

MOVA,CANSHU

MOVB,#04H

MULAB

ADDA,#3CH

ADDA,36H

MOVR0,A

MOV@R0,90H

LJMPL3

S44:

CJNER5,#01H,W1;确定2(将参数加1,并将该参数下的设定值显示到数码管上)

INCCANSHU;参数加1,指向下一个参数

MOVA,CANSHU

CJNEA,#05H,L22

MOVCAN

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1