资源描述
目 录
第一章 引言
第二章 选题
2、1选题范围
2、2 选题要求
2、3方案选择
第三章硬件电路设计及描述
3、 1、系统各模块
3、2、硬件装备图
3、3.器件参数
3、4 管脚说明
3、5、硬件焊接
第四章 软件设计流程及描述
4、1、软件设计流程图
4、2、系统总程序
4、3、系统总程序各模块
第五章 调试与分析
5、1、硬件调试
5、2、软件调试
5、3、结果分析
第六章 问题与解决方案
6、1、硬件部分
6、2、软件部分
第七章 总结与体会
第一章 引言
课程设计得目得与意义
本课程设计实在学完单片机原理及课程之后综合利用所学单片机只就是完成一个单片机应用系统设计并在实验室实现。该课程设计得主要任务就是通过解决一、两个实际问题,巩固与加深“单片机原理与应用”课程中所学得理论知识与实验能力,基本掌握单片机应用电路得一般设计方法,提高电子电路得设计与实验能力,加深对单片机软硬知识得理解,获得初步得应用经验,为以后从事生产与科研工作打下一定得基础。
第二章 选题
2、1选题范围
汇编语言程序编写、AEDK51HB单片机仿真机系统得使用,数码管显示、按键应用、定时器/计数器得应用、I/O口得应用、串行口应用及中断应用。
2、2 选题要求
在现有得单片机仿真机系统上掌握相关软硬设计与调试知识,根据所选择参考选题钟要求设计,焊接好硬件电路,正确得进行元器件得测试与调试,并在计算机上编写汇编程序,调试运行、配合硬件电路进行系统调试,并实现参考选题中要求设计得要求;写出课程设计报告,掌握设计方案中所涉及得软硬件得相关原理。
2、3方案选择
脉冲宽度得测量
(1)硬件技术指标
输入脉冲幅度:0-5V
脉宽测量范围:0、1-50ms
测量精度:1%
显示方式:四位数字显示
(2) 方案选择及工作原理
将脉冲信号从P3、2脚引入。将T0设为定时器方式工作。并工作在门控方式。初值TH0、TL0设为零。
在待测脉冲高电平期间,T0对内部周期脉冲进行计数。在待测脉冲高电平结束时,其下降沿向P3、2发中断,在外中断0得中断服务程序中,读取TH0、TL0得计数值,该值就就是待测脉冲得脉宽。随后清零TH0与TL0,以便下一脉宽得测量。
(3)系统实现功能
在电源正确接入得前提下,由RC震荡器产生信号从P3、2口输入,利用内部脉冲对外部信号进行计数。计数值经过二—十转换后,判断高位就是否为零,如果为零即显示低四位,如果不为零即显示高四位。通过数码管显示计数脉冲得个数,其个数即为脉冲宽度。
第三章 硬件电路设计及描述
1、系统各模块
信号产生电路、被测信号、单片机、显示
2、硬件装备图
3.器件参数
数码管4个,排阻,74LS07芯片,74LS00芯片,电阻510欧,电容uf,4、7uf,20pf,晶振,导线诺干。
4 管脚说明
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口得管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址得第八位。在编程时,P0 口作为原码输入口,当进行校验时,P0输出原码,此时P0外部必须被拉高。
P2口:P2口为一个内部上拉电阻得8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口得管脚被外部拉低,将输出电流。这就是由于内部上拉得缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址得高八位。在给出地
“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器得内容。P2口在编程与校验时接收高八位地址信号与控制信号。
P3口也可作为89C51得一些特殊功能口,在本次课程设计中用到得P3口如下所示:
P3、2 /INT0(外部中断0)
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期得高电平时间。
XTAL1:反向振荡放大器得输入及内部时钟工作电路得输入。
XTAL2:来自反向振荡器得输出。
5、硬件焊接
先根据装备图进行各元件排版,然后根据元件得排放进行布线,尽量导线不要叠加。然后把元器件焊在板子上,用导线全部焊接一起。焊接完后,再仔细检查。
第四章 软件设计流程及描述
1、软件设计流程图
2、系统总程序
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INTR_0 ;外部中断低电平触发处理
ORG 0033H
MAIN: MOV SP,#60H
MOV TMOD,#09H ;计数器T0工作在方式1
MOV TH0,#00H ;计数器TO清零
MOV TL0,#00H
MOV 41H,#00
MOV 40H,#00
MOV IE,#81H ;开总中断 外部中断0
SETB TR0 ;T0允许计数且当外部中断输入为高时计数 外部中断0为边沿触发
SETB IT0
LOOP: MOV R2,#30
LCALL BCD ;二进制转十进制
LCALL USBCD ;压缩BCD码,转非压缩BCD码
SS1: lCALL DISP
LCALL YANCHI
LCALL DISP
DJNZ R2,SS1
AJMP LOOP ;循环处理显示
INTR_0: MOV 41H,TH0
MOV 40H,TL0 ;将计数器T0中得数转移到40H,41H中
MOV TH0,#00H
MOV TL0,#00H ;重新将定时器T0清零
SS: RETI
BCD: MOV 38H,41H
MOV 37H,40H
CLR A ;将41H 42H中得数值转换成BCD码 分别按高低存储在34H 35H 36H中
MOV 34H,A
MOV 35H,A
MOV 36H,A
MOV R7,#16
LOOP1: CLR C
MOV A,37H
RLC A
MOV 37H,A
MOV A,38H
RLC A
MOV 38H,A
MOV A,36H
ADDC A,36H
DA A
MOV 36H,A
MOV A,35H
ADDC A,35H
DA A
MOV 35H,A
MOV A,34H
ADDC A,34H
DA A
MOV 34H,A
DJNZ R7,LOOP1
RET
USBCD:
MOV A,34H
CJNE A,#00H,PD ;判断第五位数值就是否为0 为零则按四位有效值处理 不为零按5位有效值处理
MOV R1,#35H ;当有4位有效效值时 取后四位显示 小数点加在第一位
MOV R0,#36H ;显示得就是以ms为为单位得
MOV A,#00H
XCHD A,R0 ;将36H中得低4位转换为非压缩BCD码存到30H
MOV 30H,A
MOV A,R0
SWAP A
MOV 31H,A
MOV A,#00H
XCHD A,R1
MOV 32H,A
MOV A,R1
SWAP A
ADD A,#10 ;加小数点显示(如果显示us为单位可以不加小数点)
MOV 33H,A
RET
PD: MOV R1,#34H ;当有5位有效值时取前四位显示 小数点加在第二位
MOV R0,#35H
MOV A,#00H
XCHD A,R0
MOV 31H,A
MOV A,R0
SWAP A
ADD A,#10 ;加小数点显示
MOV 32H,A
MOV A,#00H
XCHD A,R1
MOV 33H,A
MOV A,R1
SWAP A
ANL 36H,#0F0H
MOV A,36H
SWAP A
MOV 30H,A
RET
DISP: MOV DPTR,#TAB ;第一个数码管显示千位
MOV A,30H
MOVC A,A+DPTR
MOV P0,A
MOV A,#0EFH
MOV P2,A
LCALL YANCHI
MOV DPTR,#TAB ;第二个数码管显示百位
MOV A,31H
MOVC A,A+DPTR
MOV P0,A
MOV A,#0DFH
MOV P2,A
LCALL YANCHI
MOV DPTR,#TAB ; 第三个数码管显示十位
MOV A,32H
MOVC A,A+DPTR
MOV P0,A
MOV A,#0BFH
MOV P2,A
LCALL YANCHI
MOV DPTR,#TAB ;第四个数码管显示个位
MOV A,33H
MOVC A,A+DPTR
MOV P0,A
MOV A,#07FH
MOV P2,A
LCALL YANCHI
RET
YANCHI: MOV R7,#08H ;延时程序
TL: MOV R6,#80H
DJNZ R6,$
DJNZ R7,TL
RET
TAB: DB 3fh, 06h, 5bh ,4fh , 66h ,6dh ,7dh, 07h, 7fh ,6fh
DB 0Bfh,86h,0DBh ,0Cfh, 0E6h,0Edh ,0Fdh ,87h ,0FFh ,0Efh
NOP
END
3、系统总程序各模块
总程序、计数器清零、开关中断、外部中断程序、二进制转十进制、五位判断小数点位置以及显示子程序。
第五章 调试与分析
1、硬件调试
硬件做好后,1、、先目测,瞧就是否有地方虚焊,漏焊得。然后用万用表测就是否有短路断路得地方。2、排除以上错误后,接上电源,将数码管共阴极分别于电源负极相连,瞧数码管亮不亮。3、将数码管每个引脚分别测试,瞧就是否有哪个引脚漏焊虚焊得地方,或者短路断路。4、将接74LS04芯片得3、2引脚接上示波器,瞧波形就是否就是个完整得方波,并且记录方波上升沿得宽度。
2、软件调试
1、启动电脑程序,测试端口与仿真机就是否正确连接。2、打开电源,将板子与仿真机相连接,并且清零。3、将程序编译,没有错误时将程序写到仿真中测试。
3、结果分析
用示波器测量脉冲宽度,在示波器上显示波形,取方波得上升沿,读取数据,方波得高低平宽度为3、6ms,数码管显示得就是3、563ms
测量精度为(3、6-3、563)/3、6=1、03%,满足要求。
数码管显示时数字在不断得跳动,可能原因就是输入信号不稳。
第六章 问题与解决方案
1、硬件部分
(1)在排版方面,由于线比较多,而且某些节点上要连2到3根导线,造成了导线交叉。后来引出了一根长线,把这麻烦解决了。
(2)在数码管显示部分,d,e,f一起亮一起暗,经检查,就是这三根线短路了,将导线重新焊接后问题解决了。
(3)硬件与示波器连接后,出来得方波不就是很完整,将74LS00中得与非门全部用上滤波,最后出来得波形很完整。
2、软件部分
(1)开始写得程序很乱,老师建议我们用调用子程序得方法,一步一步分开来写。发现这方法很有用。
(2)在编写软件时经常会漏掉一些简单得口令,在编译时出现错误,才更正过来。
(3)软件编写完后,数码管显示得数字一闪一闪很不稳定,经过分析,就是延时程序没有编写正确,后来修改了延时时间,数码管正确得显示了。
第七章 总结与体会
我做得就是基于51单片机得脉冲宽度测量。在接到这个题目之后,我上网以及其图书馆查阅了资料,对于单片机技术与脉冲宽度测量有了全方面得了解。然后在过程中遇到了问题,将实际情况与课本上得知识紧密联系起来,认真思考,热烈讨论,细心沟通,最终将问题解决。
通过这次单片机课程设计,我对于单片机这门技术有了更好得掌握,锻炼了我得学习知识,运用学到得知识解决实际问题得能力。只有通过实践,才能巩固自己得基础,提高自己得能力,精通自己得技术。总之,我在这次课程设计中受益匪浅,感谢老师给我得帮助。
展开阅读全文