单片机课程设计Word格式.docx
《单片机课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
课程设计报告10页以上
题目二:
温度采集系统
利用单片机实验板上的温度传感器、测量电路和放大电路,将温度传感器所测得的温度值以模拟电压的方式输出给A/D转换器。
A/D转换电路在单片机的控制下进行A/D转换,并将结果送给单片机进行处理。
单片机最终能将测量到的温度值显示出来。
一、系统功能:
1.能将输入的模拟信号经A/D转换后送入给单片机进行处理。
2.能将温度值进行LED动态显示。
3.能用键盘对A/D的采样周期进行控制。
二、下周内将该系统的硬件电路和软件编程完成。
基本保证硬件无误,软件通过仿真。
并交一份设计报告。
三、对应实验室实验开发板相关电路:
1.LED发光二极管显示模块
控制接口连接的是发光二极管的阴极。
因此当控制口为低电压时LED点亮。
2.数码显示
本机数码管显示部分由两个四位共阴极7段数码显示管、1片七段译码器74LS48和一片3-8译码器及相关驱动电路组成,接口是一个8位的接口。
本模块可以用来显示数值等信息。
74LS48是高速的七段译码器。
有四根数据输入口线,及八根译码输出口线。
可用于数码管的驱动中。
74LS138是高速的3~8线反相译码器,当选择某个端口时,该端口输出低电平。
如D2、D1、D0=1,1,1时,Y0~Y6=1;
Y7=0。
控制信号的低四位通过74LS48译码器译码后驱动数码管显示。
4~6位通过74LS138译码器译码后接入数码管的公共线,以实现位选功能,可选项择的位共有8位。
最高位D7为数码管的小数点控制位,通过驱动电路后接入小数点的控制位以实现数码管小数点的控制
数显部分的电路图这里始终粘贴不上,我放在最后的。
例:
数码显示:
8位秒表显示,精度0.01S:
P1口接数码管控制口,P1.7控制小数点,P1.0~1.3输出BCD,P1.4~1.6输出给138控制位选信号,T0定时10毫秒,计时用,T1定时动态扫描时间
Code2:
TIMEHEQU0D8H
TIMELEQU0F0H
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIMER0
ORG001BH
LJMPTIMER1
MAIN:
MOVSP,#50H
MOVTMOD,#21H;
定时器1工作于2方式,自动重装
MOVTH0,#TIMEH
MOVTL0,#TIMEL
MOVTH1,#00H
MOVTL1,#00H
MOVR0,#30H
MOV30H,#70H;
;
显示初值
MOV31H,#60H
MOV32H,#0d50H
MOV33H,#40H
MOV34H,#30H
MOV35H,#20H
MOV36H,#10H
MOV37H,#00H
SETBPT1
SETBET1
SETBTR1
SETBET0
SETBTR0
SETBEA
SJMP$
TIMER0:
MOVR5,#08H;
八位循环8次
MOVR1,#30H;
寄存数据地址
T0LOOP:
MOVA,@R1
ADDA,#01H
MOV@R1,A
PUSHA
ANLA,#0FH
CJNEA,#10,NEXT;
#10
POPA
ANLA,#0F0H
INC01H;
INCR1
DJNZR5,T0LOOP
NEXT:
RETI
////***************////
TIMER1:
;
显示
INC00H;
INCR0
MOVA,R0
CJNEA,#38H,T1NEXT
T1NEXT:
MOVA,@R0
MOVP1,A
3.键盘部分
本矩阵键盘的ROW端接了上拉电阻。
所以可以作为输入信号。
COL线由于没有接上接电阻。
所以只能用来做控制线。
工作过程如下:
ROW线全部输出高电平、COL线全部输出低电平;
读取键盘口的值;
如果发现ROW口非高电平则表示已有按键按下;
改COL线的电平,使其中仅有一线为低电平,依次循环。
当读取到ROW线有低电平时表示对应行列有按键按下。
将键盘输入数值显示出来
KPEQUP2
FAILVALEQU0FFH
MOVKP,#0FH;
KP为键盘接口如P2
NOP
MOVA,KP
CLRC
SUBBA,#0FH
JZKCEND
LCALLDELAY;
延时
MOVKP,#0FFH
MOVA,#07FH
MOVR4,#04
MOVR3,#00H
RLOOP:
MOVKP,A
MOVA,KP;
读取接口值
ANLA,#0FH;
屏蔽高四位。
去掉不可靠数据
SUBBA,#0FH;
查看低四位有数据变化
JNZKEYYES
INC03H;
INCR3;
加列。
1
RRA;
右移。
指向下一列
DJNZR4,RLOOP;
SJMPKCEND;
数据出错
KEYYES:
ADDCA,#0FH;
还原KP上的低四位数据上一句是SUBBA,#0FH
MOVR4,#04H
KEYLL:
RRCA
JNCKEYNEXT
MOVA,R3
ADDA,#04
MOVR3,A
DJNZR4,KEYLL
KEYNEXT:
POPA;
出栈,还原堆栈
MOVA,R3;
返回的键值存于A
MOVB,#10;
送显示数据
DIVAB
MOV5EH,A
MOVA,B
ADDA,#10H
MOV5FH,A
SJMPKEND
KCEND:
MOVA,#FAILVAL
KEND:
DELAY:
延时约20ms
XCHA,R7
XCHA,R6
MOVR7,#100
DEL1:
MOVR6,#100
DEL2:
DJNZR6,DEL2
DJNZR7,DEL1
RET
MOVP1,5FH
MOVA,5FH
XCHA,5EH
MOVTMOD,#20H;
定时器工作于方式0,13位,间隔中断时间大约为8ms
MOVTH0,#00H
SETBPT1;
显示优先级
4.A/D转换部分
采样AD的值,AD的片选用P2.3控制,2.0~2.2采样通道选择控制,AD采样结束标志接P3.5,AD的输出接P0口,P1口接数码管控制,触发开关接外中断源。
对应该部分电路的应用程序为:
EOCEQUP3.5
ADEQU0F0FFH
ORG0003H
LJMPINIT0
ORG0013H
LJMPINIT1
MOVDPTR,#AD
SETBIT0;
为下降沿触发
SETBEX0
SETBIT1
SETBEX1
MOV32H,#50H;
MOVA,#0FFH
MOVX@DPTR,A
WAITAD:
JBEOC,WAITAD
MOVXA,@DPTR
MOVB,#10
ORLA,#70H
MOV32H,A
ORLA,#50H
MOV30H,A
ORLA,#60H
MOV31H,A
CJNEA,#33H,T1NEXT
////****************////
INIT0:
触发按键控制
CLRET0
INIT1:
5.红外温度传感器部分
通过二极管C_D1产生钳压0.7v,送入LM324的负输入脚,红外接收器C_DSin与电阻C_R4分压输入LM324的正输入引脚。
当有红外光线输入给传感器后,使C_DSin的电阻值发生变化,使LM324的8脚输出电压发生了变化。
实现传感功能。
电路图如图。
后页上附有显示部分的电路