最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于单片机的脉冲周期测量

来源:动视网 责编:小OO 时间:2025-10-02 00:57:36
文档

基于单片机的脉冲周期测量

JIANGSUTEACHERSUNIVERSITYOFTECHNOLOGY单片机原理与应用课程设计脉冲周期的测量学院名称:电气信息工程学院班级:07电子1Z姓名:张秀银学号:07311126目录一、课程设计的目的和意义······································2二、程序设计的具体要求········································2三、程序设计的硬件连接·····································2
推荐度:
导读JIANGSUTEACHERSUNIVERSITYOFTECHNOLOGY单片机原理与应用课程设计脉冲周期的测量学院名称:电气信息工程学院班级:07电子1Z姓名:张秀银学号:07311126目录一、课程设计的目的和意义······································2二、程序设计的具体要求········································2三、程序设计的硬件连接·····································2


                                

                  JIANGSU  TEACHERS  UNIVERSITY  OF  TECHNOLOGY

                                                                    

                

单片机原理与应用课程设计

脉冲周期的测量

                            

学院名称:     电气信息工程学院         

班    级:        07电子1Z            

姓    名:     张秀银             

学    号:        07311126              

目录

一、课程设计的目的和意义······································   2

二、程序设计的具体要求········································   2

三、程序设计的硬件连接  ·····································   2

四、软件设计流程及描述········································  5

五、程序清单         ··········································  9

六、调试与分析·················································  13

七、课程设计的体会·············································  13

八 参考文献      ················································14

一、 程序设计的目的和意义

(1)目的:通过本次课程设计,巩固和加深“单片机原理与应用”中的理论知识,了解和应用单片机仿真系统,结合软硬件,基本掌握单片机的应用的一般设计方法,提高电子电路的设计和实验能力,并且提高自身查找和运用资料能力

(2)意义:通过本次课程设计,理论知识系统化,从中或得一些实战工作经验,提高个人与团体合作的能力。

二、 程序设计的具体要求

利用单片机ATC51单片机的T0、T1的定时/计数功能,完成对待测信号的周期进行测量,测量的结果通过8位动态数码管显示出来。

设计要求的技术指标有:

1、输入脉冲幅度:0-5v

2、周期量测量范围:0.1ms—50ms

3、测量精度:正负1%

4、显示方式:四位数字显示

三、 程序设计的硬件连接h

1 总体框图

被测信号

C51

单片机控制器

4位数码管显示

晶振电路

7407

列驱动

2 信号源的产生: 

被测信号源用的是带RC电路的环形振荡器电路图 

  带RC电路的环形振荡器

电路如图所示。即温度每增加10℃输入偏流将增加一倍。其中G4用于整形,OPA335.pdf REF3025.pdf 由运放OPA335及基准电压源REF3025在LOG102输入端构成具有失调补偿的电流源电路 如图所示为由运放OPA335及基准电压源REF3025在LOG102输入端构成具有失调补偿的电流源电路。以改善输出波形,由于功率放大器在大信号下工作,R为限流电阻,问题是要把失真控制在允许范围内,一般取100Ω,输出端连接不同的脚(3、4、5)可以得到不同的系数K(1、3、5)。电位器Rw要求不大于1KΩ。由于两管轮流地工作,电路利用电容C充放电过程,(2)晶体管的最大集电极电压Ucm>2Ec。控制D点电压VD,BG1截止、BG2导通,从而控制与非门的自动启闭,自动气体循环炉控温电路图。形成多谐振荡,Icm=IcM/2,电容C的充电时间tw1、放电时间tw2和总的振荡周期T分别为:由于输出端使用变压器, 

tw1≈0.94RC,请使用27K。    tw2≈1.26RC ,串联输入式电压反馈的基本形式电路图。  T≈2.2RC

调节R和C的值,内部放大器A1、A2是场效应晶体管(FET)输入,可改变输出信号的振荡频率。为了克服交越失真,

以上这些电路的状态转换都发生在与非门输入电平达到门的阀值电平VT的时刻。555和R1,在VT附近电容器的充放电速度已经很缓慢,(1)甲类功率放大器:。而且VT本身也不够稳定,射频探头用负压源电路图如图所示,易受温度、电源电压变化等因素以及干扰的影响。对数和对数比率放大器LOG101/104的偏流调零电路 如图所示为LOG101/104的偏流调零电路。因此,运算放大器电路图:包含 单电源、低压、低功耗运算放大器电路图。电路输出频率的稳定性较差。扬声器的阻抗为400欧,

信号源电路由RC振荡器构成,电阻选510欧姆,电容选择0.1uf,,产生矩形波后通过非门整形,非门由与非门74LS00构成,实际电路中用到四个与非门,使得整形更好,波形更稳定。根据公式 T=2.2*RC ,计算可得周期为112.2ms

3 数码显示电路

采用的为共阴极。

P0口来送段选信号, P0口内部并没有带上拉电阻,在接收数码管时需要在两者之间加一排阻,降低电流来保护P0口。利用了P2.0~P2.3来送位选信号即哪一个数码管来亮,且送低电平时有效,数码管用动态显示的方式来显示测量的周期值。

            

                   

在单片机与数码管之间我们采用了7407来驱动,7407为位6输入高压缓冲器。

4  单片机

单片机使用12m的晶振

晶振和C1、C2组成振荡器,使单片机内部产生产生周期为1us的脉冲信号。

5 管脚接线图

 

  

                             管脚接线图

四、软件设计流程及描述

1 主程序如下所示:

MAIN:    MOV SP,#60H

         MOV TMOD,#01H        ;计数器T0工作在方式1  

         MOV TH0,#00H

        MOV TL0,#00H         ;计数器TO清零

        MOV IE,#81H          ;开总中断 外部中断0

        SETB TR0       ;T0允许计数且当外部中断输入为高时计数 外部中断0为边沿触发

        SETB IT0

外中断0服务子程序如下:

INTR_0:    MOV 41H,TH0

        MOV 40H,TL0          ;将计数器T0中的数转移到40H,41H中

        MOV TH0,#00H

        MOV TL0,#00H        ;重新将定时器T0清零

QQ:        RETI

2 数码转换

由于单片机显示的是10进制的数,所以需要将2进制数转换为10进制数来显示

二进制—十进制转换的流程图如下:

因为有16位的二进制,故循环次数为16次,放在R7中。38H37H中的十六位二进制数转换为十进制后放在34H35H36H单元中

3 压缩BCD码转换成非压缩BCD码

    压缩BCD码有4位,所以需要将压缩BCD码转换为非压缩BCD码供8段数码管显示

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           ;高4位转换为非压缩BCD码存到31H

          

        MOV A,#00H

        XCHD A,@R1        ;将35H中的低4位转换为非压缩BCD码存到32H

        MOV 32H,A

        MOV A,@R1         ;高4位转换为非压缩BCD码存到33H

        SWAP A

        ADD A,#10            ;加小数点显示(如果显示us为单位可以不加小数点)

        MOV 33H,A

        RET

    

PD:        MOV R1,#34H             ;当有5位有效值时取前四位显示 小数点加在第二位

        MOV R0,#35H          ;将35H中的低4位转换为非压缩BCD码存到31H

MOV A,#00H

        XCHD A,@R0           ;高4位转换为非压缩BCD码存到32H

        MOV 31H,A

        MOV A,@R0

        SWAP A

        ADD A,#10              加小数点显示(如果显示us为单位可以不加小数点)

        MOV 32H,A

          

        MOV A,#00H       ;将34H中的低4位转换为非压缩BCD码存到33H

        XCHD A,@R1

        MOV 33H,A        

        MOV A,@R1

        SWAP A

          

        ANL 36H,#0F0H

        MOV A,36H

        SWAP A

        MOV 30H,A

        RET

4 数码管显示子程序

LEDS:    MOV DPTR,#TAB            ;显示千位

        MOV A,U4

        MOVC A,@A+DPTR

        MOV P0,A            

        MOV A,#0FEH            ;位选信号 第一个数码管    

        MOV P2,A

        LCALL DELAY 

        MOV DPTR,#TAB            ;显示百位

        MOV A,U3

        MOVC A,@A+DPTR

        MOV P0,A

        MOV A,#0FDH            ;位选信号 第二个数码管

        MOV P2,A

        LCALL DELAY

       

        MOV DPTR,#TAB            ;显示十位

        MOV A,U2

        MOVC A,@A+DPTR

        MOV P0,A

        MOV A,#0FBH            ;位选信号 第三个数码管

        MOV P2,A

        LCALL DELAY

        

        MOV DPTR,#TAB            ;显示个位

        MOV A,U1

        MOVC A,@A+DPTR

        MOV P0,A

        MOV A,#0F7H            ;位选信号 第四个数码管

        MOV P2,A

        LCALL DELAY

        

        RET 

选用4个共阴极数码管显示,每个数码管的选通是由P2.0~P2.3来控制

每位点亮时间为2048us,采用延时子程序,有四个数码管,用扫描的方式显示,每一个时刻只选通一个数码管。

不带小数点的0~9的数据对应表   带小数点的0~9的数据对应表:

     0      3FH     0      0BFH
     1      06H     1      86H
     2      5BH     2      0DBH
     3      4FH     3      0CFH
     4      66H     4      0E6H
     5      6DH     5      0EDH
     6      7DH     6      0FDH
     7      07H     7      87H
     8      7FH     8      0FFH
     9      6FH     9      0EFH
5 延时程序

DELAY:    MOV R7,#08H          

DELA:    MOV R6,#80H         

        DJNZ R6,$

        DJNZ R7,DELA

        RET 

采用软件延时,延时时间为8*128*2=2048us

五、 程序清单

下面的程序是本次课程设计的源程序:

    ORG 0000H

    AJMP MAIN

    ORG 0003H        

    AJMP INTR_0        ;外部中断低电平触发处理

    ORG 0033H

MAIN:    MOV SP,#60H

         MOV TMOD,#01H        ;计数器T0工作在方式1  

         MOV TH0,#00H

        MOV TL0,#00H         ;计数器TO清零

        MOV IE,#81H          ;开总中断 外部中断0

        SETB TR0       ;T0允许计数且当外部中断输入为高时计数 外部中断0为边沿触发

        SETB IT0

LOOPS:    LCALL BCD             ;二进制转十进制

         LCALL USBCD           ;压缩BCD码,转非压缩BCD码

         LCALL LEDS            

         LCALL DELAY

        LCALL LEDS            

        LCALL DELAY

         LCALL LEDS            

        LCALL DELAY

        LCALL LEDS            

        LCALL DELAY

        LCALL LEDS            

        LCALL DELAY

        LCALL LEDS            

        LCALL DELAY

        LCALL LEDS            

        LCALL DELAY

        LCALL LEDS            

        LCALL DELAY

        LCALL LEDS            

        LCALL DELAY

        LCALL LEDS            

         AJMP LOOPS             ;循环处理显示

INTR_0:    MOV 41H,TH0

        MOV 40H,TL0          ;将计数器T0中的数转移到40H,41H中

        MOV TH0,#00H

        MOV TL0,#00H        ;重新将定时器T0清零

QQ:        RETI

       

BCD:    CLR A             ;十进制转换

;将41H 42H中的数值转换成BCD码 分别按高低存储在34H 35H 36H中

           MOV 38H,41H

           MOV 37H,40H

           MOV 34H,A

           MOV 35H,A

           MOV 36H,A

           MOV R7,#16

LOOPS1:     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,LOOPS1

           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           ;高4位转换为非压缩BCD码存到31H

          

        MOV A,#00H

        XCHD A,@R1        ;将35H中的低4位转换为非压缩BCD码存到32H

        MOV 32H,A

        MOV A,@R1         ;高4位转换为非压缩BCD码存到33H

        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

        

LEDS:    MOV DPTR,#TAB            ;显示千位

        MOV A,U4

        MOVC A,@A+DPTR

        MOV P0,A            

        MOV A,#0FEH            ;位选信号 第一个数码管    

        MOV P2,A

        LCALL DELAY 

        MOV DPTR,#TAB            ;显示百位

        MOV A,U3

        MOVC A,@A+DPTR

        MOV P0,A

        MOV A,#0FDH            ;位选信号 第二个数码管

        MOV P2,A

        LCALL DELAY

       

        MOV DPTR,#TAB            ;显示十位

        MOV A,U2

        MOVC A,@A+DPTR

        MOV P0,A

        MOV A,#0FBH            ;位选信号 第三个数码管

        MOV P2,A

        LCALL DELAY

        

        MOV DPTR,#TAB            ;显示个位

        MOV A,U1

        MOVC A,@A+DPTR

        MOV P0,A

        MOV A,#0F7H            ;位选信号 第四个数码管

        MOV P2,A

        LCALL DELAY

        

        RET 

        

DELAY:    MOV R7,#08H              ;延时程序

DELA:    MOV R6,#80H         

        DJNZ R6,$

        DJNZ R7,DELA

        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

六、 调试与分析

硬件调试:

将信号源的输出脚接在示波器上,并加上正负电源,观察波形,如果得到的波形不太好,可将74LS00的4个与非门全部串联,并将对应的周期记录下来。

软件的测试:

在软件测试的时候,将各子程序分别进行调试,数码管显示可先编一段小程序来验证,不能利用数码管显示的程序部分可以利用软件上添加观察程序来实现观察结果是否正确。

分析与误差计算:

由于我们的理论值为T=2.2RC=112.2us,而我们实际测量得到的值为113ms,求得精度误差小于1%,符合测量要求。

七、课程设计的体会

在单片机应用系统设计时,必须先确定该系统的技术要求,这是系统设计的依据和出发点,整个设计过程都必须围绕这个技术要求来工作。在设计时遵循从整体到局部也即自上而下的原则。把复杂的问题分解为若干个比较简单的、容易处理的问题,分别单个的加以解决。在设计开始时,我们应根据应用的和设计要求提出设计的总体任务,绘制硬件和软件的总框图。将总任务分解成可以表达的子任务,这些子任务再向下分,直到每个子任务足够简单,能够直接而容易的实现为止。在程序调试时应按各个功能模块分别调试。

在程序设计时,正确合理的设计是非常重要的,比如说,有些执行程序以实时中断方式调用时,如果不正确的设计,有可能陷入无休止的中断申请,使程序无法正常工作。正确的程序设计包括程序的结构是否合理,一些循环结构和循环指令的使用是否恰当,能否使用较少的循环次数或较快的指令,是否能把某些延迟等待的操作改为中断申请服务,能否把某些计算方法和查表技术适当简化等。另外程序的设计要具有可扩展性,程序的结构要标准化,便于阅读、修改和扩充。

总体来说,此次设计是很有意义的,是提高学习效率和学习积极性的一种很有效的途径,这个过程中,我花费了很多的时间和精力,更重要的是,我在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。同时在此次课程设计中还运用到以前学过的知识,虽然过去从未应用过他们,但在学习的过程中带着问题去发现效率很高,这是我在课程设计中的又一次收获。

参考文献:

《单片微型机原理应用与实验》

《程序设计》

《单片微机控制技术》

文档

基于单片机的脉冲周期测量

JIANGSUTEACHERSUNIVERSITYOFTECHNOLOGY单片机原理与应用课程设计脉冲周期的测量学院名称:电气信息工程学院班级:07电子1Z姓名:张秀银学号:07311126目录一、课程设计的目的和意义······································2二、程序设计的具体要求········································2三、程序设计的硬件连接·····································2
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top