(完整)51单片机汇编语言步进电机转速控制系统,推荐文档

(完整)51单片机汇编语言步进电机转速控制系统,推荐文档
(完整)51单片机汇编语言步进电机转速控制系统,推荐文档

大连理工大学本科设计报告题目:步进电机转速控制系统设计

课程名称:单片机综合设计

学院(系):电子信息与电气工程学部

专业:

班级:

学号:

学生姓名:

成绩:

2013 年7 月20 日

题目:步进电机转速控制系统设计

1 设计要求

1)利用ZLG7290的键盘控制直流电机(或步进电机的转速、转向);

2)也可以利用ADC模块(与电位器配合),利用电位器控制转速;

3)利用ZLG7290的8位LED数码管显示电机转向、转速参数显示。

2 设计分析及系统方案设计

实验要求使用步进电机作为被控制对象,由ZLG7290做人机对话平台,利用单片机的P1(8位)和P3(部分口线)构造系统。实验最终实现功能、设计思路以及方案设计如以下几个小节所述。

2.1 系统设计实现功能

根据设计要求、现有设备以及知识储备,完成功能如下:

①由按键S1~S8实现转速切换,其中S1~S4正转,S5~S8反转

②按键S16作为停止键,按下S10后步进电机停止转动,再按S1~S16步进电机按

照按键对应转速以及转向转动

③按键S10作为复位键,当按下S10后,无论当前处于何种状态,系统恢复至初

始态

④8为LED数码管显示当前步进电机转速(speed=0/1 1~4),转速前0表示正转,

1表示反转

⑤若按下停止键,数码管显示当前转速;若按下复位键,数码管显示初始态speed=00

2.2 设计思路

本次的设计是LED显示与步进电机相结合以及若干功能键的组合的一种设计。根据之前学习的按键中断显示实验和定时器实验,使用INT0和INT1,INT0作为按键中断,INT1作为定时器。在主程序中实现LED初始显示、定时器计时初始、按键中断初始。INT0中断调用中断服务子程序实现对按键键值的判断,并根据相应的按键值实现对应步进电机的变化,并显示该按键对应的转速。INT1定时器中断根据INT0的按键键值,对定时器设定相应的初值,实现步进电机按规定的转速转动。对于按键停止,则是利用中断优先级,当INT0的中断优先级高时,系统进入中断,此时INT1停止计时,也就实现了步进电机的停止,当改变定时器与按键中断的优先级时,即把INT0设为低优先级,INT1设为高优先级,步进电机重新开始转动。此时添加一个对INT0位地址的查询,若有按键即正/反转的4档转速所对应的按键,步进电机开始重新转动。对于复位功能,则同样是利用按键键值的判断,在对应键值下控制电机初始化。

2.3 系统方案设计

系统总设计方案框图如下所示:

图1.1 系统总框图

3 系统电路图

见附录

4 外围接口模块硬件电路功能描述

本设计主要用到的器件是AT89C51、ZLG7290B和步进电机。

4.1 AT89C51

AT89C51的主要参数如下表所示:

型号存储器定时

I/0 串行

中断速度

(MH)

其它特

点E2PROM ROM RAM

89C51 4K 128 2 32 1 6 24 低电压

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。其引脚如图1.2所示。

图1.2 单片机的引脚排列

ZLG7290

AT89C51UL2003

L

E

D

管脚说明如下:

VCC:供电电压GND:接地

P0口: 8位漏级开路双向I/O口,每脚可吸收8TTL门电流;

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流;

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

P3口也可作为AT89C51的一些特殊功能口,如下所示:

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

4.2 ZLG7290B

ZLG7290B是数码管动态显示驱动、键盘扫描管理芯片。接口采用I2C结构。

内部寄存器有13个单元00H-0DH:

1)系统寄存器(地址00H),第0位称作按键有效位,为1表示按键按下,为0表示没有按键操作,并且有按键按下的时候在ZLG7290B的/INT引脚会产生一个低电平的中断请求信号。

2)键值寄存器(地址01H),如果按下的是普通键,键值寄存器就保存按键对应的兼职(1-56)。

3)连击计数器(02H),就是芯片为普通键提供的一种连击计数功能,当按下某

一按键就可以产生连续的中断请求信号。

4)功能键值寄存器(地址03H),功能按键不产生键值,但是在按下和抬起都会产生中断请求信号。

5)命令寄存器(地址07H和08H),向命令寄存器送入相关的控制命令可以实现段寻址,下载显示数据和控制闪烁等功能。

6)闪烁控制寄存器(地址0HCH),闪烁控制寄存器决定闪烁的频率和占空比。

7)扫描位数寄存器(地址0DH),扫描位数寄存器决定着ZLG7290B动态扫描显示的位数,取值0-7,对应的显示1-8位。

8)显示缓冲寄存器(地址10H-17H),八个显示缓冲寄存器直接决定着数码管上显示的字形和显示的位置。ZLG7290B的引脚图如下:

图1.3. ZLG7290B引脚逻辑图

4.3 步进电机

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

(一)步进电机的静态指标术语

1、相数:产生不同对N、S磁场的激磁线圈对数。常用m表示。

2、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数。

3、步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。

(二)步进电机动态指标及术语:

1、最大空载起动频率:电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。

2、最大空载的运行频率:电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。

3、电机正反转控制:当电机绕组通电时序为D-DC-C-CB-B-BA-A-AD时为正转,通电时序为AD-A-AB-B-BC-C-CD-D时为反转。

如下所示的步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1.4是该四相反应式步进电机工作原理示意图。

图1.4四相步进电机步进示意图

5 主程序中主要变量定义

变量名称RAM单元/寄存器功能

SDA P3.3 IIC数据总线

SCL P3.4 IIC时钟线

RST P3.5 IIC复位线

BA P1.0 步进电机驱动

BB P1.1 步进电机驱动

BC P1.2 步进电机驱动

BD P1.3 步进电机驱动

WSLA 70H 取器件地址(写)

RSLA 71H 取器件地址(读)

DISDA 20H 源数据块首地址

DISCON 08H 写入数据个数

DATA_1 30H 变量区首地址

6 系统软件中各个子程序的功能描述

6主程序程序流程图

见附录

7程序清单

SDA BIT P3.3 SCL BIT P3.4 RST BIT P3.5 BA BIT P1.0 BB BIT P1.1 BC BIT P1.2 BD BIT P1.3 WSLA EQU 70H RSLA EQU 71H DISDA EQU 20H DISCON EQU 08H DATA_1 EQU 30H ORG 8000H LJMP 8100H

ORG 8003H LJMP INT_7290

;按键中断入口地址ORG 801BH

LJMP TI_INT

;定时器中断入口地址ORG 8100H

;********主程序开始************* ;INT0实现按键中断,INT1用于定时器;******************************* START: MOV SP,#60H

CLR RST ;复位

LCALL DELAY

SETB RST

SETB EA

SETB EX0

CLR IT0 ;开INT0中断SETB PX0 ; 高优先级

MOV TMOD,#10H ;定时器1设

;为模式1

MOV TH1,#00H

MOV TL1,#00H

SETB ET1 ;开INT1中断

SETB TR1

CLR A

SETB F0 ;初始标识位

MOV R1,#10H ;节拍初始

MOV R5,#08H

;******************************* ; 相序表

;******************************* MOV 10H,#08H ;D 正转

MOV 11H,#0CH ;DC

MOV 12H,#04H ;C

MOV 13H,#06H ;CB

MOV 14H,#02H ;B

MOV 15H,#03H ;BA

MOV 16H,#01H ;A

MOV 17H,#09H ;AD

MOV 18H,#09H ;AD 反转

MOV 19H,#01H ;A

MOV 1AH,#03H ;AB

MOV 1BH,#02H ;B

MOV 1CH,#06H ;BC

MOV 1DH,#04H ;C

MOV 1EH,#0CH ;CD

MOV 1FH,#08H ;D

;******************************* ; 建立变量缓冲区(30H~37H)

; 显示SPEED=00

;******************************* MOV DATA_1,#00H

MOV DATA_1+1,#00H

MOV DATA_1+2,#12H

MOV DATA_1+3,#17H

MOV DATA_1+4,#16H

MOV DATA_1+5,#16H

MOV DATA_1+6,#15H

MOV DATA_1+7,#14H

;******************************* ; 通过查表建立显示缓冲区

;(20H~27H)

;******************************* MOV DPTR,#LEDSEG

MOV R7,#DISCON

MOV R0,#DISDA

MOV R1,#DATA_1

LOOP1: MOV A,@R1

MOVC A,@A+DPTR

MOV @R0,A

INC R1

INC R0

DJNZ R7,LOOP1

;******************************* ; 写入数据

;******************************* LOOP: MOV R7,#DISCON

MOV R2,#10H

MOV R3,#WSLA

MOV R0,#DISDA

LCALL WRNBYT

LCALL DELAY

SJMP $ ;等待中断

;******************************* ; 字形码

;******************************* LEDSEG:DB 0FCH,60H,0DAH,0F2H

DB 66H,0B6H,0BEH,0E4H

DB 0FEH,0F6H,0EEH,3EH

DB 9CH,7AH,9EH,8EH

DB 0FAH,1EH,12H,00H

DB 0B6H,0CEH,0DEH,7AH

;S P E D

;******************************* ; 选择相速(INT1)

;******************************* TI_INT:PUSH ACC

MOV A,29H ;判断键值

J0: CJNE A,#00H,J1

MOV TH1,#00H

MOV TL1,#00H

SETB F0

;F0高电平正转

SJMP OUTPUT ;输出步进

J1: CJNE A,#01H,J2

MOV TH1,#00H

MOV TL1,#00H ;档1

SETB F0

SJMP OUTPUT

J2: CJNE A,#02H,J3

MOV TH1,#60H

MOV TL1,#60H ;档2

;不同按键设置不同速度,

;正反转各设四档

SETB F0

SJMP OUTPUT

J3: CJNE A,#03H,J4

MOV TH1,#90H

MOV TL1,#90H ;档3

SETB F0

SJMP OUTPUT

J4: CJNE A,#04H,J5

MOV TH1,#0D0H

MOV TL1,#0D0H ;档4

SETB F0

SJMP OUTPUT

J5: CJNE A,#05H,J6

MOV TH1,#00H

MOV TL1,#00H ;档1

CLR F0

SJMP OUTPUT

J6: CJNE A,#06H,J7

MOV TH1,#60H

MOV TL1,#60H ;档2

CLR F0

SJMP OUTPUT

J7: CJNE A,#07H,J8

MOV TH1,#90H

MOV TL1,#90H ;档3

CLR F0

SJMP OUTPUT

J8: MOV TH1,#0D0H

MOV TL1,#0D0H ;档4

CLR F0

SJMP OUTPUT OUTPUT:MOV A,P1 ;步进电机转ANL A,#0FH ;取低四位

MOV A,@R1

MOV P1,A

INC R1

DJNZ R5,OUT

JB F0,CWISE;判断正/反 MOV R1,#18H ;反转

SJMP NUM

CWISE: MOV R1,#10H ;正转NUM: MOV R5,#08H

OUT: POP ACC

RETI

;*******************************;

拆分

;******************************* CF: PUSH 02H

PUSH DPH

PUSH DPL

MOV DPTR,#LEDSEG

MOV R2,A

ANL A,#0FH

MOVC A,@A+DPTR

MOV R3,A ;存低4位

MOV A,R2

SWAP A

ANL A,#0FH

MOVC A,@A+DPTR

MOV R4,A ;存高4位

POP DPL

POP DPH

POP 02H

RET

;*******************************;

延时程序

;******************************* DELAY: PUSH 00H

PUSH 01H

MOV R0,#00H

DELAY1: MOV R1,#00H

DJNZ R1,$

DJNZ R0,DELAY1

POP 01H

POP 00H

RET

;******************************* ; 7290中断

;******************************* INT_7290: PUSH 00H

PUSH 02H

PUSH 03H

PUSH 04H

PUSH 07H

PUSH ACC

PUSH PSW

LCALL DELAY;按键消抖

LCALL RDKEY;读键值

NOP ;用于观察读入键值

CJNE A,#10H,AKEY1 PANDUAN: SETB PT1 ;标志位

CLR PX0

;交换优先级,用于停止后再继续工作AKEY: JB P3.2,$ ;查询

LCALL DELAY

LCALL RDKEY

CJNE A,#0AH,AKEY1

SJMP PANDUAN

AKEY1: JC INPUT

;此时为档速设定键

SJMP RESTART INPUT: CJNE A,#05H,NEXT

;判断正/反转NEXT: JNC WISE

LCALL CF

MOV 20H,R3

MOV 21H,R4

MOV 21H,#0FCH

;0,正转表示

SJMP OVER

WISE: SUBB A,#04H

LCALL CF

MOV 20H,R3

MOV 21H,R4

MOV 21H,#60H

;1,反转表示

SJMP OVER RESTART: LCALL CF

MOV 20H,R3

MOV 21H,R4

OVER: LCALL SHOW

SETB PX0

;重新将INT0的优先级置高

POP PSW

POP ACC

POP 07H

POP 04H

POP 03H

POP 02H

POP 00H

RETI

;******************************* ; 读键值

;******************************* RDKEY: MOV R0,#28H

MOV R7,#04H

MOV R2,#00H

MOV R3,#WSLA

MOV R4,#RSLA

LCALL RDADD

MOV A,29H

RET

;******************************* ; 显示程序

;******************************* SHOW: MOV R7,#02H

MOV R2,#10H

MOV R3,#WSLA

MOV R0,#DISDA

LCALL WRNBYT

LCALL DELAY

RET

;***************************** ;通用的I2C通讯子程序(略)

;***************************** END

8系统调试运行结果说明、分析所出现得问题,设计体会与建议

8.1系统调试运行结果

运行程序后,LED显示屏上显示“speed=00”。按下对应按键后,LED显示屏与步进电机状态如下表所示。

8.2实验出现问题分析

●问题一:加入定时器后,LED显示屏无法正常显示

●解决方法:改变7290连线从P1.4~P1.7至P3.2~P3.5。单步调试,注意中断优先

级的设定。等待中断的指令应为SJMP $

●问题二:7290中断键值读入后,键值被改变

●解决方法:在调用的子程序中,CF、RDKEY、TI_INT中对A进行保护。

●问题三:步进电机停止后无法重启

●解决方法:在比较停止键的键值后,改变按键中断INT0与定时器中断INT1的

优先级。定时器中断设为高优先级,按键中断设为低优先级。

●问题四:步进电机停止后,LED显示屏上无法显示当前步进电机转速与旋转方

●解决方法:当步进电机停止后,调用拆分子程序,显示子程序显示当前步进电

机转速与旋转方向。

8.3设计体会与建议

本次设计时出现了许多小问题,在解决时需要仔细单步调试,观察各寄存器存储数值的变化。程序里有外部中断和定时器中断,需要处理好优先级关系。

单片机的综合设计实验涉及以前学过的多方面知识,是对个人能力一个很好的提高。期望以后能有更多的选题。

9 结论及设计体会

本实验基本完成设计要求。在完成设计的过程中,遇到不少问题,一一解决后,收获颇深。单片机的语言和汇编语言很相似,因此借助以前的知识可以很快上手,但是51单片机使用更方便,应用也更广。

许多知识只有实践后才能真正了解,作为工科生,多实践,在实践中多思考,善于发现。正如此次51单片机调试的过程,单步调试找出问题所在,分析原因,就能快速改正错误了。

参考文献

MCS-51单片机应用实验教程陈育斌主编

基于单片机的电机转速测量系统

兰州交通大学 毕业设计文献综述 题目:基于单片机的电机转速测量系统Title:Motor speed measuring system based on single chip microcomputer 姓名:韦宝芸

学号:3 班级:机设1202班 摘要 本文首先叙述了单片机测量转速的系统构成及转速测量的几种常用方法,分析了相应方法在测量上的特点、误差和计算。其次,针对特定的应用环境,设计出一种基于 80C51单片机的全数字式测速系统,详细阐述了系统的工作原理,指出产生误差的可能原因,并给出了具体解决的方法;根据系统要求编制了源程序,分析其工作流程。最后,对构建的系统利用仿真机进行调试,对测量指标进行了分析、比较并提出改进方案。 关键词:单片机、转速、测量精度 Abstract

This paper first discussed some ways for rotary speed measure. It analyzed characters and errors of these ways. Second, it designed full digital measure system based on a Single-Chip Microprocessor(80C51) responding to special application, stated the working theory of the system and the methods to solve the errors, writed the working programmes by A51 assemble language. Finally, this system implementation was confirmed by using of Keil-51 simulator. The characters on the error margin and accuracy was summarized. Keywords : Single-Chip Microprocessor、rotary speed 、measureprecision Keil-51

接口实验报告-基于51单片机的脉搏温度测试系统-

摘要 接口实验报告 题目:脉搏波体温自动采集系统院(系):电子工程与自动化学院 专业:仪器仪表工程 学生姓名: 学号: 指导老师:李智 职称:教授 20 年8月28日 I

摘要 本文介绍了一种基于51单片机的心率体温采集系统。首先介绍了51系列单片机的内部相关配置、工作原理以及编程方法,其次介绍了温度传感器PT100的相关测温方法以及通过红外光电传感器TCRT5000对射的方法来抓取人体脉搏信号。此次设计的电路部分主要包括:传感测量电路、放大电路、滤波整形电路、AD转换电路、控制电路、电源供电电路等。上位机为通过VC编程界面。通过上位机按键控制,将PT100及TCRT5000输入的微弱信号进行放大整形,最后AD采集转换传送给单片机,在上位机界面上显示相关体温及心率信息。 本次硬件设计基于比较稳定可行、低成本的设计思想,软件设计采用模块化的设计方法,并且详细分析了红外传感器TCRT5000应用于心率测量上以及PT100应用于温度测量上的原理及优点,阐述了其他各配合电路的组成与工作特点,并且通过仿真进行电路的可行性验证,最后完成实物电路的设计,使得本次课题的预期结果得以实现。 关键词:51单片机;传感器;仿真;AD转换

Abstract Abstract This paper introduced a heart rate and body temperature acquisition system that based on 51 single chip microcomputer. First the internal configurations of 51 single chip microcomputer are introduced. And the paper also tell how 51 single chip microcomputer works and how can we program on it. Then the method of using temperature sensor PT100 to get body temperature is introduced, and we use infrared photoelectric sensor TCRT5000 to get the pulse signal of human body.The design of the circuit mainly comprises sensing circuit, amplifying circuit, filtering and shaping circuit, AD converting circuit, counting and displaying circuit, controlling circuit, power supplying circuit and so on. When the keyboard is pressed, the system starts to get signal. The small signal from PT100 and TCRT5000 will be amplified and shaped. Then ad converter will change the analog signal into digital signal and send to 51 single chip microcomputer. At last LCD1602 will display the information of body temperature and heart rate. Keywords: Piezoelectric sensors;control circuit;counters;Multisim2001 simulation software control circuit. III

51单片机控制的步进电机C语言程序

我上周刚做的这个实验成功拉,给你参考一下吧这可是我当时辛辛苦苦编出来的啊,不过我用的是L298驱动的和ULN2003一样,你把它换成2003就行拉 #include unsigned char code table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf 9,0x00,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0x00}; unsigned char temp,temp_old; unsigned char key; unsigned char i,j,k,m,s; void delay(int i) { for(m=i;m>0;m--) for(j=250;j>0;j--) for(k=10;k>0;k--); } void saomiao() { P3=0xff; P3_4=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--)

for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp) { case 0x0e: key=1; break; case 0x0d: key=2; break; case 0x0b: key=3; break; case 0x07: key=4; break; } temp=P3;

temp=temp&0x0f; while(temp!=0x0f) { temp=P3; temp=temp&0x0f; } } } P3=0xff; P3_5=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp)

51单片机测温程序

#include #include #define uint unsigned int #define uchar unsigned char uinti,numone,numtwo,temp; ucharqian,bai,shi,ge,xiaoshu; sbitdq=P2^2; sbitdula=P2^6; sbitwela=P2^7; uchar code list[]={ 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 0x39 , 0x5e , 0x79 , 0x71,0x80 }; unsigned char code listone[] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; void delay(uint z) { uintx,y; for(x=100;x>0;x--) for(y=z;y>0;y--); } voiddelayone(unsigned char i)

{ while(--i); } /****************************************** 此延时函数针对的是12Mhz的晶振 delay(0):延时518us 误差:518-2*256=6 delay(1):延时7us (原帖写"5us"是错的)delay(10):延时25us 误差:25-20=5 delay(20):延时45us 误差:45-40=5 delay(100):延时205us 误差:205-200=5 delay(200):延时405us 误差:405-400=5*/ voidshuma(uchar temp) { shi=temp/100; ge=temp%100/10; xiaoshu=temp%10; dula=1; P0=list[shi]; dula=0; P0=0xff; wela=1; P0=0xfe;

基于单片机的直流电机转速测量与显示(DOC)

目录 绪论 (2) 第1章参数计算与设备选型 (3) 1.1控制芯片 (3) 1.2测速发电机 (4) 1.3模数转化器件——ADC0809 (6) 第2章系统设计 (9) 2.1 系统方框图 (9) 2.2 硬件设计 (10) 2.2.1 直流测速发电机 (10) 2.2.2 ADC0809与单片机连接 (10) 2.2.3 数码管 (11) 2.2.4 综合接线图 (11) 2.3 软件设计 (12) 2.3.1 程序设计思路说明 (12) 2.3.2 总程序控制流程图 (13) 2.3.3 ADC0809工作流程图及程序 (14) 2.3.4显示部分工作流程图及程序 (15) 第3章结论 (18) 参考文献 (19)

绪论 在现代工业自动化高度发展的时期,几乎所有的工业设备都离不开电机,形形色色的电机在不同领域发挥着很重要的作用。与之而来的问题是,如何更好地控制电机,对于不同的场合,对电机的控制要求是不同的,但大部分都会涉及到直流电机的转速测量,从而利用转速来实施对直流电机的控制。 直流电机转速作为直流电机的一项重要技术指标,在各个应用场合都有重要的研究价值,例如在发动机,电动机,机床主轴等旋转设备的试验运转和控制中,常需要分时或连续测量,显示其转速及瞬时速度等,转速是其他大部分技术参数的计算来源,因此,准确测量直流电动机的转速具有重要的研究意义和理论价值。 目前,对直流电动机的速度检测方法很多,从整体上可分为模拟检测和数字检测方法。 模拟检测:即利用测速电机作为发电机,通过检测反电势E的大小和极性可得到转速N和电机转向,采用这种方法直接可以得到转速N和输出电压的特性曲线,直观,但也有很多不足,比如在高速和低速情况下实际输出偏离理想特性。 数字检测技术:即通过分析数字信号产生的一系列脉冲间接获取电机转速。如光电旋转编码器是将检测圆盘划分为等距的三个同心圆,最外环和次外环分别用等距的黑白条纹分开,且最外环和次外环的缝隙位置相位差为90度,用于判断电机的转速,最内环只有一个黑条纹,用作定位脉冲或者是复位脉冲,利用光电编码器输出的脉冲可以计算转速,具体的又可分为M法,T法和M\T法。 此外,市场上已经有了技术成熟的电机测速装置,如利用霍尔元件设计制作的直流电机测速仪等,凭借其精度高,稳定性好等优势占有重要的一席之地。 而本次微机控制原理课程设计的任务是直流电机速度的测量与显示。主要要求是通过测速直流发电机作为传感器,检测直流电机的转速,并输出与转速相关的电压,通过ADC0809芯片将测速发电机输出电压转换成电压的数字信号。控制芯片采用AT89C51将采集转换后的数字信号进行处理,得到转速,并通过四位数码管予以显示。整体上能够完成从转速检测到数据处理到显示的一整套功能。

基于AT89C51单片机的测温系统

引言 本文主要介绍了一个基于AT89C51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感器DS18B20的数据采集过程,并介绍了利用C语言编程对DS18B20的访问,该系统可以方便的实现实现温度采集和显示,使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点。DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量。数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温精确、功能多样话等优点。其主要用于对测温要求准确度比较高的场所,或科研实验室使用,该设计使用STC89C52单片机作控制器,数字温度传感器DS18B20测量温度,单片机接受传感器输出,经处理用LED数码管实现温度值显示。 .

一、设计要求 通过基于MCS-51系列单片机AT89C51和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,C语言的设计;并且把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础。 以MCS-51系列单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行单点温度检测,检测精度为0.5摄氏度。温度显示采用3位LED数码管显示,两位整数,一位小数。具有键盘输入上下限功能,超过上下限温度时,进行声音报警。 二、基本原理 原理简述:数字温度传感器DS1820把温度信息转换为数字格式;通过“1-线协议”,单片机获取指定传感器的数字温度信息,并显示到显示设备上。通过键盘,单片机可根据程序指令实现更灵活的功能,如单点检测、轮转检测、越数字温度传感器的温度检测及显示的系统原理图如图DS1820限检测等。基于 图 2.1 基于DS1820的温度检测系统框图 三:主要器件介绍(时序图及各命令序列,温度如何计算等) 系统总体设计框图 由于DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。 测温电路设计总体设计框图如图所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,显示采用4位LED数码管,报警采用蜂鸣器、LED灯实现,键盘用来设定报警上下限温度。 .. . 测温电路设计总体设计框图图3.11.控制模块 AT89S52单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含有8kb的可系统编程的Flash只读程序存储器,器件采用ATMEL公

基于51单片机的步进电机控制-设计报告(说明书)及源程序

南京XX大学 指导老师:张X 课程设计基于51单片机的步进电机控制 机械电子工程学院 测控技术与仪器 XXXXX Xxx 2012年1年4日

步进电机控制系统 [摘要]本课程设计的内容是利用51单片机,达到控制步进电机的启 动、停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2803,ULN2803具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。 关键字:步进电机、数码管、51单片机、ULN2803 一步进电机与驱动电路 1.1 什么是步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 1.2 步进电机的种类 步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。 1.3 步进电机的特点 1.精度高一般的步进电机的精度为步进角的3-5%,且不累积。可在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,这是步进电动机最突出的优点 2.过载性好其转速不受负载大小的影响,不像普通电机,当负载加大时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的场合; 3.控制方便步进电机是以“步”为单位旋转的,数字特征比较明显,这样就给计算

51单片机汇编程序范例

16位二进制数转换成BCD码的的快速算法-51单片机2010-02-18 00:43在做而论道上篇博文中,回答了一个16位二进制数转换成BCD码的问题,给出了一个网上广泛流传的经典转换程序。 程序可见: http: 32.html中的HEX2BCD子程序。 .说它经典,不仅是因为它已经流传已久,重要的是它的编程思路十分清晰,十分易于延伸推广。做而论道曾经利用它的思路,很容易的编写出了48位二进制数变换成16位BCD码的程序。 但是这个程序有个明显的缺点,就是执行时间太长,转换16位二进制数,就必须循环16遍,转换48位二进制数,就必须循环48遍。 上述的HEX2BCD子程序,虽然长度仅仅为26字节,执行时间却要用331个机器周期。.单片机系统多半是用于各种类型的控制场合,很多时候都是需要“争分夺秒”的,在低功耗系统设计中,也必须考虑因为运算时间长而增加系统耗电量的问题。 为了提高整机运行的速度,在多年前,做而论道就另外编写了一个转换程序,程序的长度为81字节,执行时间是81个机器周期,(这两个数字怎么这么巧!)执行时间仅仅是经典程序的!.近来,在网上发现了一个链接: ,也对这个经典转换程序进行了改进,话是说了不少,只是没有实质性的东西。这篇文章提到的程序,一直也没有找到,也难辩真假。 这篇文章好像是选自某个著名杂志,但是在术语的使用上,有着明显的漏洞,不像是专业人员的手笔。比如说文中提到的:

“使用51条指令代码,但执行这段程序却要耗费312个指令周期”,就是败笔。51条指令代码,真不知道说的是什么,指令周期是因各种机型和指令而异的,也不能表示确切的时间。 .下面说说做而论道的编程思路。;----------------------------------------------------------------------- ;已知16位二进制整数n以b15~b0表示,取值范围为0~65535。 ;那么可以写成: ; n = [b15 ~ b0] ;把16位数分解成高8位、低8位来写,也是常见的形式: ; n = [b15~b8] * 256 + [b7~b0] ;那么,写成下列形式,也就可以理解了: ; n = [b15~b12] * 4096 + [b11~b0] ;式中高4位[b15~b12]取值范围为0~15,代表了4096的个数; ;上式可以变形为: ; n = [b15~b12] * 4000 + {[b15~b12] * (100 - 4) + [b11~b0]} ;用x代表[b15~b12],有: ; n =x * 4000 + {x * (100 - 4) + [b11~b0]} ;即: ; n =4*x (千位) + x (百位) + [b11~b0] - 4*x ;写到这里,就可以看出一点BCD码变换的意思来了。 ;;上式中后面的位:

基于51单片机的温度警报器的设计

西安文理学院物理与机械电子工程学院课程设计任务书

目录 摘要 (3) 1 引言 (3) 1.1课题背景 (3) 1.2研究内容和意义 (5) 2 芯片介绍 (5) 2.1 DS18B20概述 (5) 2.1.1 DS18B20封装形式及引脚功能 (6) 2.1.2 DS18B20内部结构 (6) 2.1.3 DS18B20供电方式 (9) 2.1.4 DS18B20的测温原理 (10) 2.1.5 DS18B20的ROM命令 (11) 2.2 AT89C52概述 (13) 2.2.1单片机AT89C52介绍 (13) 2.2.2功能特性概述 (13) 3 系统硬件设计 (13) 3.1 单片机最小系统的设计 (13) 3.2 温度采集电路的设计 (14) 3.3 LED显示报警电路的设计 (15) 4 系统软件设计...................................................15 4.1 流程图........................................................15 4.2 温度报警器程序.................................................16 4.3 总电路图..................................................... 19 5总结 (20)

摘要 随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。 本文主要介绍了一个基于AT89C52单片机的数字温度报警器系统。详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:单片机;温度检测;AT89C52;DS18B20; 1 引言 1.1课题背景 温度是工业对象中主要的被控参数之一,如冶金、机械、食品、化工各类工业生产中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的温度处理要求严格控制。随着科学技术的发展,要求温度测量的范围向深度和广度发展,以满足工业生产和科学技术的要求。 基于AT89C51单片机提高了系统的可移植性、扩展性,利于现代测控、自动化、电气技术等专业实训要求。以单片机为核心设计的温度报警器,具有安全可靠、操作简单方便、智能控制等优点。 温度对于工业生产如此重要,由此推进了温度传感器的发展。温度传感器主要经过了三个发展阶段[1]: (1)模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、

基于51单片机控制步进电机

单片机原理及系统课程设计 1 引言 步进电机又称为脉冲电动机或阶跃电动机,它是基于最基本的电磁感应作用,将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,大型望远镜,卫星天线定位系统等等。 随着经济的发展,技术的进步和电子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提出了更高的要求。 步进电机的原始模型起源于1830年至1860年,1870年前后开始以控制为目的的尝试,应用于氩弧灯的电极输送机构中,这被认为最早的步进电机。 1950年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易。到20世纪60年代后期,在步进电机本体方面随着永磁材料的发展,各种实用性步进电机应运而生。步进电机往后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。 在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。

2 设计方案与原理 4.1 设计方案 设计一个51单片机四相步进电机控制系统要求系统具有如下功能: (1)由I/O口产生的时序方波作为电机控制信号; (2)信号经过驱动芯片驱动电机的运转; (3)电机的状态通过键盘控制,包括正转,反转,加速,减速,停止和单步运行。 4.2 设计原理 步进电机实际上是一个数字\角度转换器,也是一个串行的数\模转换器。步进电机的基本控制包括启停控制、转向控制、速度控制、换向控制4个方面。从结构上看,步进电机分为三相、四相、五相等类型,本次设计的是四相电机。四相步进电机的工作方式有单四拍、双四拍和单双八拍三种。 在本次设计中,我们使用的是四相单八拍的工作方式。通过P1口给A,B,C,D四相依次输出高电平即可实现步进电机的旋转,通过控制两次输出的间隔,即可实现对步进电机的速度控制。 图 2.1 步进电机内部结构截图 根据步进电机的相关相序表我们可以正常的控制电机的步进运行。

51单片机实用汇编程序库(word)

51 单片机实用程序库 4.1 流水灯 程序介绍:利用P1 口通过一定延时轮流产生低电平 输出,以达到发光二极管轮流亮的效果。实际应用中例如:广告灯箱彩灯、霓虹灯闪烁。 程序实例(LAMP.ASM) ORG 0000H AJMP MAIN ORG 0030H MAIN: 9 MOV A,#00H MOV P1,A ;灭所有的灯 MOV A,#11111110B MAIN1: MOV P1,A ;开最左边的灯 ACALL DELAY ;延时 RL A ;将开的灯向右边移 AJMP MAIN ;循环 DELAY: MOV 30H,#0FFH D1: MOV 31H,#0FFH D2: DJNZ 31H,D2 DJNZ 30H,D1 RET END 4.2 方波输出 程序介绍:P1.0 口输出高电平,延时后再输出低电 平,循环输出产生方波。实际应用中例如:波形发生器。 程序实例(FAN.ASM): ORG 0000H MAIN: ;直接利用P1.0 口产生高低电平地形成方波////////////// ACALL DELAY SETB P1.0 ACALL DELAY 10 CLR P1.0 AJMP MAIN ;////////////////////////////////////////////////// DELAY: MOV R1,#0FFH DJNZ R1,$ RET

五、定时器功能实例 5.1 定时1 秒报警 程序介绍:定时器1 每隔1 秒钟将p1.o 的输出状态改变1 次,以达到定时报警的目的。实际应用例如:定时报警器。程序实例(DIN1.ASM): ORG 0000H AJMP MAIN ORG 000BH AJMP DIN0 ;定时器0 入口 MAIN: TFLA G EQU 34H ;时间秒标志,判是否到50 个 0.2 秒,即50*0.2=1 秒 MOV TMOD,#00000001B;定时器0 工作于方式 1 MOV TL0,#0AFH MOV TH0,#3CH ;设定时时间为0.05 秒,定时 20 次则一秒 11 SETB EA ;开总中断 SETB ET0 ;开定时器0 中断允许 SETB TR0 ;开定时0 运行 SETB P1.0 LOOP: AJMP LOOP DIN0: ;是否到一秒//////////////////////////////////////// INCC: INC TFLAG MOV A,TFLAG CJNE A,#20,RE MOV TFLAG,#00H CPL P1.0 ;////////////////////////////////////////////////// RE: MOV TL0,#0AFH MOV TH0,#3CH ;设定时时间为0.05 秒,定时 20 次则一秒 RETI END 5.2 频率输出公式 介绍:f=1/t s51 使用12M 晶振,一个周期是1 微秒使用定时器1 工作于方式0,最大值为65535,以产生200HZ 的频率为例: 200=1/t:推出t=0.005 秒,即5000 微秒,即一个高电

基于51单片机的电机转速测量与显示系统

目录 1 绪论 (2) 1.1 题目背景及目的 (2) 1.2 题目研究方法 (2) 2 系统设计基础知识 (3) 2.1 直流电机的基本知识 (3) 2.2 51单片机的基础知识 (7) 2.3 LED显示管 (10) 2.4 传感器 (10) 3 系统总体方案设计 (14) 3.1 系统分析 (14) 3.2 设计思路和方案 (16) 3.3 系统构成 (17) 4 硬件电路设计 (19) 4.1 电源电路 (19) 4.2 转速测量电路 (19) 4.3 LED显示模块 (21) 4.4 系统硬件设计 (21) 5 系统软件设计 (23) 5.1 计时方案的选择 (23) 5.2 软件结构划分 (24) 6设计心得与体会 (26)

7参考文献 (26)

摘要 单片机又称单片微控制器(MCU),它把一个计算机系统集成到一个芯片上。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。随着电子技术的迅猛发展,单片机技术也有了长足的发展,目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹,导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。 各种电机在工业得到广泛应用,为了能方便的对电机进行控制、监视、调速,有必要对电机的转速进行测量,从而提高自动化程度。转速是工程上一个常用参数。转速测量的方法很多,采用光电开关管测量转速是较为常用的测量方法。 在本系统设计中,我们以51单片机为核心控制单元,以红外对管(或称光/电,电/光二极管)为传感器,通过光电传感器实时采集电机转速并进行处理与显示,设计出一个电动机转速测量系统,并研究其测量精度、测量围及响应速度.程序设计部分分为初始化模块、脉冲计数模块、计时模块、参数调整模块和显示模块.最后通过试验测试,得到了相应的技术参数,并对转速测量系统的误差进行了分析.要求设计的系统稳定可靠、抗干扰能力强、成本低,使用方便。

基于AT89C51单片机的温度传感器

基于AT89C51单片机的温度传感器 目录 摘要.............................................................. I ABSTRACT........................................................... I I 第一章绪论 (1) 1.1 课题背景 (1) 1.2本课题研究意义 (2) 1.3本课题的任务 (2) 1.4系统整体目标 (2) 第二章方案论证比较与选择 (3) 2.1引言 (3) 2.2方案设计 (3) 2.2.1 设计方案一 (3) 2.2.2 设计方案二 (3) 2.2.3 设计方案三 (3) 2.3方案的比较与选择 (4) 2.4方案的阐述与论证 (4) 第三章硬件设计 (6) 3.1 温度传感器 (6) 3.1.1 温度传感器选用细则 (6) 3.1.2 温度传感器DS18B20 (7) 3.2.单片机系统设计 (13)

3.3显示电路设计.................................错误!未定义书签。 3.4键盘电路设计................................错误!未定义书签。 3.5报警电路设计.................................错误!未定义书签。 3.6通信模块设计.................................错误!未定义书签。 3.6.1 RS-232接口简介..............................错误!未定义书签。 3.6.2 MAX232芯片简介.............................错误!未定义书签。 3.6.3 PC机与单片机的串行通信接口电路.............错误!未定义书签。 第四章软件设计..................................错误!未定义书签。 4.1 软件开发工具的选择..........................错误!未定义书签。 4.2系统软件设计的一般原则.......................错误!未定义书签。 4..3系统软件设计的一般步骤......................错误!未定义书签。 4.4软件实现....................................错误!未定义书签。 4.4.1系统主程序流程图.........................错误!未定义书签。 4.4.2 传感器程序设计...........................错误!未定义书签。 4.4.3 显示程序设计.............................错误!未定义书签。 4.4.4 键盘程序设计.............................错误!未定义书签。 4.4.5 报警程序设计.............................错误!未定义书签。 4.4.6 通信模块程序设计.........................错误!未定义书签。 第五章调试与小结..................................错误!未定义书签。致谢...............................................错误!未定义书签。参考文献...........................................错误!未定义书签。附录...............................................错误!未定义书签。系统电路图.......................................错误!未定义书签。系统程序.........................................错误!未定义书签。

基于AT89C51单片机的步进电动机控制系统设计

重庆科技大学 本科毕业论文 基于AT89C51单片机的步进电动机控制系统 设计 考生姓名: XXXXX X 准考证号: XXXXXXXXXXXX 专业层次:本科院(系):XXXXXXXXXXXXXXXXXXX 指导教师: XXXXXX 职称:讲师 重庆科技大学 二O一二年月日

基于AT89C51单片机的步进电动机控制系统 设计 考生姓名: XXXXXX 准考证号: XXXXXXXXXXXX 专业层次:本科 指导教师: XXXXXXX 院(系):机械与动力工程学院 重庆科技大学 二O一二年九月二十日

摘要 随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。 步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。 本设计是采用AT89C51单片机对步进电机的控制,通过I/O口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。 实践证明,基于单片机控制的步进电机比传统的步进控制器具有更好的性能,更加简单、方便、可靠。本设计的主要研究对象就是开环伺服系统中最常用的执行器件——步进电机。 关键词:步进电机,单片机,正反转控制,键盘控制,LCD液晶显示

51单片机中的汇编语言与C语言.

51单片机中的汇编语言与 C 语言 C 语言, 更多的是为了掌握单片机的应用, C 语言是高效的应用程序开发工具, 与汇编语言比却不是开发高效应用程序的工具。就目前而言, 更多的是为了应用单片机, 开发应用程序, 更多的是强调开发效率, 而不是程序的运行效率 (相对而言。再就是应用程序对单片机内部资源的使用效率, 这在过去, 单片机内部资源紧缺的年代, 特别的强调, 现在已经不是特别重要了。所以, 大多数人都认为,只用 C 语言,就可以应对大多数单片机的应用开发了。 其实,汇编语言跟 C 语言在本质上一样的,只是语言形式不同而已,一个接近底层逻辑, 一个接近人类语言, 本质上都是对寄存器或存储器的读写操作而已。 汇编语言中,用 MOV 来回传送数据, C 语言里,用等号表示数据传送。汇编语言中,用 call 转去执行子过程程序, C 语言里,用个函数名调用子程序。汇编语言中,用 JMP 完成分支转移, C 语言里用 if 、 switch 、 while 、 for 来判断跳转。汇编语言跟 C 一样可以给寄存器指定命名,然后对定义的名称进行操作。汇编语言提供了对很多标志位的操作, C51根据需要也进行了改进, C 语言可以通过 #include给存储器命名来简化操作。 我觉得, C 语言是最接近汇编语言的一种高级语言, 要说不同, 也许具有大量函数的函数库,是 C 语言与汇编语言的最大区别,也是 C 语言比汇编语言有更大开发效率的原因。 在应用汇编语言进行应用程序开发时, 如果精心规划好程序结构, 设计好各种数据结构、子程序、中断程序,积累大量的算法程序(相当于函数库,也可以高效率的用汇编语言进行单片机开发。倒是兼容性、可移植性是汇编语言的最大限制,因为不同单片机有不同的指令系统,而 C 语言把这个问题,交给了机器也就是编译器去解决了。其实, 计算机的发展, 就是把尽可能多的事情交个机器去解决。

基于单片机转速测量显示装置的设计

目录 1、概述 1.1 相关背景和应用简介 1.2 总体设计方案........................................................................................... .. (2) 1、各模块的功能介绍 (2) 2、总体设计框图 (3) 2、硬件电路的设计 2.1 传感器的选型及电路接口设计 (4) 2.2 单片机最小系统设计 (6) 一、复位电路 (6) 二、晶振电路 (8) 2.3 显示电路设计 (9) 2.4 脉冲电路设计 (11) 3、软件部分的设计 3.1 总体流程图及子程序流程图 (12) 3.2 主要程序 (13) 4、仿真及结果 4.1 数据分析表 (16) 4.2 仿真界面图 (16) 5、小结 课程设计小结 (17) 6、参考文献

参考文献 (18) 1、概述 1.1相关背景和应用简介 目前国内外测量电机转速的方法很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。传统的电机转速检测多采用测速发电机或光电数字脉冲编码器,也有采用电磁式(利用电磁感应原理或可变磁阻的霍尔元件等)、电容式(对高频振荡进行幅值调制或频率调制)等,还有一些特殊的测速器是利用置于旋转体内的放射性材料来发生脉冲信号.其中应用最广的是光电式,光电式测系统具有低惯性、低噪声、高分辨率和高精度的优点.加之激光光源、光栅、光学码盘、CCD 器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。而采用光电传感器的电机转速测量系统测量准确度高、采样速度快、测量范围宽和测量精度与被测转速无关等优点,具有广阔的应用前景。 1.2 总体设计方案 1、各模块的功能介绍 图1.1 系统原理图

基于51单片机的温度测量系统

基于51单片机的温度测量系统 原作者:飓风添加时间:2008-04-03 原文发表:2008-04-03 人气:128 来源:赵 娜赵刚于珍珠郭守清 本文章共3366字,分3页,当前第1 摘要: 单片机在检测和控制系统中得到广泛应用, 温度则是系统常需要测量、控制和保持一个量。本文从硬件和软件两方面介绍了AT89C2051单片机 温度控制系统设计,对硬件原理图和程序框图作了简洁描述。 关键词: 单片机AT89C2051;温度传感器DS18B20;温度;测量 引言 单片机在电子产品中应用已经越来越广泛,并且在很多电子产品中也将其用 到温度检测和温度控制。为此在本文中作者设计了基于atmel公司AT89C2051 温度测量系统。这是一种低成本利用单片机多余I/O口实现温度检测电路, 该电路非常简单, 易于实现, 并且适用于几乎所有类型单片机。 一.系统硬件设计 系统硬件结构如图1所示。 https://www.360docs.net/doc/9118887647.html,提示请看下图: 1.1 数据采集 数据采集电路如图2所示, 由温度传感器DS18B20采集被控对象实时温度, 提供给AT89C2051P3.2口作为数据输入。在本次设计中我们所控对象为所处 室温。当然作为改进我们可以把传感器与电路板分离,由数据线相连进行通讯,便于测量多种对象。 DS18B20是DALLAS公司生产一线式数字温度传感器,具有3引脚TO-92小 体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D 转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展16位数字量方 式串行输出,支持3V~5.5V电压范围,使系统设计更灵活、方便;其工作电

相关文档
最新文档