第一章 设计目的、要求及意义
数据采集系统用于将模拟信号转换为计算机可以识别的数字信号,该系统目的是便于对某些物理量进行监视。数据采集系统的好坏取决于他的精度和速度. 设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求。在科学研究中应用该系统可以获得大量动态; 是研究瞬间物理过程的重要手段; 亦是获取科学奥秘的重要手段之一。本文采用新颖的方法完成设计, 用到的集成芯片主要有8051单片机、ADC0808等。ADC0808主要作用是对八路模拟信号进行选择采集, 并将其转化为八位数字信号, 再送至主控制器(8051单片机) ,采集完毕后, 再由主控制器将信号传输到数码管显示出来。
本系统以单片机为核心,设计一个3路数据采集系统,采用3路模拟量输入设计,工作范围是0-5V 。要求对输入的3个通道的模拟量进行巡回采样,并将采集的信号数据经A/D转换后以10进制数在LED 显示器上显示,并能通过按键切换所选通道的采样数据。
经过这次课程设计进一步的去培养学生的工程设计能力和工程设计思想,同样把书本的知识应用到实际当中去,考察了学生的实际操作能力和理论知识与实际应用相结合的能力。为将来进入工厂中进行生产奠定好一个良好的基础。
第二章 系统总体方案选择与说明
为了充分利用学校的有效资源,我们仅仅对本课题做一个简单的设计,并且在网上下载Protues 软件,运行后进行初步的仿真实验。
三路模拟信号数值测量显示电路由A/D转换、数据处理及显示控制等组成。A/D转换由集成电路0808完成,0808具有8路模拟输入端口,地址线(23-25脚)可决定对哪一路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2μS 宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE 脚为高电平时,A/D转换数据从端口输出。单片机的P0、P2端口作四位LED 数码管显示控制,P1端口作A/D转换数据读入用,P3端口用作ADC0808的A/D转换控制。数据处理则只由AT89C51来完成,从P2,P3端口读入数据,通过P0及P2端口将数据传给LED 显示。
当然,还有很多的电阻器等等一些防止电路出现故障的外围设备这里不做详细的解说。该方案简单具有低价格,程序少的,运算得快的优点。
第三章 系统方框图与工作原理
3.1 系统框图
选用ADC0808的0,1,2通道,分别输入0V ~5V 直流电压,来模拟要采集的信号,将各路模拟信号分别转换成8位二进制数字信号传送给AT89C51的P1口,然后通过AT89C51芯片进过数据处理和分析通过P0和P2口送给数码管显示。同时AT89C51芯片控制着ADC0808的通道地址。系统框图如图3.1
。
图3.1 系统框图
3.2 系统工作原理
系统通过检测P2.4-P2.6的高低电平,通过AT89C51改变ADC0808通道地址,实现能在任意时间切换不同通道的要求。ADC0808转换成二进制数后,立即送给单片机,然后单片通过相应的数据处理和分析,通过P0口把处理后的结果输送给LED 数码管显示ADC0808装换后的结果,同时在LED 数码管上显示当前的工作通道编号。
第四章 各单元硬件设计说明
4.1 A/D转换单元
多路数据采集系统,通过多路模拟开关控制多路之间的切换,实现单片A /D 芯片对多路数据信号的逐个采集。
模数转换的核心是模数转换器(ADC),即A /D 芯片。它将输入的模拟信号进行量化,即把连续的模拟信号转换为计算机能处理的离散数字信号。因此,数据采集系统的性能在很大程度上取决于A /D 芯片的性能。A /D 芯片的主要参考指标是:量化误差、零位偏置误差、增益误差和非线性误差等。其设计如图4.1。
图4.1 A/D转换单元设计图
4.2 数据处理单元
数据处理单元是以芯片AT89C51为核心。AT89C51是一种带4K 字节FLASH 存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。故只用片内存储器就足够装下我们所编的程序,故无需扩展外部ROM 。改芯片有4个端口P0﹑P1﹑P2﹑P3。P0口单片机内部无上拉电阻,但其是双向I/O口。其它三个端口内部有上拉电阻,故其驱动功率大,但它们是准双向I/O口,只有当端口为高电平时,才能输入。因为本系统使用的是内部程序存储器,所以EA 端必须接高电平。单片机使用内部时钟电路,晶振使用12MHZ ,机器周期为1μS 。其具体设计如图4.2所示。
图4.2 数据处理单元电路图
4.3 ADC0808说明
ADC0808 由一个8 路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8 个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0809 各脚功能如下:
D7-D0:8 位数字量输出引脚。 IN0-IN7:8 位模拟量输入引脚。 VCC :+5V 工作电压。 GND :地。
REF (+):参考电压正端。 REF (-):参考电压负端。 START :A/D 转换启动信号输入端。 ALE :地址锁存允许信号输入端。 (以上两种信号用于启动A/D 转换)EOC :转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。
OE :输出允许控制端,用以打开三态数据输出锁存器。 CLK :时钟信号输入端(一般为500KHz )。
4.4 LED 显示器
本LED 显示器可自动轮流显示8路输入模拟电压的数字值,最小分辨精度为0.02V ,最大显示数值为255(输入为5V 时),模拟输入最大值为5V 。
表一 LED 数码显示器的字形(段)码
第五章 软件设计与说明
5.1 程序流程图
系统程序流程图如图5.1所示。
图5.1 系统程序流程图
5.2 软件说明
由流程图可知,系统程序可分成初始化程序、DEAL1、DEAL2、DEAL3﹑WAIT ﹑判值大小﹑显示等程序。下面分别说明。
5.2.1 初始化程序
初始化程序如下: START: M OV
MOV MOV
LED_0,#00H LED_1,#00H LED_2,#00H LED_3,#00H DPTR,#TABLE A,#86H 34H,A P3.4 P3.5 P3.6 P2.4
; 选择ADC0808的通道0
MOV
MOV
; 送段码表首地址
MOV MOV CLR CLR CLR
CLR
可以看出初始化程序包括对LED 数码管全部清零,将P2.4置0,使数码管开机显示第一路数据。 5.2.2 DEAL程序
DEAL1: CLR
P2.7 ; 蜂鸣
LCALL DELAY CLR CLR CLR
P3.4 P3.5 P3.6
; 显示1.
; 选择通道0,显示第一路数据
MOV A,#86H MOV
34H,A
LJMP WAIT
P2.7 P2.7
; 蜂鸣
DEAL2: CLR
SETB
LCALL DELAY SETB SETB CLR CLR
P2.4 P3.4 P3.5 P3.6
; 显示2.
; 选择通道1,显示第二路数据
MOV A,#0DBH MOV
34H,A
LJMP WAIT
P2.7 P2.7
; 蜂鸣
DEAL3: SETB
CLR
LCALL DELAY SETB CLR SETB CLR
P2.4 P3.4 P3.5 P3.6
; 显示3.
; 选择通道2,显示第三路数据
MOV A,#0CFH MOV
34H,A
LJMP WAIT
这三段程序基本相似,均是先通过P2.7口使蜂鸣器产生蜂鸣,然后通过改变P3.4,P3.5,P3.6来选择通道0,1,2,然后再通过显示器显示是哪一路信号。
5.2.3 DISP、 DISP0子程序
DISP: MOV A,LED_0
; 数码百十个位显示子程序
MOVC A,@A+DPTR CLR MOV
LCALL SETB MOV
MOVC CLR MOV
LCALL SETB MOV
MOVC CLR MOV
LCALL SETB
RET
DISP0: CLR MOV MOV
LCALL P2.3 P0,A
DELAY P2.3 A,LED_1
A,@A+DPTR P2.2 P0,A
DELAY P2.2 A,LED_2
A,@A+DPTR P2.1 P0,A
DELAY P2.1
P2.0
; 通道路数数码显示子程序
A,34H P0,A
DELAY
SETB RET
P2.0
显示程序嵌套了延时子程序,包含了数码管编码表。四位数码管采用动态扫描显示,当位选信号为低电平时选中,数码管然后给其位选,关闭段选,延时5ms ,然后选中下一个数码管,再给位选,再关闭段选,再延时5ms 如此往复循环实现动态扫描 5.2.4 延时程序
DELAY: MOV D1:
MOV DJNZ DJNZ RET
R6,#10 R7,#250 R7,$
;1t 延时5毫秒 ;1t ;2t ;2t ;2t
R6,D1
时间T 的计算:T=[1+(1+2*250+2)+2]*1μs=5033μs
第六章 调试结果与说明
6.1 调试仿真说明
由于硬件的局限,本系统通过软件进行调试,采用Protues 及Keil 软件进行调试。首先按照设计好的硬件电路进行连接。然后逐步调试各项功能。通过反复调试,发现并排除软件与硬件存在的各类问题,以达到系统设计的要求。
6.2调试结果
6.2.1 刚开机状态
如图6.1所示。
图6.1 开机显示图
6.2.2 按钮切换调试
按下第二路数据采集按钮后,如图6.2。
图6.2 第二路数据显示
按下第三路数据采集按钮后,如图
6.3
图6.3 第三路数据显示
6.2.3 改变输入,输出状态情况
分别把RV1,RV2,RV3从0变到最大,输出显示情况分别如图6.4,图6.5,图6.6。
图6.4 改变RV1后的状态
图6.5 改变RV2后的状态
图6.6 改变RV3后的状态
第七章 使用说明
开机后通过按下按钮开关来改变输出显示所采集的信号。按下第一路数据开关后,将采集第一路数据信息;按下第二路数据开关后,将采集第二路数据信息;按下第三路数据开关后,将采集第三路数据信息。通过调节RV1,RV2,RV3的大小可以模拟输入的信号的改变。
第八章 总 结
经过这此单片机课程设计, 我学会了很多东西。
比如,对汇编语言的理解就已经有了一个更进一步的理解,同时也对那些我们已经学过的各种计算机语言进行了一个简单的对比。在经过大一的语言课程设计和大三的电子电路课程设计以及此次单片机课程设计。使我养成了模块化工程设计方法的习惯,在设计功能模块时候,得先确定是什么功能模块,并绐模块读取地址或数据和存储地址或传出变量。只要这样,在需要时候进行调用或中断就可以了。
经过这次经历,我不仅加深了对单片机理论的理解,还熟悉和掌握了单片机的许多基础设计语言和模拟单片机软件程序,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福为意愿出发,做自己力所能及的,别人却没想到的事。
使之不断地战胜自己,超越前人。这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,更应该引起我们重视的是创作的这一整个过程。
这次课程设计让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ 群里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。
单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。
参考文献
1. 刘大茂主编. 单片机原理与应用. 上海:上海交通大学出版社,
2001
2. 沈红卫主编. 单片机原理及接口技术. 北京:北京航空航天大学
出版社,2002
3. 王迎旭主编. 单片机原理及应用. 北京:机械工业出版社,2004 4. 苏凯等主编.MCS-51系列单片机系统原理与设计. 北京:冶金
工业出版社,2003
5. 周向红主编. 51系列单片机应用与实践教程. 北京:北京航空航
天大学出版社,2008
6. 李全利、迟荣强. 《单片机原理及接口技术》. 高等教育社.2004 7. 孙和平、杨宁、白晶. 《单片微机原理与接口技术》. 北京:冶
金工业出版社 2003
附 录
附录A
系统原理图
附录B 程序清单
LED_0 EQU LED_1 EQU LED_2 EQU LED_3 EQU ADC EQU ST BIT OE
BIT
EOC BIT
ORG START: M OV MOV
MOV
MOV MOV
MOV MOV CLR CLR CLR
CLR WAIT: CLR
SETB 30H
; 存放4个数码管的段码
31H 32H 33H
35H
; 存放转换后的数据
P3.2 P3.0 P3.1
00H
LED_0,#00H LED_1,#00H LED_2,#00H LED_3,#00H
DPTR,#TABLE
; 送段码表首地址
A,#86H 34H,A
P3.4 P3.5 P3.6
; 选择ADC0808的通道0 P2.4
ST
ST
CLR
JNB ST ; 启动转换 ; 等待转换结束
; 允许输出
; 暂存转换结果 EOC,$ SETB OE MOV ADC,P1
CLR
MOV
MOV
DIV
MOV
MOV
MOV
DIV
MOV
MOV
LCALL
LCALL
JNB
JNB
JNB
LJMP
DEAL1: CLR
LCALL
CLR
CLR
OE ; 关闭输出 A,ADC ; 将AD 转换结果转换成BCD 码B,#100 AB LED_2,A A,B B,#10 AB LED_1,A LED_0,B DISP ; 显示AD 转换结果 DISP0 P2.6,DEAL3 P2.5,DEAL2 P2.4,DEAL1 WAIT P2.7 DELAY P3.4 P3.5
CLR P3.6 MOV A,#86H MOV 34H,A LJMP WAIT DEAL2: CLR
SETB
LCALL
SETB
SETB
CLR
CLR
MOV
MOV
LJMP
DEAL3: SETB
CLR
LCALL
SETB
CLR
SETB
CLR
MOV
MOV
LJMP
P2.7 P2.7 DELAY P2.4 P3.4 P3.5 P3.6 A,#0DBH 34H,A WAIT P2.7 P2.7 DELAY P2.4 P3.4 P3.5 P3.6 A,#0CFH 34H,A WAIT
DISP: MOV
A,LED_0 ; 数码显示子程序 MOVC A,@A+DPTR CLR
MOV
LCALL
SETB
MOV
MOVC
CLR
MOV
LCALL
SETB
MOV
MOVC
CLR
MOV
LCALL
SETB
RET
DISP0: CLR
MOV
MOV
LCALL
SETB
P2.3 P0,A DELAY P2.3 A,LED_1 A,@A+DPTR P2.2 P0,A DELAY P2.2 A,LED_2 A,@A+DPTR P2.1 P0,A DELAY P2.1 P2.0 ; 数码显示子程序 A,34H P0,A DELAY P2.0
DELAY: MOV D1: MOV DJNZ DJNZ RET TABLE: D B DB END R6,#10 ; 延时5毫秒 R7,#250 R7,$ R6,D1 3FH,06H,5BH,4FH,66H 6DH,7DH,07H,7FH,6FH
第一章 设计目的、要求及意义
数据采集系统用于将模拟信号转换为计算机可以识别的数字信号,该系统目的是便于对某些物理量进行监视。数据采集系统的好坏取决于他的精度和速度. 设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求。在科学研究中应用该系统可以获得大量动态; 是研究瞬间物理过程的重要手段; 亦是获取科学奥秘的重要手段之一。本文采用新颖的方法完成设计, 用到的集成芯片主要有8051单片机、ADC0808等。ADC0808主要作用是对八路模拟信号进行选择采集, 并将其转化为八位数字信号, 再送至主控制器(8051单片机) ,采集完毕后, 再由主控制器将信号传输到数码管显示出来。
本系统以单片机为核心,设计一个3路数据采集系统,采用3路模拟量输入设计,工作范围是0-5V 。要求对输入的3个通道的模拟量进行巡回采样,并将采集的信号数据经A/D转换后以10进制数在LED 显示器上显示,并能通过按键切换所选通道的采样数据。
经过这次课程设计进一步的去培养学生的工程设计能力和工程设计思想,同样把书本的知识应用到实际当中去,考察了学生的实际操作能力和理论知识与实际应用相结合的能力。为将来进入工厂中进行生产奠定好一个良好的基础。
第二章 系统总体方案选择与说明
为了充分利用学校的有效资源,我们仅仅对本课题做一个简单的设计,并且在网上下载Protues 软件,运行后进行初步的仿真实验。
三路模拟信号数值测量显示电路由A/D转换、数据处理及显示控制等组成。A/D转换由集成电路0808完成,0808具有8路模拟输入端口,地址线(23-25脚)可决定对哪一路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2μS 宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE 脚为高电平时,A/D转换数据从端口输出。单片机的P0、P2端口作四位LED 数码管显示控制,P1端口作A/D转换数据读入用,P3端口用作ADC0808的A/D转换控制。数据处理则只由AT89C51来完成,从P2,P3端口读入数据,通过P0及P2端口将数据传给LED 显示。
当然,还有很多的电阻器等等一些防止电路出现故障的外围设备这里不做详细的解说。该方案简单具有低价格,程序少的,运算得快的优点。
第三章 系统方框图与工作原理
3.1 系统框图
选用ADC0808的0,1,2通道,分别输入0V ~5V 直流电压,来模拟要采集的信号,将各路模拟信号分别转换成8位二进制数字信号传送给AT89C51的P1口,然后通过AT89C51芯片进过数据处理和分析通过P0和P2口送给数码管显示。同时AT89C51芯片控制着ADC0808的通道地址。系统框图如图3.1
。
图3.1 系统框图
3.2 系统工作原理
系统通过检测P2.4-P2.6的高低电平,通过AT89C51改变ADC0808通道地址,实现能在任意时间切换不同通道的要求。ADC0808转换成二进制数后,立即送给单片机,然后单片通过相应的数据处理和分析,通过P0口把处理后的结果输送给LED 数码管显示ADC0808装换后的结果,同时在LED 数码管上显示当前的工作通道编号。
第四章 各单元硬件设计说明
4.1 A/D转换单元
多路数据采集系统,通过多路模拟开关控制多路之间的切换,实现单片A /D 芯片对多路数据信号的逐个采集。
模数转换的核心是模数转换器(ADC),即A /D 芯片。它将输入的模拟信号进行量化,即把连续的模拟信号转换为计算机能处理的离散数字信号。因此,数据采集系统的性能在很大程度上取决于A /D 芯片的性能。A /D 芯片的主要参考指标是:量化误差、零位偏置误差、增益误差和非线性误差等。其设计如图4.1。
图4.1 A/D转换单元设计图
4.2 数据处理单元
数据处理单元是以芯片AT89C51为核心。AT89C51是一种带4K 字节FLASH 存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。故只用片内存储器就足够装下我们所编的程序,故无需扩展外部ROM 。改芯片有4个端口P0﹑P1﹑P2﹑P3。P0口单片机内部无上拉电阻,但其是双向I/O口。其它三个端口内部有上拉电阻,故其驱动功率大,但它们是准双向I/O口,只有当端口为高电平时,才能输入。因为本系统使用的是内部程序存储器,所以EA 端必须接高电平。单片机使用内部时钟电路,晶振使用12MHZ ,机器周期为1μS 。其具体设计如图4.2所示。
图4.2 数据处理单元电路图
4.3 ADC0808说明
ADC0808 由一个8 路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8 个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0809 各脚功能如下:
D7-D0:8 位数字量输出引脚。 IN0-IN7:8 位模拟量输入引脚。 VCC :+5V 工作电压。 GND :地。
REF (+):参考电压正端。 REF (-):参考电压负端。 START :A/D 转换启动信号输入端。 ALE :地址锁存允许信号输入端。 (以上两种信号用于启动A/D 转换)EOC :转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。
OE :输出允许控制端,用以打开三态数据输出锁存器。 CLK :时钟信号输入端(一般为500KHz )。
4.4 LED 显示器
本LED 显示器可自动轮流显示8路输入模拟电压的数字值,最小分辨精度为0.02V ,最大显示数值为255(输入为5V 时),模拟输入最大值为5V 。
表一 LED 数码显示器的字形(段)码
第五章 软件设计与说明
5.1 程序流程图
系统程序流程图如图5.1所示。
图5.1 系统程序流程图
5.2 软件说明
由流程图可知,系统程序可分成初始化程序、DEAL1、DEAL2、DEAL3﹑WAIT ﹑判值大小﹑显示等程序。下面分别说明。
5.2.1 初始化程序
初始化程序如下: START: M OV
MOV MOV
LED_0,#00H LED_1,#00H LED_2,#00H LED_3,#00H DPTR,#TABLE A,#86H 34H,A P3.4 P3.5 P3.6 P2.4
; 选择ADC0808的通道0
MOV
MOV
; 送段码表首地址
MOV MOV CLR CLR CLR
CLR
可以看出初始化程序包括对LED 数码管全部清零,将P2.4置0,使数码管开机显示第一路数据。 5.2.2 DEAL程序
DEAL1: CLR
P2.7 ; 蜂鸣
LCALL DELAY CLR CLR CLR
P3.4 P3.5 P3.6
; 显示1.
; 选择通道0,显示第一路数据
MOV A,#86H MOV
34H,A
LJMP WAIT
P2.7 P2.7
; 蜂鸣
DEAL2: CLR
SETB
LCALL DELAY SETB SETB CLR CLR
P2.4 P3.4 P3.5 P3.6
; 显示2.
; 选择通道1,显示第二路数据
MOV A,#0DBH MOV
34H,A
LJMP WAIT
P2.7 P2.7
; 蜂鸣
DEAL3: SETB
CLR
LCALL DELAY SETB CLR SETB CLR
P2.4 P3.4 P3.5 P3.6
; 显示3.
; 选择通道2,显示第三路数据
MOV A,#0CFH MOV
34H,A
LJMP WAIT
这三段程序基本相似,均是先通过P2.7口使蜂鸣器产生蜂鸣,然后通过改变P3.4,P3.5,P3.6来选择通道0,1,2,然后再通过显示器显示是哪一路信号。
5.2.3 DISP、 DISP0子程序
DISP: MOV A,LED_0
; 数码百十个位显示子程序
MOVC A,@A+DPTR CLR MOV
LCALL SETB MOV
MOVC CLR MOV
LCALL SETB MOV
MOVC CLR MOV
LCALL SETB
RET
DISP0: CLR MOV MOV
LCALL P2.3 P0,A
DELAY P2.3 A,LED_1
A,@A+DPTR P2.2 P0,A
DELAY P2.2 A,LED_2
A,@A+DPTR P2.1 P0,A
DELAY P2.1
P2.0
; 通道路数数码显示子程序
A,34H P0,A
DELAY
SETB RET
P2.0
显示程序嵌套了延时子程序,包含了数码管编码表。四位数码管采用动态扫描显示,当位选信号为低电平时选中,数码管然后给其位选,关闭段选,延时5ms ,然后选中下一个数码管,再给位选,再关闭段选,再延时5ms 如此往复循环实现动态扫描 5.2.4 延时程序
DELAY: MOV D1:
MOV DJNZ DJNZ RET
R6,#10 R7,#250 R7,$
;1t 延时5毫秒 ;1t ;2t ;2t ;2t
R6,D1
时间T 的计算:T=[1+(1+2*250+2)+2]*1μs=5033μs
第六章 调试结果与说明
6.1 调试仿真说明
由于硬件的局限,本系统通过软件进行调试,采用Protues 及Keil 软件进行调试。首先按照设计好的硬件电路进行连接。然后逐步调试各项功能。通过反复调试,发现并排除软件与硬件存在的各类问题,以达到系统设计的要求。
6.2调试结果
6.2.1 刚开机状态
如图6.1所示。
图6.1 开机显示图
6.2.2 按钮切换调试
按下第二路数据采集按钮后,如图6.2。
图6.2 第二路数据显示
按下第三路数据采集按钮后,如图
6.3
图6.3 第三路数据显示
6.2.3 改变输入,输出状态情况
分别把RV1,RV2,RV3从0变到最大,输出显示情况分别如图6.4,图6.5,图6.6。
图6.4 改变RV1后的状态
图6.5 改变RV2后的状态
图6.6 改变RV3后的状态
第七章 使用说明
开机后通过按下按钮开关来改变输出显示所采集的信号。按下第一路数据开关后,将采集第一路数据信息;按下第二路数据开关后,将采集第二路数据信息;按下第三路数据开关后,将采集第三路数据信息。通过调节RV1,RV2,RV3的大小可以模拟输入的信号的改变。
第八章 总 结
经过这此单片机课程设计, 我学会了很多东西。
比如,对汇编语言的理解就已经有了一个更进一步的理解,同时也对那些我们已经学过的各种计算机语言进行了一个简单的对比。在经过大一的语言课程设计和大三的电子电路课程设计以及此次单片机课程设计。使我养成了模块化工程设计方法的习惯,在设计功能模块时候,得先确定是什么功能模块,并绐模块读取地址或数据和存储地址或传出变量。只要这样,在需要时候进行调用或中断就可以了。
经过这次经历,我不仅加深了对单片机理论的理解,还熟悉和掌握了单片机的许多基础设计语言和模拟单片机软件程序,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福为意愿出发,做自己力所能及的,别人却没想到的事。
使之不断地战胜自己,超越前人。这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,更应该引起我们重视的是创作的这一整个过程。
这次课程设计让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ 群里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。
单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。
参考文献
1. 刘大茂主编. 单片机原理与应用. 上海:上海交通大学出版社,
2001
2. 沈红卫主编. 单片机原理及接口技术. 北京:北京航空航天大学
出版社,2002
3. 王迎旭主编. 单片机原理及应用. 北京:机械工业出版社,2004 4. 苏凯等主编.MCS-51系列单片机系统原理与设计. 北京:冶金
工业出版社,2003
5. 周向红主编. 51系列单片机应用与实践教程. 北京:北京航空航
天大学出版社,2008
6. 李全利、迟荣强. 《单片机原理及接口技术》. 高等教育社.2004 7. 孙和平、杨宁、白晶. 《单片微机原理与接口技术》. 北京:冶
金工业出版社 2003
附 录
附录A
系统原理图
附录B 程序清单
LED_0 EQU LED_1 EQU LED_2 EQU LED_3 EQU ADC EQU ST BIT OE
BIT
EOC BIT
ORG START: M OV MOV
MOV
MOV MOV
MOV MOV CLR CLR CLR
CLR WAIT: CLR
SETB 30H
; 存放4个数码管的段码
31H 32H 33H
35H
; 存放转换后的数据
P3.2 P3.0 P3.1
00H
LED_0,#00H LED_1,#00H LED_2,#00H LED_3,#00H
DPTR,#TABLE
; 送段码表首地址
A,#86H 34H,A
P3.4 P3.5 P3.6
; 选择ADC0808的通道0 P2.4
ST
ST
CLR
JNB ST ; 启动转换 ; 等待转换结束
; 允许输出
; 暂存转换结果 EOC,$ SETB OE MOV ADC,P1
CLR
MOV
MOV
DIV
MOV
MOV
MOV
DIV
MOV
MOV
LCALL
LCALL
JNB
JNB
JNB
LJMP
DEAL1: CLR
LCALL
CLR
CLR
OE ; 关闭输出 A,ADC ; 将AD 转换结果转换成BCD 码B,#100 AB LED_2,A A,B B,#10 AB LED_1,A LED_0,B DISP ; 显示AD 转换结果 DISP0 P2.6,DEAL3 P2.5,DEAL2 P2.4,DEAL1 WAIT P2.7 DELAY P3.4 P3.5
CLR P3.6 MOV A,#86H MOV 34H,A LJMP WAIT DEAL2: CLR
SETB
LCALL
SETB
SETB
CLR
CLR
MOV
MOV
LJMP
DEAL3: SETB
CLR
LCALL
SETB
CLR
SETB
CLR
MOV
MOV
LJMP
P2.7 P2.7 DELAY P2.4 P3.4 P3.5 P3.6 A,#0DBH 34H,A WAIT P2.7 P2.7 DELAY P2.4 P3.4 P3.5 P3.6 A,#0CFH 34H,A WAIT
DISP: MOV
A,LED_0 ; 数码显示子程序 MOVC A,@A+DPTR CLR
MOV
LCALL
SETB
MOV
MOVC
CLR
MOV
LCALL
SETB
MOV
MOVC
CLR
MOV
LCALL
SETB
RET
DISP0: CLR
MOV
MOV
LCALL
SETB
P2.3 P0,A DELAY P2.3 A,LED_1 A,@A+DPTR P2.2 P0,A DELAY P2.2 A,LED_2 A,@A+DPTR P2.1 P0,A DELAY P2.1 P2.0 ; 数码显示子程序 A,34H P0,A DELAY P2.0
DELAY: MOV D1: MOV DJNZ DJNZ RET TABLE: D B DB END R6,#10 ; 延时5毫秒 R7,#250 R7,$ R6,D1 3FH,06H,5BH,4FH,66H 6DH,7DH,07H,7FH,6FH