单片机开发范文

时间:2023-04-08 23:21:53

导语:如何才能写好一篇单片机开发,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

单片机开发

篇1

关键词:单片机;开发板;ISP

中图分类号:TP368.1 文献标识码:A文章编号:1007-9599 (2011) 08-0000-02

MCU Development Borad Design of Multi-function MCS-51

Zhang Daode

(Hubei University of Technology Mechanical Engineering,Wuhan430068,China)

Abstract:The develop boarddesigned here is of common functions,

such as water lamp,timer,interrupt,singing by buzzer,X5045 watch dog,Real time clock DS1302,digital temperature sensor DS18B20,parallel D/A converter DAC0832,serial A/D converter TLC0832,RS-232 interface,

dynamic display of digital tub,ISP download online,SRAM6264 etc.It is meaningful for single chip machine study and development.

Keywords:MCU;Development board;ISP

一、前言

MCS-51系列单片机是目前主流的8位单片机之一[1],但由于它的硬件能力有限,本文设计了一种单片机开发板,综合了当下流行的单片机接口电路,很好地扩充了MCS-51单片机的功能。

二、系统主要组成及开发平台

该系统的组成部分的核心是AT89S52单片机芯片,同时扩展了一块RAM6264,并口8155,同时扩充了DAC0832和TLC0832作为AD/DA转换电路,在此基础上还扩充有FM12864中文液晶图形模块接口电路、DS18B20温度传感检测电路,DS1302时钟显示芯片接口,X5045看门狗接口电路,另外将键盘和数码管显示作为独立的模块,方便了使用也使I/O资源空闲,RS-232串口通信电路可实现开发楹和电脑的双机通信。电源方面设置了USB供电和外接电源供电两种方式。

AT89S52单片机口具有8KB的FLASH[2],通过提供的ISP在线下载线可以现场仿真而无须专门的烧写器即可以将目标程序下载到CPU中,在51 MCU_SYSTEM中就可以观察到程序的运行情况。本文所使用的开发工具为µVision2集成开发平台[3],包含一个高效的编辑器、一个项目管理器和一个MAKE工具。并且支持所有Keil C51工具,包括C编译器、宏汇编器连接/定位器、目标代码到HEX转换器。

三、系统主要硬件设计

(一)单片机部分

CPU采用的是AT89S5X系列的单片机,同时兼容飞利浦P89系列的单片机,在本系统是单片机上的EA接的是高电平,表示对ROM的读写从内部程序存储器开始,并且可以延至外部存储器。在P0口接有470欧的排组上拉数据口,系统主频率12MHz。

图1.单片机部分电路设计

(二)8155部分

在本系统中采用8155实现I/O扩展。8155不仅具有两个8位的I/O端口A、B口和一个6位的I/O端口C口,而且还可以提供256个字节的静态RAM存储器和一个14位的定时/计数器。8155和单片机的接口非常简单,目前被广泛应用。系统用一片73LS138实现8155、6264等芯片的片选。

图2.8155接口电路设计

(三)DAC0832部分

DAC0832是8位D/A转换器,,转换结果为一对差动电流输出,转换时间大约为1us。使用单电源+5VD+15V供电[1]。参考电压为-10V-+10V。在此我们直接选择+5V作为参考电压。DAC0832有三种工作方式:直通方式,单缓冲方式,双缓冲方式;在此我们选择直通的工作方式,将XFER、WR2、CS管脚全部接数字地。管脚8接参考电压,在此我们接的参考电压是+5V,如图3所示,可以产生三角波,锯齿波,梯型波等波形。CE2接在74LS138上,通过分配地址完成片选。

图3.DAC0832接口电路

(四)TLC0832

TLC0832是八位串行逐次逼近模数转换器[4],它有两个可选择的输入通道。其接口电路如图所示。TLC0832的通道0外接了电位器,可以模拟不同的电压输入。对TLC0832的控制需要3根I/O口线,可以从单片机及8155接入。

图4.TLC0832接口电路

(五)X5045接口电路

复位电路采用了带I2C的监控芯片X5045,上电即可复位[5],电路如图5所示。另外8155设置了独立的复位方式以弥补和51单片机的复位不同步缺点。

图5.看门狗接口电路

(六)键盘接口电路

在单片机应用系统中通常应具有人机对话功能能随时发出各种控制指令和数据输入以及报告应用系统的运行状态与运行结果。本文所采用的是独立式键盘,其中key代表阻值为1kΩ的排阻。

(七)数码管显示接口电路

系统数码管显示及键盘显示均比较灵活,提供了专门的I/O接口,可以用8155来控制,也可以用单片机来控制。开发板支持4位七段示LED数码显示器。

四、结束语

限于篇幅,本文关于DS1302、LCD显示接口以及系统软件设计等方面未能介绍。本文设计的单片机开发板在实际中发挥了重要作用,适合于单片机学习者及简单的工程应用。

参考文献:

[1]杨光友.单片微型计算机原理及接口技术[M].水利水电出版社,2002

[2]AT89S51 Datasheet.Atmel Inc.2006

[3]赵亮.单片机C语言编程与实例[M].人民邮电出版社,2003

[4]张道德.单片机接口技术(C51版).中国水利水电出版社,2007

[5]X5045 Datasheet.Intersil inc.2006

篇2

关键词 Microchip 单片机 功耗 编程

由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在PIC单片机开发过程中的一些经验、技巧,供同行参考。

1 怎样进一步降低功耗

功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电路形式时,可以采用中途提高工作频率的办法来解决。 具体做法是在闲置的一个I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1),如图1所示。低速状态置RB1=0。需进行快速运算时先置RB1=1,由于充电时,电容电压上升得快,工作频率增高,运算时间减少,运算结束又置RB1=0,进入低速、低功耗状态。工作频率的变化量依R1的阻值而定(注意R1不能选得太小,以防振荡电路不起振,一般选取大于5kΩ)。

另外,进一步降低功耗可充分利用“sleep”指令。执行“sleep”指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用“sleep”指令来等待事件,也可在延时程序里使用(见例1、例2)。在延时程序中使用“sleep”指令降低功耗是一个方面,同时,即使是关中断状态,Port B端口电平的变化可唤醒“sleep”,提前结束延时程序。这一点在一些应用场合特别有用。同时注意在使用“sleep”时要处理好与WDT、中断的关系。

图1 提高工作频率的方法

例1(用Mplab-C编写) 例2(用Masm编写) Delay() Delay { ;此行可加开关中断指令 /*此行可加开关中断指令*/ movlw.10 for (i=0; i

INTCON中的各中断允许位对中断状态位并无影响。当PORT B配置成输入方式时,RB引脚输入在每个读操作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置RBIF=1。在开RB中断前,也许RBIF已置“1”,所以在开RB中断时应先清RBIF位,以免受RBIF原值的影响,同时在中断处理完成后最好是清RBIF位。

3 用Mplab-C高级语言写PIC单片机程序时要注意的问题

3.1 程序中嵌入汇编指令时注意书写格式 见例3。

例3

…… …… while(1) {#asm while(1) { …… #asm /*应另起一行*/ #endasm …… }/*不能正确编译*/ #endasm …… }/*编译通过*/ …… 当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。

3.2 加法、乘法的最安全的表示方法 见例4。

例4

#include #include unsigned int a, b; unsigned long c; void main() { a=200; b=2; c=a*b; } /*得不到正确的结果c=400*/ 原因是Mplab-C以8×8乘法方式来编译c=a*b,返回单字节结果给c,结果的溢出被忽略。改上例中的“c=a*b;”表达式为“c=a;c=c*b;”,最为安全(对加法的处理同上)。

3.3 了解乘除法函数对寄存器的占用

由于PIC片内RAM仅几十个字节,空间特别宝贵,而Mplab-C编译器对RAM地址具有不释放性,即一个变量使用的地址不能再分配给其它变量。如RAM空间不能满足太多变量的要求,一些变量只能由用户强制分配相同的RAM空间交替使用。而Mplab-C中的乘除法函数需借用RAM空间来存放中间结果,所以如果乘除法函数占用的RAM与用户变量的地址重叠时,就会导致出现不可预测的结果。如果C程序中用到乘除法运算,最好先通过程序机器码的反汇编代码(包含在生成的LST文件中)查看乘除法占用地址是否与其它变量地址有冲突,以免程序跑飞。Mplab-C手册并没有给出其乘除法函数对具体RAM地址的占用情况。例5是乘法函数对0×13、0×14、0×19、0×1A地址占用情况。

例5

部分反汇编代码 #include 01A7 081F MOVF 1F,W #include 01A8 0093 MOVWF 13 ;借用 unsigned long Value @0x1 01A9 0820 MOVF 20,W char Xm @0x2d; 01AA 0094 MOVWF 14 ;借用 void main() 01AB 082D MOVF 2D,W {Value=20; 01AC 0099 MOVWF 19 ;借用 Xm=40; 01AD 019A CLRF1A ;借用 Value=Value*Xm 01AE 235F CALL 035Fh ;调用乘法函数 …… 01AF 1283 BCF 03,5 } 01B0 009F MOVWF 1F ;返回结果低字节 01B1 0804 MOVF 04,W 01B2 00A0 MOVWF 20 ;返回结果高字节 4 对芯片重复编程

对无硬件仿真器的用户,总是选用带EPROM的芯片来调试程序。每更改一次程序,都是将原来的内容先擦除,再编程,其过程浪费了相当多的时间,又缩短了芯片的使用寿命。如果后一次编程的结果较前一次,仅是对应的机器码字节的相同位由“1”变成“0”,就可在前一次编程芯片上再次写入数据,而不必擦除原片内容。

在程序的调试过程中,经常遇到常数的调整,如常数的改变能保证对应位由“1”变“0”,都可在原片内容的基础继续编程。另外,由于指令“NOP”对应的机器码为“00”,调试过程中指令的删除,先用“NOP”指令替代,编译后也可在原片内容上继续编程。

另外,在对带EPROM的芯片编程时,特别注意程序保密状态位。厂家对新一代带EPROM芯片的保密状态位已由原来的EPROM可擦型改为了熔丝型,一旦程序代码保密熔丝编程为“0”,可重复编程的 EPROM 芯片就无法再次编程了。使用时应注意这点,以免造成不必要的浪费(Microchip 资料并未对此做出说明)。

参考文献

篇3

关键词:单片机;排队叫号;系统开发

中图分类号:TP311.52文献标识码:A文章编号:1007-9599 (2010) 06-0000-01

Queue No.Calling System Design Based on SCM Development

Ou Zhixuan

(Guangxi City College,Chongzuo,532100,China)

Abstract:This paper has designed a line Queue number system.The system is based on the order of the core line pumping,pumping customers using the client number,client's staff called the number called number;through the display shows the current time the call numbers and the number of people waiting in line,customers line up to keep abreast of information,through reasonable program structure to implement the pumping line number.To improve the efficiency of waiting to address the queue disorder,extrusion and other phenomena after the former owner,to achieve line automation and standardization.Through the use of the system,customers do not have to line up wasting a lot of energy,easy to manage queuing order,while adapting to the digital information age management requirements,improve service levels and quality.

Keywords:Microcontroller;Queue number;System development

一、系统开发背景

排队论(又称随机服务系统)是研究系统由于随机因素的干扰而出现排队(或拥塞)现象的规律的一门学科,它适用于一切服务系统,包括公共服务系统、通信系统、计算机系统等。可以说,凡是出现拥塞现象的系统,都属于随机服务系统。一个对象通过拥塞系统接受服务必须经过三个环节,即到达、排队等候处理、接受服务和离去。例如在医院中,排队流程如下:患者在挂号的同时领取排队号码,然后到候诊区候诊;当为前一患者完成诊断后,医生通过本系统呼叫队列中下一位患者,患者就可直接到空闲诊室行排队等候服务。

二、系统应用前景

伴随着服务行业业务量不断增长,业务种类日益增多,排队等候已成为人们经常面临的实际问题。在银行,医院,电信,税务,工商等营业大厅里,前拥后挤,杂乱无章的排队等候,已是司空见惯的现象,影响了服务质量。因此,改善服务质量,树立良好的企业形象,解决客户劳累的排队现象,创造人性化服务环境已成为急需解决的问题。设计一套排队抽号的服务系统,可以很好的解决因排队引起的种种问题。

三、可行性分析

(一)技术可行性

本系统由键盘输入系统、单片机系统、屏幕显示系统组成,系统分为两个模块:抽号模块和叫号模块,其控制核心均为AT89C52单片机,选用此单片机编程简单,开发工具便于使用,能满足很好的满足排队抽号的控制数据处理,抽号模块采用LCD液晶显示器,这样显示数据直观,便于客户理解,若只采用数码管显示,会造成显示内容单一,不便于客户理解记忆,叫号模块采用数码管显示,此模块只需显示当前所叫号数,因此采用数码管显示清楚,直观,客户容易看清当前所叫号数,抽号模块输入只需使用一个抽号按键即可,便于客户操作,叫号模块包括叫号键和清零键,工作人员除了可以叫号外,可以随时按清零键,复位排队系统。

(二)操作可行性

本系统界面统一规范,操作简单,提示信息功能完整,用户只要经过简单的了解即可上手。大大的方便了用户的操作和管理,顾客不必为排队、等候而前后拥挤,可以轻松的等待排队,节省了顾客的时间和精力。

1.系统流程。该排队抽号系统主要对顾客排队、等候进行数字化的管理。其管理的核心是排队顺序,它是排队抽号系统解决的基本任务。

2.顾客进入大厅排队。顾客按下抽号模块上的抽号按键后。系统根据排队人数自动为顾客排号,并显示在LCD上,顾客记住自己抽到的号数,便可在坐在一旁等候。

3.排队人数。当抽号模块上没有按键按下时,LCD显示器上显示当前等待人数,它会根据抽号人数和叫号人数自动改变。

4.客服进行叫号。当客户服务人员按下叫号模块上的叫号键时,叫号模块根据排队情况自动在数码管上显示当前所叫号数。

(三)需求规范

1.产品背景:排队抽号系统是为银行、医院、电信、税务、工商等营业大厅而设计的排队软件,本系统开发时参考了51单片机和排队论等一系列书籍,结合现代排队管理体制,最终开发而成。

2.产品概述:本系统分为两个模块:抽号模块和叫号模块,其控制核心均为AT89C52单片机,抽号模块采用LCD液晶显示器,这样显示数据直观,便于客户理解,叫号模块采用数码管显示,此模块只需显示当前所叫号数,因此采用数码管显示清楚,直观,客户容易看清当前所叫号数,抽号模块输入只需使用一个抽号按键即可,便于客户操作,叫号模块包括叫号键和清零键,工作人员除了可以叫号外,可以随时按清零键,复位排队系统。

3.功能需求:排队抽号系统可以应用于银行、医院、电信、税务、工商等营业大厅。本系统是采用液晶显示和键盘输入,界面使用字符显示,提高排队管理水平,增加现代化管理水平、管理质量和管理工作效率。

(四)系统结构图

图一:系统框图

图二:硬件连接总图

四、调试结果

(一)电源部分的调试

初期,由于前端滤波电容未加,导致输出纹波过大,补上100微法,50V的滤波电容,纹波在允许范围内。

总结:试验过程中一定得认真仔细。电路图连接完后,需要检查再通电调试。

(二)显示部分的调试

问题:数码管的显示不稳定,不停的闪烁。

分析:没有考虑到干扰及环境的制约。于是我们把在面包板上连好的电路焊接在印刷板上,并采用电容滤波尽可能去除纹波和干扰。

(三)单片机控制部分的调试

单片机在整个系统中负责响应外部输入和实现反馈自我控制。由于存在两路输出和四路反馈,在时序上就比较复杂,调试起来也是很复杂的。

程序的编写修改完成后,用仿真器仿真时,几个控制按钮不好使,经检验,是软件中等待时间太短,由于按键抖动,响应中断次数过多造成控制不稳定。增加等待时间消除抖动后,控制部分达到理想效果。

篇4

关键词:单片机 自动控制系统 设计开发 要点分析

中图分类号:TP3 文献标识码:A 文章编号:1674-098X(2014)10(a)-0061-01

单片机作为一种重要的控制元件,在自动控制系统的构建中发挥了重要作用。从当前自动控制系统的设计来看,单片机的设计开发成为了自动控制系统开发的重要组成部分。结合当前单片机的设计与开发,要想做好单片机的设计与开发工作,就要对单片机的设计开发要点有足够的重视,并从单片机的设计开发实际出发,认真做好单片机的设计和开发工作,满足单片机设计开发需要,保证单片机的设计开发效果。由此可见,单片机的设计与开发需要掌握其要点。

1 单片机设计开发应制定明确的要求

在单片机设计开发中,要想保证单片机的设计开发取得积极效果,就要明确设计要求,其中指定明确的设计要求是十分必要的。从当前单片机设计开发实际来看,其要求应包括以下几个方面内容。

1.1 单片机设计开发要求应包括明确的任务

在单片机设计开发中,需要明确单片机设计开发的任务。这一任务应与单片机设计开发方案结合在一起,使单片机设计开发具有明确目的性,保证单片机设计开发的整体效果。

1.2 单片机设计开发要求应分为基本要求部分和功能发挥部分

为了保证单片机设计开发效果,应在基本要求部分明确单片机设计的基本功能,保证单片机设计开发达到预期目的。除此之外,还要合理设定单片机系统的其他功能。

1.3 单片机设计开发要求应提高针对性

基于单片机的特点,每一个以单片机为主的自动控制系统都有特定的服务对象。为了保证单片机的设计开发效果,在单片机的设计开发中应提高针对性,满足系统开发需求。

2 单片机设计开发应制定完善的系统方案

基于单片机设计开发的自动控制系统,其系统方案的设计是整个单片机设计开发的关键。为了保证单片机设计开发系统方案的合理性,结合小车控制系统,我们应从以下几个方面入手。

2.1 对系统的功能模块及硬件设备进行规定

(1)MCU:采用STC89C52单片机。

(2)电机:采用直流减速电机。

(3)环境检测:采用光敏电阻利用ADC 0832进行采集。

(4)避障方案:红外检测法。

(5)寻迹传感器:RPR220型光电对管。

2.2 对系统的运行流程进行规定

单片机在设计开发过程中,其整体系统的运行流程是关系到自动控制系统整体运行效果的关键。为此,对系统的流程进行规定是保证单片机设计开发效果的关键。

2.3 对系统的实现方案进行规定

单片机在具体的实现过程中,其实现方案关系到自动控制系统的构建效果。基于这一认识,我们应对系统的实现方案进行准确规定,保证系统的整体构建效果。

3 单片机设计开发应做好硬件和软件的设计

从本文的例子来看,在小车控制系统中,单片机的设计开发需要注重硬件和软件的设计与配合,应确保硬件和软件能够最大程度的满足实际需要,达到提高自动控制系统性能的目的。结合小车控制系统,其硬件系统主要包括单片机芯片、单片机开发板、小车、电机、DS1302时钟电路、光敏电RPR220型光电对管阻、等元件。在这些硬件的统一配置下实现小车的操作。

其软件系统主要包括对程序存储区、数据存储区的分配,尽可能做到了既节省内存空间,又使操作方便。同时,在程序设计过程中实现了运行状态的标志化管理,即对各功能程序的运行条件、运行状态、运行结果都设置了状态标志以便查寻,程序的转移、运动都可通过状态标志条件来控制。此外,为提高程序运行的可靠性,监控软件中设置了自检程序,在系统启动时先运行自检程序,用以检查系统各部件工作是否正常。若正常,用户便可在监控软件的管理之下,通过键盘输入机器语言级的程序和数据。

监控程序主要由初始化引导程序、显示程序、键盘分析程序、命令处理程序和一些常用的子程序组成,整个监控程序占2K字节。

4 单片机设计开发应做好程序编制

单片机系统共有12个控制命令,命令处理程序完成这12个命令的处理。它们分别是:D命令:显示存储器内容。E命令:检查I O接口中输入口的内容。F命令:填充存储器内容。G命令:转向某一指定地址开始执行程序。I命令:将外设的信息转储到存储器中。O命令:将存储器中的信息转送到外设上。M命令:转移数据块。P命令:连接打印机及打印存储器内容。S命令:检查和修改存储器的内容。T命令:执行程序中的一条指令。V命令:校验两存储区的内容。X命令:检查和修改CPU寄存器的内容。初始化引导程序完成对机器的初始状态进行设置以及断点处理。显示程序将要显示的内容对照显示码表在液晶显示器上显示出来。

5 结语

通过该文的分析可知,在单片机设计开发过程中,要想保证单片机的设计开发质量,就要对单片机的设计开发要点有全面准确的把握。结合单片机设计开发实际,单片机的设计开发应从制定明确的要求、制定完善的系统方案、硬件和软件的设计及做好程序编制等方面入手,切实提高单片机设计与开发质量,满足单片机设计开发需要。

参考文献

[1] 赵海兰.基于单片机的红外遥控智能小车的设计[J].无线互联科技,2011(3).

[2] 何立民.单片机技术的现状与未来[J].中国计算机报,2012.

[3] 姚培.基于单片机控制的智能循迹避障小车[J].机电信息,2010(12).

[4] 赵振德.多功能遥控智能小车的制作[J].电子制作,2011(4).

篇5

(浙江警官职业学院 浙江 杭州 310018)

摘要:“单片机应用技术”是安全防范技术专业的一门主干课程,面向安防产品开发、生产、测试一线工作岗位,直接培养学生“安防单片机产品调试”的核心职业能力。针对课程的特点,应从安防行业实际出发,引入“任务驱动”理念,为培养学生工程实践能力和创新能力,在课程设计理念、教学内容选取与组织、教学方法手段、考核等方面进行教学改革。

关键词 :单片机应用技术;安防;教学改革;任务驱动

中图分类号:G712 文献标识码:A 文章编号:1672-5727(2014)08-0094-03

现状分析

安全防范技术专业是为顺应安防产业发展而建立的专业。作为一个公共安全与技术防范紧密结合的新兴产业,迫切需要安防产品开发、生产、测试一线岗位的高素质技能型安防专业人才。“单片机应用技术”是安全防范技术专业的专业基础课,面向安防产品开发、生产、测试一线工作岗位,直接培养学生“安防单片机产品调试”的核心职业能力,是一门面向应用的、具有很强的实践性与综合性的课程,具有承前启后的重要地位。学好单片机课程,可为学生在以后学习监控技术和消防等课程打下坚实的基础。同时,单片机技术是开发安防智能仪器仪表的关键技术,具有中央控制器的作用,安防产品几乎离不开单片机,学好单片机课程,有利于学生在以后工作中的可持续发展。

单片机的传统教学采用的是先基础、后应用的模式,重理论教学,借大量的原理引导学生入门,应用技术只是点缀,各个知识点不能紧密结合,并且实践操作存在一定的时间滞后性,使学生对单片机的学习一直局限于抽象的理论学习中,理解起来困难,而且感觉枯燥乏味,学习兴趣不浓厚。

基于目前的现状,应根据项目导向、任务驱动教学的需要开发建设“单片机应用技术”课程,以提高学生的学习兴趣,增强学生的操作技能和实践能力。

课程设计理念

为使高职学生具备一定的安防单片机产品组装与调试、维护维修、产品设计的辅助能力,“单片机应用技术”课程打破了传统的学科教学模式,以职业岗位要求为前提,以职业能力的培养为重点,从以下几个方面进行了课程设计。

首先,企业全程参与课程设计。通过与省内安防企业的合作,向安防产品研发生产企业设计、测试等一线人员以及在安防行业从事产品测试、维管的往届毕业生征求关于课程建设的建议。

其次,以工作任务为载体,引入“任务驱动”思想,构建课程内容。通过单片机在安防产品中应用情况的调研和分析,紧扣单片机的开发流程,筛选得出了安防产品维护员、安防设备维修员、安防产品调试员、安防产品设计助理等岗位的典型工作任务。每个工作任务的教学内容和过程都按照完整的开发流程展开,根据不同的对象和系统,各环节的教学要求有所侧重,着重培养学生安防产品的软件调试与软硬件联调能力。

再次,以激发学生学习兴趣为目的选择设计对象,尽量贴近学生的活动领域和生活经验,采取简单易懂的实例,从而增强学生的自信心,提高学习兴趣。

教学内容选取

针对职业岗位进行能力需求分析 在深入调研的基础上,针对安防产品组装与调试、安防产品设计助理、安防产品维护维修等岗位,在课程专家指导下,由行业专家和专业教师共同分析岗位中的典型工作任务,推衍出对应的职业能力,如表1所示。这些职业能力都是基于安防单片机应用产品设计、制作与调试工作过程中应具备的基本工作能力分解出来的。

工作任务的设计 “单片机应用技术”课程的知识点主要包括存储器、I/O接口、指令系统、定时器/计数器、中断、汇编语言的应用、接口技术的运用等。安全防范系统主要包括入侵报警系统、视频监控系统、门禁控制系统、消防控制系统等,如图1所示。本课程从这四大独立系统的常见产品着手,收集了大量与安防专业有关的安防单片机一线实例,筛选、整合成7个典型的工作任务,把这7个任务作为线索穿插于单片机硬件、指令系统、汇编语言、接口技术的讲解中,让学生在具体的工作任务中学到理论知识,同时进行仿真和硬件实验,变抽象为具体。7个任务由浅入深,始终围绕典型的单片机开发设计过程展开,注重学生软件调试与软硬件联调能力的培养,从而使学生的能力得到逐步提高。同时注重理念、方法和职业素质的培养,以利于学生将能力拓展到其他领域。7个任务各自对应的知识、技能和素质要求如表2所示。在进行知识学习的同时,加强实践训练,通过课程实训、毕业设计等实训环节的系统化训练,使学生获得单片机应用的基本知识和技能,为学生的可持续发展打下良好的基础。

教学内容组织与安排

基于真实任务,遵循学习规律,按照单片机开发工作过程组织安排教学内容。

教学内容的组织突破了传统知识体系结构,按照单片机开发工作流程的要求,重组、序化内容。实际上,单片机开发的安防产品牵涉面广,具有一定的复杂性和特定性。根据能力培养的基本规律,在课程设计中对实际安防单片机产品一线的任务进行了筛选、简化,基于企业真实案例得到充足的教学素材,然后根据安全技术防范系统的组成,选择常见安防单片机产品,遵循学生职业能力培养递进规律,由浅入深组织教学,共设置了7个工作任务(即简单家庭紧急报警电路的实现、可燃气体检测报警器的实现、安防报警信号灯的控制、消防水箱水位的控制、反射型红外探测器在单片机中的应用、电子密码键盘的实现、电动云台的控制)。

每一个工作任务的实施,都按照单片机的实际开发工作过程组织安排教学内容,注重学生软硬件调试能力的培养,体现职业性与实践性。在每个任务最后还安排一个产品调试维修分析环节,使学生在具备一定的软硬件调试、维护维修能力的基础上,进一步开阔其视野,提升其能力。每个工作过程的实施过程如图2所示。课程内容的组织与安排如图3所示。

教学方法与手段改革

以学生为主体,穿插应用分组讨论、自学答疑、课堂提问、启发教学等教学方法引导学生积极思考、主动学习、灵活运用。同时,根据不同的学习内容、不同的工作任务,采用不同的教学方法。下面介绍几种常用教学方法的具体运用。

任务驱动法 在课程的每个阶段,定出具体任务。例如,学习单片机的指令系统知识之前,先下达“使用信号灯模拟报警主机防区指示灯”的工作任务,然后分析工作流程,最后得出要完成这个工作任务需要哪些知识,进而进入知识点的学习,学好后再来解决这个工作任务。做到边做边学,学中做,做中学。

引导文法 在课程中以引导文法展开教学,包括:(1)给出一个任务以及功能要求的文字引导文件;(2)确定初步设计方案;(3)分析系统硬件构成图;(4)设计流程图;(5)编程并调试,使学生在实训中熟悉单片机软硬件设计的方法和技巧。

示例教学法 边操作示范,边讲解相应的理论知识,使学生熟悉项目的完成过程。比如教师在介绍单片机系统的调试要领时,将现成的试验箱与计算机系统连接,通过单步、断点调试程序,实时观察实验效果,使学生真实领会调试过程的要领。

理论讲解教学法 课程内容部分采用教师理论讲解教学法,使学生直接了解和掌握相关知识点。比如,在介绍单片机存储器的结构时,通过动画板书形象展示存储器的构成。

实例教学法 在教学过程中使用大量的实例进行教学。比如,在介绍单片机的基础知识时,列举大量单片机在安防设备、工业控制设备、医疗仪器中的应用实例,使学生比较全面地了解单片机的作用。

考核方法改革

采用与本课程教学相适应的多种考核形式,一方面注重平时成绩,另一方面注重实际能力,克服“读死书、为了考试而学习”的高分低能的现象,培养工程型应用人才。成绩评定采取三部分考核评价体系,即“笔试+实验考试+平时成绩”,其中笔试占50%,实验考核占30%,提问、作业、平时表现等平时成绩占20%。

该课程是司法部精品课程。通过课程改革,使学生在各个工作任务的实现过程中,建立单片机系统的整体概念,使学生具有应用单片机系统进行软硬件开发的初步能力,能将理论基础知识与安防工程应用相结合,培养学生的工程实践能力和创新能力、理论联系实际能力及解决实际问题的能力。

参考文献:

[1]于复生,范文利.任务驱动教学法在机电一体化系统设计教学中的实践与探索[J].电气电子教学学报,2004(1).

[2]徐国庆.职业教育项目课程的几个关键问题[J].中国职业技术教育,2007(4).

[3]刘艳.案例教学法在单片机教学中的应用[J].电脑知识与技术,2008(5).

[4]李全利.单片机原理及应用技术[M].北京:高等教育出版社,2001.

篇6

关键词:单片机;信号发生;硬件电路

MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O口等一台计算机所需的基本功能部件。MAX038是MAXIM公司生产的一通用波形发生芯片。采用8051控制MAX038芯片,使该函数发生器的三种波形共用一个引脚输出,具有输出频率范围宽、波形稳定,失真小的特点。

1 芯片功能分析

1.1 51单片机

单片机全称为单片微型计算机(Single Chip Microcomputer)。它具有嵌入式应用系统所要求的体系结构、微处理器、指令系统、总线方式、管理模式等。它把计算机的基本部件微型化并集成到一块芯片上,通常片内都含有中央处理器(CPU)、数据存储器(RAM)、程序控制器(ROM、EPROM、Flash ROM)、定时器/计数器和各种输入/输出(I/O)接口。

1.2 MAX038

MAX038比起以前比较常用的函数发生器件如8038系列,从频率范围,频率精确度,对芯片及波形的控制性能。用户使用的方便性等方面都有了很大的提高,因此可广泛应用于波形的产生、压控振荡器、脉宽调制器、频率合成器、及FSK发生器等。以MAX038为核心的0-20MHZ宽频带函数信号发生器,具有频率调节、输出偏移调节、输出幅度调节、输出衰减以及正弦波、方波、三角波、和TTL同步电平信号输出。能够满足常规和高频模拟电路、高频数字电路的调试要求。

2 系统构成

为了利用单片机对函数发生器进行控制,采用8051单片机和8279、DAC1020等芯片实现硬件电路。用8279完成键盘输入和LED显示控制两种功能,键盘按键设置:数字键0~9,小数点,正弦波、方波和三角波切换键,频率选择Hz、kHz、MHz切换键,占空比键,回车键。采用外部译码方式,8279的SL0~SL2经74LS138(1)输出接键盘,同时经74LS138(2)输出驱动后送LED。8279的显示输出B0~B3,A0~A3作8位数据输出。MAX038的频率控制电压由10位DAC1020提供。8051的P2.6作为DAC1020的片选信号,采用双缓冲器方式,锁存10位数据。DADJ引脚电压范围-2.4V~+2.4V由8位DAC0832的双极性输出电压提供,即占空比调节的控制电压。用8051的P2.5作为DAC0832的片选信号,基准电压采用MAX038内部2.5V基准电压,接入VR端。DAC0832的ILE接+5V,片选端和数据传送端都与74LS373输出线A0相连。

3 单片机处理程序

主程序先对8279进行初始化,即允许中断申请,清8279状态,置键盘显示方式及时钟编程等,再置MAX038初始波形与频率、占空比。然后测试回车键是否闭合,以决定是否进行中断处理,判断输出波形并输出控制信号,有关输出波形频率的控制电压及占空比的计算送DAC1020及DAC0832,最后将波形频率及占空比送显示缓冲区,调显示子程序显示。进行处理时,首先根据输入的键值完成对输出波形、波段以及频率的选择,然后根据有关公式计算输出频率,所需电压的编程数据送DAC1020,如果输出为矩形波,则还要将占空比的编程数据送DAC0832 这样就在MAX038的引脚l9输出相应波形和频率的信号。

4 波形生成设计

4.1 方波输出

方波输出由8051单片机内部自带的定时器/计数器实现。采用定时器/计数器T1,工作方式1,计数器位数是16位;门控位GATE置0,定时器的运行只受控制寄存器TCON中运行控制位(TR)的控制;计数器初值的设定由以下公式计算得到:N=2n-TCfosc/12其中n为计数器位数;TC为定时时间;fosc为振荡频率。通过小键盘,由用户键入需要输出方波的周期,在P0口将得到所需的方波波形。

4.2 正弦波输出

正弦波的产生采用查表法,单片机的I/O输出均为+5V的TTL电平,因此产生的正弦波幅值为+5V。将一个周期内的正弦波等分为N份,那么第1点的角度为0°,对应的正弦值为5sin0°;第2点的角度为360°/N,对应的正弦值为5sin(360°/N )……,如此计算,将这些模拟量正弦值都转换为双极性方式下的数字量,得到按照点号顺序排列的数字量正弦值表格。

[参考文献]

篇7

关键词:单片机 闸阀门 检测方法

闸阀门开度检测装置在淮安三线船闸工程中,是实现闸阀门安全、高效和智能化运行的主要设备之一。该检测装置运用主要目的为:

(1)在闸阀门启闭操作时,用于实时指示闸阀门的开度位置,以利于操作员及时掌握闸阀门的运行情况;

(2)闸阀门开度参与闸阀门的运行控制,如使阀门开启至任意设定开度,实时监视阀门在这一设定开度时的下滑情况,并根据阀门下滑至不同关键位置时,立即采取相应的处理措施。

(3)控制左右人字闸门同步运行与平稳变速运行。

ROQ425是德国海德汉(HENDENHAIN)的(13位+12位)绝对编码器。特别适合于高精度、大量程闸阀门行程测量和控制的场合,是构成闸阀门检测装置的主要部件。具有如下主要特点:

(1)分辨率高,最高可达8192线/转(13位);

(2)量程大,最高可达4096转(12位);

(3)掉电位置保护,无论开度仪掉电多少时间,系统上电后,ROQ425总能准确地测量出闸门当前的开度。

(4)数据输出接口,采用串行同步接口(SSI)传输数据。

PLC以其固有的特性,在闸阀门智能化处理中得到了广泛的应用。解决好PLC与闸阀门开度检测装置间的数据传输接口是实现闸阀门高效、可靠、安全运行的关键。虽然,PLC提供SSI输入模块,但这类模块价格太高,需要配置专用电缆和处理软件。利用单片机实现与闸阀门开度检测装置(SSI)的输入接口,实现串行数据转换成并行数据与PLC数值量输入模块连接的输出接口。这样既降低了成本,又简化了PLC的编程。

1. 硬件设计 硬件设计方案主要实现

(1)与ROQ425的SSI连接;

(2)与PLC模拟量输入模块和MODBUS口的连接;

(3)完成输入串行数据(ROQ425 SSI)到输出4-20mA的转换。

(4)完成输入串行数据(ROQ425 SSI)通过MODBUS口输出到PLC

1.1 ROQ425 SSI接口介绍

ROQ425 SSI接口电压为5V±5%,空载时最大电流功耗为250mA。采用差分SN65LBC176线接收/驱动器进行数据传输,最远传输距离可达100m。ROQ425内部接口见图1。

ROQ425是多圈绝对型旋转编码器,每圈用13位表示精度,用12位记录圈数。因此,开度绝对位置值采用25位字长表示。数据发送时序关系见图2,其工作原理为:

不发送数据时,CLOCK为高电平。 数据发送过程:当ROQ425接收到CLOCK发送周期(nT)的第一个下降沿时,ROQ425读取25位字长的绝对位置值存入数据缓存器。数据缓存器中数据随着CLOCK发送周期的上升沿串行同步发送数据,第一个发出的数据位是绝对位置值的第25位(MSB),最后一个发出的数据位是绝对位置值的第1位。 中断数据发送:在数据发送过程中,当CLOCK为高电平时间超过t3(35us)时,ROQ425终止当前数据发送周期,为下一个重新开始的发送周期做好准备。 数据重发:当完成一个绝对位置值的数据字发送周期后,DATA维持t3时间的低电平。若在t3(12~35us)内,CLOCK开始一个新的发送周期,就会重发刚才发送的绝对位置值数据。 1.2 硬件工作原理

硬件设计由SSI接口、I/O接口、单片机和电源四部分组成。

(1)SSI接口选用ROQ425推荐的RS422接口芯片MAX488。

(2)I/O接口采用光电耦合器隔离,DA模块采用AD7541和AD694。MODBUS接口模块采用MAX232E。

(3)单片机选用高性能的AT89C51(单字长指令、定时/计数器、看门狗)

(4)选用24VDC输入5VDC输出和24VDC输入15VDC输出的DC/DC模块电源。

原理图如下

转贴于 2.软件设计 通过对AT89C51进行编程,达到实时将SSI接口数据转换成4-20输出或通过MODBUS口传送至PLC系统的目的。主要流程如下:

第一步 :初始化设置。包括串口设置,中断设置,PLC地址的设置,零点设置等 第二步:读取ROQ425数据并转换成十进制 第三步:将转换过的数据通过并口和串口输出 第四步:重复第二步 下面是AT89C51的部分源程序:

#include

#include

/* define I/O functions */

#include

/* define absacc functions */

#include

/* define absacc functions */

#include /*#define uchar unsigned char*/

#define _Nop() _nop_()

typedef unsigned int word;

typedef unsigned char byte;

typedef unsigned long dword;

static word data da,db,dc,df,p,crc1,cir,high;

static dword data da1,db1,dc1,df1,dd,de,max,zero,zero2,dcb;

static byte data show[7],show1[4],show2[4],sendm[8],s[4],bb[4];

static byte data dd1,watch,kk,t[1],dd2[1];

code byte disp[16]={0x77,0x41,0x3b,0x6b,0x4d,0x6e,0x7e,0x43,0x7f,0x6f,0x5f,0x7c,0x36,0x79,0x3e,0x1e};

void readgray();/*读取ROQ425数据*/

void delay();

void i_start();

void i_stop();

void i_init();

void i_send(byte);

void display();

void change(dword);

void change1(dword);

void setzero();

void zero1();

void nub();

void addr();

void cir1();

void e_start();

void e_stop();

void e_send(byte);

byte e_recevie();

void e_ack(bit);

void e_send1(dword);

bit isend(byte,byte,byte *,byte);

bit ireceive(byte,byte,byte *,byte);

void watchdog();

void one();

void two();

void three();

void one1();

void two1();

void three1();

void pos();

void res();

void comsend(byte);

word crc16(byte *);

byte shj();

void main()

{

register i,j,k,x;

bit d;

dcb=0;

show[0]=0x70;

show[1]=0x00;

show[2]=0x27;

display();

for (i=0;i

{

show1[i]=0;

show2[i]=0;

}

SCON=0xc8;/*采用方式3 */

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

ET1=0;

ES=0;

EA=0;

high=0x07;

max=8000;

dd1=0;

sda1=1;

delay();

sda1=0;

dd2[0]=0;

while(1)

{

for (j=0;j

{

for (x=0;x

{

zero2*=2;

z=(bit)(show2[j]&0x80);

if (z==1)

zero2++;

show2[j]=show2[j]

}

}

zero=zero2;

p=0;

watchdog();

txd=1;

readgray();

watchdog();

dd=da & 0x0fff;

de=db & 0x1fff;

dc1=dd*8192+de;

P0=dc1 & 0x000000ff;//(dc1 & 0x000001fe)>>1;

P2=(dc1 & 0x00000f00)>>8;//(dc1 & 0x00001e00)>>9;

if(t[0]==1)

{

if((zero>=0)&&(zero

one();

else

if((zero>10000000)&&(zero

two();

else

three();

}

else

{

if((zero>=0)&&(zero

one1();

else

if((zero>10000000)&&(zero

two1();

else

three1();

}

sendm[0]=0x06;

sendm[1]=0x06;

sendm[2]=0x00;

sendm[3]=0x05;

sendm[4]=dc1/256;

sendm[5]=dc1%256;

crc1=crc16(sendm);

sendm[6]=crc1 / 256;

sendm[7]=crc1 & 0xff;

rd=1;

for(i=0;i

{

ACC=sendm[i];

TB8=par;

comsend(sendm[i]);

}

watchdog();

display();

}//end while

篇8

关键词: USB单片机 实验装置

【中图分类号】TE319

0引言

单片机一门实践性很强的专业课程,通过实验环节能够有效地巩固课堂上所学的理论知识,全面提升学生的动手能力和创新能力,培养出行业所需的应用型人才,目前市场上适合学生使用的片机实验板有两类:一类通过RS232串行口与PC机相连,同时它还需使用外接电源。另一类号称USB型的实验板只是通过PC机USB接口获取电源,真正与PC机的连接还是通过RS232串口。以上两类实验板与PC机相连时,一般需要将主机箱从电脑桌中搬出,才能与机箱背后的RS232串行口连接,如果在普通机房使用时,由于地方狭小不易伸展,所以限制较多,特别是插拔实验板时很不方便。

1 USB单片机实验装置的总体设计

本文设计的USB型单片机实验装置通过采用USB接口与PC机连机的方式,使它具备了与其它单片机实验装置相比更加优越、更加方便的操作方式。当我们在普通机房或者家中使用USB型单片机实验装置的时候,我们可以方便的将实验装置上的USB接口与电脑机箱上的前置或后置USB口进行连接,它可以直接从USB口上获取到5V电源,并且不需要再连接其它的譬如:RS232串口线、电源线。不必为了插上接口再将机箱从电脑桌中搬出,可谓相当方便。USB型单片机实验装置支持ISP在线编程技术(In -System Programming)我们可以直接对已经调试好的目标代码进行下载调试,先将芯片插入芯片槽中,运行下载软件,通过USB口,我们调试好的目标代码就会直接被下载到单片机芯片中,上电后自动运行用户的代码与以前需要另接ISP下载器相比其设计更加省时、便利。

USB型单片机实验装置通过USB接口与KELL通讯,可以实时地调试目标程序,其在线软件仿真器不仅支持以前汇编语言源代码的调试,对于现在主流C51高级语言源代码同样完全适用。除此之外它还支持:

(1)单步执行STEP 、STEP OVER、10个断点、运行到光标、全速运行;

(2)支持变量的显示和修改;

(3)支持数据存储器、代码存储器、SFR特殊功能寄存器及P0-P3 端口的读写;

(4)支持对8051 程序存储区的反汇编及在线汇编等功能

USB型单片机控制装置是以AT89S52单片机为核心的单片机嵌入式系统,与PC机的连接方式如图1所示,实验仪从USB总线上获取5V电源,通过CH341控制芯片将USB总线转换为串行口与单片机相连,实验电路包括基本的数码管、单脉冲、独立式键盘、行列式键盘、蜂鸣器电路以及I2C总线器件、单总线器件、串行A/D转换、红外线收发、LCD显示电路等,可完成各类基础型、应用型实验,采用的 AT89S52单片机内嵌在线软件仿真器,并具有在系统中编程的功能,这样可以在PC上使用KEIL软件对实验电路进行实时仿真调试,最终将程序写入芯片运行,无需专用的仿真器及编程器。

图1 USB型单片机控制装置示意图

由此可见,USB单片机实验装置可谓麻雀虽小,五脏俱全,通过上述的功能我们能够完成二十多个硬件实验,完全能够满足学生的日常实验和学习需求。

另外在成本方面,由于单片机已成为计算机、电子、控制、机电等专业的必修课程,现在许多大专院校有的实验设备已基本处于满负荷工作状态,尽管如此,目前单片机实验效果尚不理想,由于涉及硬件的连接、源程序的输入调试,各种意想不到的错误难以避免,对于初学者来说往往要耗费不少时间,虽有老师巡回辅导,仍有不少学生来不及在2课时内完成实验。为提高学生分析问题解决问题的能力,学生应该有更多的实验时间,增加实验台、实验箱的数量是一个办法,但因班级众多,实验台与实验箱的价格昂贵,成本高,实际实施难度较大。USB型单片机控制装置所需材料均为价格低廉的电子元器件,实物如图2,价格在60元以下,多数同学都可以接受,这样每个学生都能拥有一个经济的单片机实验装置,在课余时间和假期还能继续未完成的实验或者进行应用型的实验,有效地培养学生的学习兴趣,促进其动手能力和创新能力提高。我们在市场上进行调查:学校购买单片机实验装置,个人不愿意购买,另一方面自己认为单片机学习太困难。USB型单片机实验装置也是根据现代电脑技术发展需要而产生,它装置结构配置完善,但其成本是一般市场价格的30%,大大满足了学生的需求。大家都非常喜欢这样的单片机实验装置。

图2 USB型单片机控制装置实物图

2结论

USB型单片机实验装置USB型单片机实验系统装置结合经典的单片机电路,把单片机及硬件电路模块集成在一块实验板上,通过合理设计,使模块各自独立工作而互不干扰。它通过USB接口与PC机连机,具有实时仿真调试功能。由于采用即插即用的USB接口代替了传统的RS232串行口,省却了外接电源,不仅连接非常方便,而且降低了成本。同时根据单片机课程的实验教学大纲精心设计了基础型、应用型实验电路,采用了KEIL仿真调试环境,能对实验电路、程序进行实时调试。USB型单片机实验装置结构配置完善,应用技术宽泛,能够完全满足学生的日常需求,再加上它便于携带,使用方便,价格低廉。所以它的市场会很广阔。

参考文献

[1] 赖麒文.8051单片机语言开发环境实务与设计.科学出版社,2002.

[2] 徐惠民.单片微型计算机原理接口应用. 北京:北京邮电大学出版社,1999.

[3] 尹申燕.1-Wire器件与51系列单片机的软件接口.电子工程师,2002(9):10-14.

篇9

CCD(Charge Coupled Devices)电荷耦合器件应用系统的关键技术在于CCD驱动时序的产生和输出信号的采集与处理。目前驱动主要有直接数字电路驱动、EPROM驱动、专用IC驱动、复杂的CPLD驱动等常用的驱动方法,但是它们存在着逻辑设计较为复杂、调试困难、柔性较差等缺点。在数据采集和处理方面,大多数都经过差动放大、采样保持、A/D转换,再通过总线或采集卡等接口与PC机相连。这种系统结构庞大,而且在信号处理、通信软件和界面设计等方面要耗费大量的精力。应该说这种应用系统在静态测量处理方面有其优点,但如果要满足实时控制系统的连续检测要求以及系统体积精小而容易装配等特点,则必须简化驱动电路、数据采集过程和处理方式。本文正是出于这种考虑,开发出了一种基于单片机的实时性检测系统:仅用Atmel公司一块小型的AT89C2051单片机便能产生稳定、精确、高速的驱动脉冲。该电路结构简单、调试方便、CPU占用率低,将驱动、采集和处理融为一体,而且与上位机的连接仅用两条导线便可实现检测信息传输。这种方法大大简化了线阵CCD检测系统的结构,在机器人视觉、智能小车、轨迹导引等动态检测方面有独特的应用优势。

1 线阵CCD实时检测系统模型

以机器人路径识别为例具体说明如何利用线阵CCD开发实时动态环境检测系统。

假设在一个深色(如黑色、蓝、绿等)平面上用宽度为30mm的白线作为机器人将要运动的轨迹导引线,利用线阵CCD开发出检测白线轨迹的检测系统。先利用光学系统用摄像头将路面信息成像到CCD的感光面上;然后读取白线的位置检测信息作为机器人的视觉,让机器人在上位机的控制下沿白线轨迹运动。这是一个典型的CCD实时检测系统。整体检测系统如图1所示。

2 硬件设计

利用CCD的光电特性,设计出的电路应能判别视频信号上输出的深色和白色区别,这样才能识别白线,时刻反应机器人当前所在的物理位置,以便对其运动做相应的调整。 线阵CCD选用NEC公司的μPD3575D型号。芯片为20脚DIP封装,像敏单元数目为1024,像敏单元大小为14μm×l41μm×l4μm(相邻像元中心距为14μm),光敏区域采用高灵敏度和低暗电流PN结作为光敏单元,内置采用保持电路、输出放大电路,外观尺寸为25.5mm×10mm,易于装卸。该器件工作在5V驱动(脉冲)、12V电源条件下。

系统简要电路如图2所示。驱动用的单片机是AT89C2051。它是Atmel公司生产的自带2KB可编程Flash存储器的与MSC-51兼容的高性能处理器。它与常规的51芯片有相同的核心和相近的结构功能如RAM、定时/记数器、中断结构、串行口、振荡器和时钟电路等;有最高达24MHz的振荡频率,能高速地驱动CCD;有较少的精简I/O端口,因此体积很小,非常适用做小型应用系统的处理器。对很多嵌入式控制应用提供了一个高度灵活的有效解决方案。本线阵CCD检测系统发挥了其小而灵活的特点,既陡系统资源得到了充分的应用又让系统结陶精简紧奏,电路中二值化部分的电位器R_T用来调整二值化比较电平的阀值(0~5V),通过它调节整个CCD的灰度分辨率。同时整个系统对外接口十分简单,只需接上电源和两条通向上位机的信号线。上位机只需等待同步信号FC和检测脉冲信号BIN_OUT到来的中断信号,与AT89C2051相互独立,彼此之间没有任何时钟信号或复用关系。因此实际运用中器件互换性较强。既可选用普通的AT89C51进行一定的端口扩展接收FC和BIN_OUT,也可选用中断能力较强的SOC芯片C8051FXX系列等。整个检测系统具有良好的柔性,最终电路体积可控制在手掌心大小之内。

图2

3 信号时序及软件设计

由于硬件设计时考虑用软件产生CCD驱动信号,这样软件设计的最大难点为既要满足CCD芯片的驱动信号要求又要完成检测信息的完整表述。综合比较各种方法后得出了整个软件设计思路如下:

驱动描述:NEC公司的线阵μPD3575D所需驱动信号与TOSHIBA公司传统的TCD系列略有差异,具体驱动信号为:时钟φ10、转移脉冲φTG、复位时钟φRO和采样保持时钟φSHO,时序关系如图3所示。

μPD3575D为双沟道线阵CCD,它有两列525位的CCD移位寄存器,分列在像敏阵列的两边,在一个积分的φTG周期中至少有525个φ10脉冲:另外考虑到一些暗信号和空驱动.本系统开发中取φ10脉冲宽度约为10μs、φTG积分时间为12ms。

单片机驱动主要是通过程序编程控制输出驱动的时序信号,可以通过修改程序方便地修改输出时序,单片机是靠指令产生I/O口的输出逻辑,在使用逻辑转移指令时,必须注意精心配置,避免产生驱动时序相位上的不同步。因为转移指令要根据某些条件产生程序分支,而分支程序在不同的条件下执行周期通常不同,会造成CCD驱动时序不同步。

    检测过程描述:参见图2的系统电路图,当CCD被驱动后因其光电特性会有视频模拟信号Vout输出,信号如图4所示。可以看出:模拟信号Vout在CCD扫描到深色区和白色区有明显的幅值大小区别,要提取的信息就是这个变化的电压信号,但单片机不能直接处理模拟信号Vout,因此必须先将Vout通过二值化处理得到数字信号BIN(见图2二值化电路部分)。这样便得到了反映白线左右两个边缘的脉冲信号BIN。为了方便上位机的处理,不直接输出信号BIN,而是将BIN反馈给AT89C2051,让其通过程序编制来捕捉其上升沿和下降沿的跳变,再从另外的引脚输出与BIN上升沿和下降沿同步的负脉冲信号BIN_OUT。这样上位机可方便地通过中断检测到白线的左右侧。这里AT89C205l还要输出一个同步信号FC(即驱动转移脉冲φTG)。因为系统是在连续扫描地面信息,故FC脉冲可标志CCD上一次扫描的结束和新一行扫描的开始。新一行开始扫描时,上位机收到FC负脉冲后可进入中断对定时器TO、Tl清零并立即开始计数。当收到BIN_OUT的第一个负脉冲后进入中断并停止,定时器TO;当收到BIN_OUT的第二个负脉冲后进人中断并停止定时器T1,读出定时器TO、T1里的数t0、t1。t0、t1便反映了路面白线的坐标位置,很明显t1与t0之差便是白线宽度。

篇10

【关键词】单片机 DS18B20 RS-485 GSM

随着科技的发展,自动化技术及其程度越来越高,自动检测技术和智能控制技术亦广泛地应用于现实的生活与工业生产中,越来越多的科技作品出现在人们的生活里,它们的创造给人们带来了许多便利。

在养护的过程,有部分人因工作繁忙无暇照顾,尤其在外出差旅游时,鱼有可能因无人照料而发生意外。或许,也有人想养鱼,但想到养鱼有一系列的工作,最终打退堂鼓。因此这类人们急需一种便捷、合理的工具来解决这类难题。

该设计的智能化养鱼养护系统能由使用者根据不同鱼类的生活习性设置相应的程序,使鱼儿的生活环境最佳化,自动完成养鱼的全过程。

1 系统硬件设计

本研究将智能养鱼控制系统划分为多个功能单元,形成相应功能的电子单元模块。包括从机控制器部分,主要由加氧模块、温度采集模块、饲料投放模块等几个部分组成。其次是数据传输与存储部分,包括多功能数据采集存储以及基于GSM网络数据传输等部分组成;再次是Visual C#养鱼监控界面。最后实现系统集成与养鱼精细智能管理。

智能养鱼控制系统先通过温度传感器等得到相关参数和数据,再由数据采集与基于GSM网络的通讯传输技术构成整个系统信息的存储与传输。

1.1 系统信息处理器

主机信息处理器的I/O资源分配如表1所示,主要实现(通过控制MAX323)与电脑串口进行通信及控制无线模块(nRf2401)的发射或接收这两个功能。由于这款单片机是基于增强的AVR RISC结构的低功耗8位CMOS微控制器,采用先进的指令集以及单时钟周期指令执行时间,所以其在运行速度上有强大的优势,是传统51内核的12倍速,这样在很大程度上提高了本系统的工作频率。主机信息处理器控制原理图如图1所示。

从机控制处理器的I/O资源分配如表2所示,主要实现对无线模块收发、温度传感器信号的处理、舵机驱动等的控制。主要应用了ATmega8单片机的PWM、定时器、外部中断资源、内置看门狗、多种通信等功能。

1.2 温度测量模块设计

本模块采用DS18B20数字温度传感器实现,信息经过单线接口送入DS18B20或从DS18B20送出,因此从中央处理器到DS18B20仅需接一条线读、写和完成温度变换所需的电源可以数据线本身提供。DS1820的引脚只有三个VDD,GND,DQ,连接图如图2所示。

1.3 RS-485通信网络模块的设计

系统采用RS-485通讯方式来实现主机信息处理器与PC机的通讯。RS-485采用平衡式传送方式,输入、输出均为差动方式,这样在受到干扰时,两根信号线可能同时产生干扰电平,对差动输入不起作用,因此RS-485传输距离远。RS-485的接受器的输入负载小,可允许一个传送器驱动多个接受器,而且处于禁止状态的输出的漏电流较小,可允许多个传送器的输出并联。因此,采用RS-485协议是较为理想的选择,其电路原理如图3所示。

1.4 基于GSM网络的数据无线传送端

系统中GSM模块,采用的是西门子公司的TC35I。TC35I 模块主要由GSM基带处理器、GSM射频模块、供电模块(ASIC)、闪存、ZIF连接器、天线接口六部分组成。作为TC35i的核心, 基带处理器主要处理GSM终端内的语音、数据信号, 并涵盖了蜂窝射频设备中的所有的模拟和数字功能。在不需要额外硬件电路的前提下, 可支持FR、HR和EFR语音信道编码。能快速安全可靠地实现数据、语音传输, 短消息(Short Message Service)和传真服务。

2 系统软件设计

本系统的核心元件是采用Atmega8单片机,在充分考虑单片机的资源和修改程序的方便前提下采用了C语言进行程序的编写。

2.1 数据串口通信数据格式设计

在ATmega系列单片机中,都具有一个能用同步和异步串行接收器和转发器(USART),它是一个高度灵活的串行通讯设备,可以全双工操作,异步或同步传输及灵活的帧格式。在本设计中,设置串口传输波特率为9600bps。串行数据帧通常由数据字加上同步位(开始位与停止位)以及用于纠错的奇偶校验位构成而USART接收多达30种组合的数据帧格式,本系统采用的数据帧格式为八个数据位加上一个开始位一个停止位,如图4所示。

八位数据位中又细分为:起始数据位两个55 AA(由于这两个数据的十六进制数据为01010101 10101010,在传输过程中不容易因干扰而出错。);08 04这两个作为IP地址;XX是一个命令字,如控制加热模块是否启动;00 00 00 00这四个作为数据位,用于表示温度等数据;停止位为0F。

2.2 CRC校验设计

PC机和主机信息处理器的数据采集是采用CRC冗余校验。CRC冗余检验的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个检验码r位(就是CRC码),附在信息后面,构成一个新的二进制码序列数共(k+r)位,最后发送出去。接收端根据同样的规则校验,以确定传送中是否出错。

2.3 从机软件设计

PC机接收来自从机所采集到的数字量,由温度传感器DS18B20检测到的数据,经过模数转换后其温度与数据的对应关系为16位的数字量,所以在传输过程中,将数据保存在4个包含4位大小空间的字符型数组中,并将每个数组由nRF2401向监测终端的串口发送数据。

3 结束语

智能养鱼控制系统的软件功能齐全且模块化设计,随着养鱼系统的发展和控制环节的增多,该系统在结构和功能等方面可以方便地进行扩展。本系统可广泛用于家庭、大型场所观赏鱼和河塘养鱼等,为饲养者提供高效、便捷的服务,是饲养者的好帮手。同时,本系统功能完善且模块化设计,可根据具体应用进行裁剪,具有很高的推广价值。

参考文献

[1]于永学,葛建.1一Wire总线数数字温度传感器DSl8820及应用[J].电子产品世界,2003.

[2]郝丽英.大规模多点温度巡检系统设计与应用[J].交通科技与经济,2002.

[3]李长林等编著.AVR单片机应用设计[M].北京:电子工业出版社,2005.9

[4]沈文、Eagle lee 詹卫前编著.AVR单片机C语言开发入门指导[M].北京:清华大学出版社,2003.5

[5]张克彦编著.AVR单片机实用程序设计[M].北京:北京航空航天大学出版社,2004.2