大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx

上传人:b****1 文档编号:5874716 上传时间:2023-05-05 格式:DOCX 页数:51 大小:843.21KB
下载 相关 举报
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第1页
第1页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第2页
第2页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第3页
第3页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第4页
第4页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第5页
第5页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第6页
第6页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第7页
第7页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第8页
第8页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第9页
第9页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第10页
第10页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第11页
第11页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第12页
第12页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第13页
第13页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第14页
第14页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第15页
第15页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第16页
第16页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第17页
第17页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第18页
第18页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第19页
第19页 / 共51页
大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx

《大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx》由会员分享,可在线阅读,更多相关《大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx(51页珍藏版)》请在冰点文库上搜索。

大工14秋《单片机原理及应用》大作业题目及要求Word文件下载.docx

二、时钟的基本原理分析

利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。

为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。

由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。

三、时钟设计分析

针对要实现的功能,采用AT89S51单片机进行设计,AT89S51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。

这样,既能做到经济合理又能实现预期的功能。

在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。

程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。

运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。

首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。

这是前期准备工作。

第二部分是硬件部分:

依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。

第三部分是软件部分:

先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。

第四部分是软件画图部分:

设计好电路后进行画图,包括电路图和仿真图的绘制。

第五部分是软件仿真部分:

软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。

第六部分是硬件实现部分:

连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。

最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!

四、时钟的实现

A.电路设计

1.整体设计

此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:

显示电路用8个共阴数码管分别显示,星期(年份),小时、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。

单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。

电路的总体设计框架如下:

2.分块设计

模块电路主要分为:

输入部分、输出部分、复位和晶振电路。

2.1输入部分

输入信号主要是各种模式选择和调整信号,由按键开关提供。

以下为输入部分样例:

在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。

对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:

2.2输出部分

本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。

本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:

闹铃由P2.6端输出,模块如下:

2.3晶振与复位电路

本实验单片机时钟用内部时钟,模块如下:

复位电路为手动复位构成,模块如下:

各模块拼接组合,电路总体设计图如下

B.程序设计

B.1程序总体设计

本实验用汇编程序完成.

程序总的流程图如下:

3.

B.2程序主要模块

B.2.1延时模块

数码管显示动态扫描时,用到延时程序,这里使用延迟1ms的程序,此程序需反复调,除数码管动态扫描外,数码管的闪烁提示,以及音乐模块也用到了延时,只是延时的长短不同罢了,在此不再赘述。

B.2.2中断服务程序

本实验中,计数器T0,T1中断都有运用,其中T0中断为时钟定时所用,T1中断用于音乐播放。

T0的定时长度为0.01s,工作于方式1,计数1次,时长1us,故计数器计数10000次,进入中断,计数初值为65536-10000=55536=#0D8F0,装满定时器需要0.01s的时间,从而100次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。

包括日期显示的功能也是如此。

另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。

基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。

计数器T1工作于方式1,当调用响铃程序时,其计数功能开启,为音乐音调不同频率的方波的形成,提供延时。

其中断服务程序就是根据音调改变音乐方波输出口电平的高低,用语句CPL实现。

中断服务程序中日历的实现较为复杂,要考虑平年,闰年,特殊的2月,每月的天数的不尽相同。

具体的逻辑判断方法为:

首先,要考虑年份是不是闰年,闰年的判断方法是:

将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;

若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。

只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。

其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。

日历进位判断流程图如下:

本实验用8个数码管,刚好能显示年,月,日,扫描显示与时间的扫描显示类似。

年比较特殊,由两个寄存器存储,个位,十位为0时,表明年数能被100整除,若此时千位,百位

组成两位数能被4整除,则年数被400整除,为闰年。

若十位,个位组成两位数能被4整除,则年数能被4整除,为闰年。

B.2.3主程序

主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用相关程序。

B.2.4显示子程序

8个数码管轮流进行显示,分别显示1ms,依赖人的视觉暂留效应,给人以数码管持续高亮的错觉。

日期的显示,秒表的显示,倒计时的显示,调闹铃,调定时的显示,闪烁的显示程序与以上的的扫描相似,有的以子程序的方式出现,通过子程序调用语句ACALL调用;

有点直接嵌套在相应的程序里面,顺序执行,或者用调转语句AJMP调用。

C程序调试及仿真

本程序通过Keil单片机开发平台实现程序的编译,链接,生成HEX文件。

通过Keil和硬件仿真平台Proteus的联合,可以将设计效果仿真出来,根据效果,有目的的改变设计,优化程序。

利用Proteus仿真实验过程截图:

普通时间显示模式仿真图,表示:

星期一9点10分38秒

五,总结

本文先从整体论述了设计电子钟的大致思路,然后再采用划分模块的方法,将硬件电路划分为开关电路,显示驱动电路,以及数码管电路等,而软件部分,则依据要实现的功能,划分为:

闹钟的声音程序,时间显示程序,日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。

最后将各模块集成为一个整体,合成一个多功能的电子钟。

题目二:

数字式电子秒表设计

设计一个基于51单片机的数字式电子秒表,能够实现正常秒表的所有功能,包括启动,暂停,复位等。

(1)首先介绍课题背景,包括数字式电子秒表的发展、应用情况以及特点、原理,然后对51单片机的特点、功能引脚等进行简介;

一、设计目的

电子技术课程设计是电子信息工程系三个专业的公共课程设计,是模拟电子技术、数字电子技术课程结束后进行的教学环节。

其目的是:

1、培养理论联系实际的正确设计思想,训练综合运用已经学过的理论和生产实际知识去分析和解决工程实际问题的能力。

2、学习较复杂的电子系统设计的一般方法,提高基于模拟、数字电路等知识解决电子信息方面常见实际问题的能力,由学生自行设计、自行制作和自行调试。

3、进行基本技能训练,如基本仪器仪表的使用,常用元器件的识别、测量、熟练运用的能力,掌握设计资料、手册、标准和规范以及使用仿真软件、实验设备进行调试和数据处理等。

二、总体设计

1工作流程图

图1工作流程图

图1中1单元为用集成与非门74LS00构成的基本RS触发器。

属低电平直接触发的触发器,有直接置位,复位的功能。

图1中2单元为集成与非门74LS00构成的单稳态触发器,它的职能是为计数器提供清零信号。

图1中555定时器构成了多谐振荡器,是一种性能较好的时钟源。

图1中4单元74LS160构成的计数器/分频器

图1中5单元译码显示单元

2原理图:

图1为电子秒表的原理图,按功能可分为5个单元电路进行分析。

其中单元1为基本RS触发器;

单元2为单稳态触发器;

单元3为时钟发生器;

单元4为计数器和分频器;

单元5为译码显示单元。

图2原理电路图

本电路中使用两个基本RS触发器提供置位、复位、和清零信号,555定时器提供时钟脉冲信号,三块74LS160作为译码/分频单元,有效、简洁地完成了秒表所具备的所有功能(清零、启动计时、暂停计时及继续计时)。

三、单元电路设计

1基本RS触发器

图中单元1为用集成与非门74LS00构成的基本RS触发器。

逻辑符号基本RS触发器电路图

基本RS触发器功能表:

表1基本RS触发器功能表

R

S

Q

1

保持

不确定

它的一路输出Q作为单稳态触发器的输入,另一路输出Q作为与非门5的输入控制信号。

按动开关

,则门1输出Q非为1;

门2输出Q为0;

复位后Q、Q非状态保持不变。

再按动

,则Q由0变为1,门5开启,为计数器启动作好准备。

Q非由1变为0,送出负脉冲,启动单稳态触发器工作。

基本RS触发器在电子秒表中的职能是启动和停止秒表的工作。

图374LS00引脚及内部结构表

2时钟发生器

555定时器构成了多谐振荡器,是一种性能较好的时钟源。

调节电位器

,使在555输出端3获得频率为10—15Hz的矩形波信号,当基本RS触发器Q为1时,门5开启,此时脉冲信号通过门5作为计数脉冲加于计数器的计数输入端CP。

图4为555定时器管脚分布图。

图4555引脚图

3计数器及分频器

74LS161构成的计数/分频器,其中计数器1作为十分频器,对555输出的矩形波信号进行十分频,得到的信号,即在其进位输出端取得周期为0.1s的矩形脉冲信号,作为计数器2的时钟输入信号。

同时计数器2的时钟输入信号又经过十分频得到周期为1s的矩形脉冲信号,作为计数器3的时钟输入信号。

译码显示单元:

本部分由CC4511译码器和七段显示共阴极数码管构成。

在其引脚当中A、B、C、D为BCD码输入端,a、b、c、d、e、f、g为译码输出端,输出“1”有效,用来驱动LED数码管。

四、调试

1基本RS触发器的调试

,检查门1输出Q非是否为1,门2输出Q是否为0,

复位后这两个状态能否保持,再按动开关

,Q是否由0变1,Q非是否由1变0,否则检查卡观和与非门

2时钟发生器的测试

用示波器观察输出电压波形并测量其频率,调节

,使输出波形频率为10-15Hz,若无波形输出,检查555定时器。

3计数、译码、显示单元的测试

测量计数器功能和分频器功能,看输出频率是否为10倍关系,各段测量显示管的功能是否正常。

4整体测试

先按按钮

,此时电子秒表不工作,再按一下

,则计数器清零后变开始计时,观察数码管显示计数情况是否正常。

如不需要计时或暂停时,按一下开关

,立即会出现暂停状态。

5电子秒表准确度的测试

利用电子钟或手表的计时对电子秒表进行校准,若时间不准,调节

五、电路测试及测试结果(测试方法、测试结果、性能分析)

六、设计总结

这是我们第一次做课程设计,所以不免会感到一些吃力,动手实践和创新能力对于我们理工课院校的学生而言显得相当重要,通过这次的课程设计我发现了自己还存在诸多方面的不足,理论知识终究不是实践能力,在实践面前一系列的问题会突发出现,但是没有扎实的理论知识,实践能力又无从存在,二者可谓缺一不可,所以在以后的学习工作中,学习和动手要两手抓,而且两手都要硬,不能留下软肋,让问题钻了空子。

题目三:

基于单片机的温度采集系统设计

设计一个基于51单片机的温度采集系统,测量的温度分辨率为0.5℃。

(1)首先介绍课题背景,包括温度采集系统的发展、应用情况以及特点、原理,然后对51单片机的特点、功能引脚等进行简介;

一、单片机已在各行业得到广泛应用,为适应更多的应用领域,厂家采取了在一块单片机芯片上集成多种功能部件和大容量存储器的方法。

因而,整个应用系统不需要扩展,而体积变小、可靠性增高,使单片机成为真正意义上的单片机系统。

二、总体方案设计

1课题的意义

课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。

进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。

在设计中我们可以消化与巩固《单片机及接口技术》课程所学知识;

理论联系实际,学会用理论知识解决实际问题;

培养设计能力,初步掌握设计的一般步骤与方法

2系统整体硬件电路

三、系统软件算法设计

1程序流程图

1.1主程序图

N

Y

N

N

1.2子程序图

Y

2主程序

ORG0000H

LJMPMAIN

ORG001BH

LJMPPINT1

MAIN:

MOVP1,#0FFH

ACALLCSH;

调用初始化程序

MOVA,P1

XRLA,#03H;

判断是否有键按下

JNZMAIN;

没有就返回

ACALLDL20MS;

调用延时20MS程序

MOVA,P1

XRLA,#03H;

再次判断是否有键按下

JNZMAIN

MOVTMOD,#20H;

T1方式2、定时模式

MOVPCON,#00H;

SMOD=0

MOVTH1,#0F4H

MOVTL1,#0F4H

SETBTR1

MOVIE,#90H;

开中断,允许串行口中断

MOVSCON,#50H;

串行口方式1,可以接收和发送

CLRTRN_STA;

设置本机为发送命令字状态

CLRRCV_STA;

设置本机为接收命令字状态

RET

3键盘扫描子程序

NEXT1:

CJNEA,#01H,NEXT2

LCALLK1;

调用K1键的处理程序

CJNEA,#02H,NEXT1

LCALLK2;

调用K2键的处理程序

NEXT2:

CJNEA,#02H,MAIN

ACALLK2

END

;

延时20MS的程序

DL20MS:

MOVR2,#10

DL20MS1:

MOVR3,#250

DL20MS2:

NOP

DJNZR3,DL20MS2

RET

;

以下初始化程序

CHS:

MOVR2,#03H

DH:

MOVP0,#3FH

MOVP2,#00H

DELAY:

DJNZR3,DELAY

INCA

DJNZR2,DH

RET

4检测温度子程序

ORG0100H

Check_Temperature:

data_ACQUR

ACALLreset_pulse;

发送复位脉冲

MOVA,#0CCH

ACALLwrite_byte;

sendskipROMcommand

MOVA,#44H

初始化温度模块

JNBP1.4,$;

读DS18B20状态

ACALLreset_pulse

ACALLwrite_byte

MOVA,#0BEH

ACALLwrite_byte;

sendscratchpadcommand

ACALLread_byte;

readeeprombyte0

MOVR7,A;

存储LSB在R7中

ACALLread_byte

MOVR6,A;

存储MSB在R6中

ACALLreset_pulse

芯片初始化的脉冲

reset_pulse:

SETBP1.4

CLREA

CLRP1.4

MOVR2,#250;

delay500us

DJNZR2,$

SETBP1.4

MOVR2,#20;

delay40us

DJNZR2,$

CLRC

ORLC,P1.4

JCreset_pulse

MOVR2,#80;

注意这两条指令是否真的需要

5读数据子程序

READ_BYTE:

MOVR3,#8

READ1:

MOVR5,A

MOVC,P1.4

MOVA,R5

MOVR2,#30

RRCA

DJNZR3,READ1

3.5写数据子程序

WRITE_BYTE:

WRITE:

JCWRITE1

CLRP1.4

MOVR2,#30

DJNZR3,WRITE

WRITE1:

NOP

DJNZR3,WRITE

6串口中断子程序

SEND_COM:

MOVA,R2

MOVSBUF,A

SRT--INT:

POPACC

JNBRI,SENT;

非接收中断,转去发送处理

CLRRI;

清除接收标志

JBRCV_STA,RCV_DAT;

转去接收数据处理

MOVA,SBUF;

以下为接收命令

CJNEA,#ASK_RCV,CYM01;

非“请求接收”命令

MOVR6,#LEN_RCV;

是“请求接收”命令,准备接收数据

MOVR0,#RCV_BUF;

本机接收数据区首地址

SETBRCV_STA;

置本机为接收数据状态

MOVA,#RCV_RDY;

本机“接收准备就绪”

MOVSBUF,A;

回送“接收准备就绪”命令

AJMPRETURN

COM01:

CJNEA,#ASK_TRN,COM02;

非“请求发送”命令

MOVR7,#LEN_TRN;

是“请求发送”命令,准备发送

MOVR0,#TRN_BUF;

本机发送数据区首地址

SETBTRN_STA;

置本机为发送数据状态

MOVA,#TRN_RDY;

本机“发送准备就绪”

回送“发送准备就绪”命令

CJNEA,#RCV_RDY,COM03;

非“接收准备就绪”命令

是对方的“接收准备就绪”命令,本机发送

MOVR0,#TRN_BUF;

置本机为发送数据状态

MOVA,@R0;

请发送的数据

发送数据

INCR0;

修改发送单元地址

COM03:

CJNEA,#TRN_RDY,NON_COM;

非“发送准备好”命令

MOVR6,#LEN_RCV;

是对方的“发送准备就绪”命令,接收数据

MOVR0,#RCV_BUF

NON_COM:

RCV_DAT:

接收数据

MOV@R0,A;

存储

修改地址

DJNZR6,CONT1;

数据块接受完否?

数据块接收完毕,置本机为接受命令状态

CONT1:

AJMPRETURN

SENT:

CLRTI;

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2