电子系统设计报告

合集下载

电子系统设计实验报告aw60

电子系统设计实验报告aw60

竭诚为您提供优质文档/双击可除电子系统设计实验报告aw60篇一:嵌入式实验报告Aw60实验一名称:编程环境与数据排序姓名:李懿学号:1214098同组:孙垭琪实验日期:20XX.10.28一、实验目的掌握Freescale68hc08汇编语言设计和调试方法,熟悉proemulator、cw08、sD-1型嵌入式微控制器在线实验开发系统的使用方法。

二、实验内容1.实验环境pc机、Dp-01多mcu实验平台、codewarrior集成开发环境、proemulator模拟软件2.硬件接线无3.实验内容:(1)利用汇编语言编写程序,把Freescale68hc908gp32内部RAm$50~$5F单元中的16个无符号数按从小到大的顺序排列,结果放到内部RAm$60~$6F单元中,$50~$5F中数的顺序保持不变。

(2)利用c语言编程完成实验内容(选做内容)三、实验方案及流程图1.实验要求:(1)通过cwIDe或proemulator调试程序并查看运行结果。

(预习时完成)(2)利用cwIDemon08接口把程序下载到mcu实验平台,通过单步、断点等多种调试方式运行程序并查看运行结果。

(3)完成实验报告的撰写。

2.实验方案:本实验采用软件设置断点的方法完成程序调试,查验实验结果。

无须进行硬件连线。

实验采用冒泡法进行数据排序,程序流程如图1所示。

图1冒泡法排序流程图四、实验程序清单DATA1eQu$70DATA2eQu$80n1eQu$A0n2eQu$b0TempeQu$c0FLAgeQu$D0ADDRess1eQu$e0ADDRess2eQu$F0oRg$0070Dc.b$10,$20,$80,$72,$23,$32,$43,$54,$64,$76,$98,$43 ,$76,$87,$62,$62oRg$8000main:moV#$10,n2moV#$01,FLAgLDhx#DATA1sThxADDRess1LDhx#DATA2sThxADDRess2Loop:LDhxADDRess1LDA,xAIx#1sThxADDRess1LDhxADDRess2sTA,xAIx#1sThxADDRess2 DbnZn2,Loop L1:moV#$0F,n2 LDhx#DATA2 moVn2,n1 bcLR0,FLAgL2:LDA,xAIx#1cmp,xbcsL3bseT0,FLAg sTATemp LDA,xAIx#-1sTA,xAIx#1 LDATemp sTA,xL3:DbnZn1,L2bRcLR0,FLAg,L4DbnZn2,L1bRA$L4:oRg$FFFeDc.wmainenD五、实验结果及体会1、实验结果2、实验体会实验二名称:三字节(压缩bcD码形式)无符号十进制数加法程序一、实验目的掌握Freescale68hc08汇编语言设计和调试方法,熟悉proemulator、cw08、sD-1型嵌入式微控制器在线实验开发系统的使用方法。

电子系统设计实验报告

电子系统设计实验报告

基于单片机和FPGA的等精度频率计一、设计任务工作频率通信系统极为重要的参数,频率测量是通信系统基本的参数测试之一。

本设计的主要任务是使用单片机与 EDA 技术设计制作一个简易的等精度频率测试仪,可对输入周期信号的频率进行测量、显示。

被测信号的频率范围和测试的精度要求见相应的设计任务书。

二、设计框图图 1 硬件系统原理框图等精度频率计的主系统硬件框图如图1 示,主要由以下几部分组成:(1)信号整形电路:用于对于放大信号进行放大和整流,以作为PLD 器件的输入信号(2)测频电路:是测频的核心电路模块,由FPGA 或CPLD 器件组成。

(3)单片机电路模块:用于控制FPGA 的测频操作和读取测频数据,并做出相应处理。

(4)数码显示模块:用8 个数码管显示测试结果,考虑到提高单片机I/O 口的利用率,降低编程复杂性,提高单片机的计算速度以及降低数码显示器对主系统的干扰,可以采用串行静态显示方式。

三、测频原理分析3.1 等精度频率测试的原理频率是一个基本的物理量,其它的物理量可以转换为频率进行测量。

测试频率的基本方法包括直接测频和测周法。

其中直接测频法是产生一个标准宽度(例如1s)的时基信号,然后在这个信号时间范围内打开闸门对被测频率信号进行计数。

此方法的弱点之一是高精度的标准时基信号不容易获得;其二,这种方法对于高频信号的测量精度比较有保证,但是对于低频信号由于计数周期有限测试精度较低。

测周法是用被测信号作为闸门信号、对标准脉冲信号进行计数,显然这种方法适合测量低频信号的频率。

等精度测频法的核心思想是用两个计数器分别对标准和被测脉冲进行计数,计数的时间严格同步于被测脉冲。

这种方法的最大优点是测试的精度和被测信号的频率无关,因而可以做到等精度测量。

其测试原理如图2 示。

预置闸门信号是测试命令,即测频的使能信号,该信号为高电平的期间进行测频。

但是当预置闸门信号为高电平时,测频并不是立即开始,而是要等到被测信号的上升沿到来以后,实际闸门信号跳为高电平,测频才真正开始。

电子系统设计创新与实践实习报告

电子系统设计创新与实践实习报告

电子系统设计创新与实践实习报告——数控直流电流源制作学院:信息科学与工程学院班级:通信工程09-1姓名:学号:指导老师:摘要此次实习我的选题为数控直流源的设计与制作,我们小组在参考传统电流源以及普通数控电流源的基础上,在充分考虑性价比的同时提高数控电流源的准确性,再通过软件控制来实现数控直流源的工作。

本系统主要由直流电流源和单片机控制系统两部分组成。

直流电流源采用连续调整型恒流源,电源电路分为四个模块电路:比较放大器、MOS型调整管、采样电阻和负载。

根据题目要求,我们采用的是8位A/D转换芯片ADC0832,8位D/A转换芯片DAC0832,通过AT89C52单片机控制系统进行校正,同时它还负责键盘输入和LCD显示功能,人机界面友好。

关键字:直流源、AT89C52、DAC0832、ADC0832、LCD1602一、数控电流源简介所谓恒流源就是输出电流极其稳定不随负载变化。

为了保证电流不变,输出电压必须始终符合V=I*R。

即负载需要多大电压,恒流源就必须输出多大电压,“无条件”予以满足。

负反馈的作用就是“使之稳定”。

通过时刻“检查”控制对象的状态,并进行调整。

发现小了,就设法使之增大,发现大了,就设法使之减小。

形象地说,电流负反馈电路则是采样输出电流,计算误差,据此调节自身状态,使输出电流稳定,因而,输出特性接近恒流源。

随着电子技术的不断进步,对电子仪器的要求也不断提高。

电源作为电路的动力源泉更是扮演着越来越重要的角色,然而传统的电流源不论是在控制精度还是输出特性上都无法满足要求。

再者单片机技术的不断发展和D/A,A/D技术的不断成熟使得数控电源成为可能,数控电流源不论是在控制精度还是在可操作性上都有传统电源无法比拟的优势。

二、设计任务及要求1.设计任务: 设计并制作数控直流电流源。

输入交流36V,50HZ;输出直流电压<=10V。

其原理示意图如下:2.设计要求1)输出电流范围:200mA~2000mA;2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值≤给定值的1%+10 mA;3)具有“+”、“-”步进调整功能,步进≤10mA;4)改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值≤输出电流值的1%+10 mA;5)纹波电流≤2mA;三、数控电流源硬件系统整体设计AT89C52单片机、A/D、D/A芯片,键盘,LCD,显示器构成系统的控制电路;比较放大器、负载、调整管及采样单元构成恒流源电路。

电子系统设计实验报告

电子系统设计实验报告

实验报告格式要求二.实验目的、任务和要求:本实验要求设计SCI串行接口芯片, 其功能包括串行及并行数据的接收和互相转换。

三.实验系统结构设计分析1.模块划分思想和方法:该芯片需根据功能分为串并转换电路和并串转换电路两部分。

实现串并转换的关键器件就是移位寄存器, 其功能可以使串行输入的数据先寄存到一个位矢量中, 等到一组数据全部输入完毕后再一起处理, 并行输出。

而实现并串转换的关键器件是锁存器, 它可以将并行输入的数据先锁存起来, 再一位一位的转化成串行数据。

计数器在这一芯片中也起到了重要作用, 因为计数器可以产生时间脉冲的分频, 用于配合时间脉冲控制各器件的工作。

2.各模块引脚定义和作用.串并电路:输入: rxd读入数据, clk系统时钟, reset计数器复位端, rd读入控制四进制计数器:C4四分频十进制计数器:Count_10计数分量, C10四十分频(c4的十分频)移位寄存器:Read读入数据, d0~d9并行输出(d0起始端, d1~d8数据端, d9校验位(本实验中不起作用))锁存器:K0~k7数据位状态发生器:RdST读入状态(0为读入, 1为寄存器已满)四.实验代码设计以及分析:1.给出模块层次图;2.按模块完成的代码及注释.USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCI ISPORT(cs,rxd,clk,SCIrd,reset,SCIwr,in7,in6,in5,in4,in3,in2,in1,in0: IN STD_LOGIC;rdFULL,tdEMPTY,c4:buffer std_logic;e7,e6,e5,e4,e3,e2,e1,e0,wxd:OUT STD_LOGIC);END SCI;ARCHITECTURE WORK OF SCI ISSIGNAL wr,rd,read,c10,d9,d8,d7,d6,d5,d4,d3,d2,d1,d0,k7,k6,k5,k4,k3,k2,k1,k0,mid: STD_ULOGIC;SIGNAL wri : STD_LOGIC_vector(7 downto 0);SIGNAL count_10 ,counter_8:std_logic_vector(3 downto 0);BEGINPROCESS(cs)BEGINrd<=cs OR SCIrd;wr<=cs OR SCIwr;END PROCESS;//注释: 片选输入, cs=1时, 串入并出为“写”, 并入串出为“读”;cs=0时, 串入并出为“读”, 并入串出为“写”;PROCESS(rxd)BEGINread<=rxd;END PROCESS;PROCESS(clk)VARIABLE count_4 : STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINIF(clk'EVENT AND clk='1')THENIF(count_4="00")THENcount_4 := "01";c4 <= '1';ELSIF(count_4="01")THENcount_4 := "11";c4 <= '1';ELSIF(count_4="11")THENcount_4 := "10";c4 <= '0';ELSIF(count_4="10")THENcount_4 := "00";c4 <= '0';END IF;END IF;END PROCESS;PROCESS(c4)BEGINIF(c4'EVENT AND c4='1')THENIF(rd='1')THENd0<=read;d1<=d0;d2<=d1;d3<=d2;d4<=d3;d5<=d4;d6<=d5;d7<=d6;d8<=d7;d9<=d8;END IF;END IF;END PROCESS;PROCESS(c4,reset,rd)BEGINIF(reset='0' OR rd='0')THEN count_10<="0000";c10 <= '0';ELSIF(c4'EVENT AND c4='1')THENIF(count_10="0000" AND rxd='1' AND rdFULL='0')THEN count_10 <= "0001";c10 <= '0';ELSIF(count_10="0001")THENcount_10 <= "0010";c10 <= '0';ELSIF(count_10="0010")THENcount_10 <= "0011";c10 <= '0';ELSIF(count_10="0011")THENcount_10 <= "0100";c10 <= '0';ELSIF(count_10="0100")THENcount_10 <= "0101";c10 <= '0';ELSIF(count_10="0101")THENcount_10 <= "0110";c10 <= '0';ELSIF(count_10="0110")THENcount_10 <= "0111";c10 <= '0';ELSIF(count_10="0111")THENcount_10 <= "1000";c10 <= '0';ELSIF(count_10="1000")THENcount_10 <= "1001";c10 <= '0';ELSIF(count_10="1001")THENcount_10 <= "1010";c10 <= '0';ELSIF(count_10="1010")THENcount_10 <= "1011";c10 <= '1'; END IF;END IF;END PROCESS;PROCESS(c10)BEGINIF(c10'EVENT AND c10='1')THENk7<=d8;k6<=d7;k5<=d6;k4<=d5;k3<=d4;k2<=d3;k1<=d2;k0<=d1;END IF;END PROCESS;PROCESS(rd)BEGINIF(rd='0')THENe7<=k7;e6<=k6;e5<=k5;e4<=k4;e3<=k3;e2<=k2;e1<=k1;e0<=k0;END IF;END PROCESS;PROCESS(rd,c10)BEGINIF(rd='0')THEN rdFULL<='0';ELSIF(c10='1')THENrdFULL<='1';ELSE rdFULL<='0';END IF;END PROCESS;process(wr)beginif(wr='0')thenwri(0)<=in0;wri(1)<=in1;wri(2)<=in2;wri(3)<=in3;wri(4)<=in4;wri(5)<=in5;wri(6)<=in6;wri(7)<=in7;end if;end process;process(c4)beginif(c4'event and c4='1')thenif(wr='0')thencounter_8<="0000";elsif(wr='1' and counter_8="0000")then counter_8<="0001"; elsif(counter_8="0001")then counter_8<="0010";elsif(counter_8="0010")then counter_8<="0011";elsif(counter_8="0011")then counter_8<="0100";elsif(counter_8="0100")then counter_8<="0101"; elsif(counter_8="0101")then counter_8<="0110";elsif(counter_8="0110")then counter_8<="0111";elsif(counter_8="0111")then counter_8<="1000";elsif(counter_8="1000")then counter_8<="1001";end if;end if;end process;process(wr,counter_8)beginif(wr='1' and counter_8="1001")thenmid<='1';tdEMPTY<='1';elsif(wr='0')thenmid<='0';tdEMPTY<='0';end if;end process;process(counter_8)beginif(wr='0' or mid='1')thenwxd<='0';elsif(wr='1' and mid='0')thenif(counter_8="0001")thenwxd<=wri(0);elsif(counter_8="0010")thenwxd<=wri(1);elsif(counter_8="0011")thenwxd<=wri(2);elsif(counter_8="0100")thenwxd<=wri(3);elsif(counter_8="0101")thenwxd<=wri(4);elsif(counter_8="0110")thenwxd<=wri(5);elsif(counter_8="0111")thenwxd<=wri(6);elsif(counter_8="1000" )thenwxd<=wri(7);end if;end if;end process;END WORK;五.仿真图(输入输出波形)以及分析:六.实验问题分析和经验总结:在该实验的设计中, 我们发现时序逻辑中最重要的部分就是时间信号对各进程的控制, 因为为了保持各进程在时间上的同步性和正确性, 需要用一个或几个相关联的时间信号来控制各进程。

电子系统设计实验报告

电子系统设计实验报告

电子系统设计实验报告电子系统设计实验报告引言:电子系统设计是现代科技领域中非常重要的一部分,它涉及到电子元件、电路设计、信号处理等多个方面的知识。

本次实验旨在通过设计一个简单的电子系统来加深对电子系统设计的理解和掌握。

实验目的:本次实验的目的是设计一个基于Arduino的温度监测系统。

通过该系统,能够实时监测环境温度并将数据显示在LCD屏幕上。

实验器材:1. Arduino开发板2. 温度传感器3. LCD显示屏4. 连接线等实验步骤:1. 首先,将温度传感器与Arduino开发板连接。

将传感器的VCC引脚连接到5V引脚,GND引脚连接到GND引脚,将信号引脚连接到Arduino的A0引脚。

2. 接下来,连接LCD显示屏。

将显示屏的VCC引脚连接到5V引脚,GND引脚连接到GND引脚,将SDA引脚连接到A4引脚,SCL引脚连接到A5引脚。

3. 在Arduino开发环境中编写代码。

首先,需要包含所需的库文件,如LiquidCrystal_I2C库和Wire库。

然后,定义温度传感器引脚和LCD显示屏的相关参数。

接着,在setup函数中初始化LCD显示屏,并设置显示屏的列数和行数。

在loop函数中,通过调用温度传感器库函数获取环境温度,并将其显示在LCD屏幕上。

4. 将Arduino开发板与电脑连接,并上传代码到开发板上。

5. 实验完成后,观察LCD屏幕上的温度显示,确保温度监测系统正常工作。

实验结果:经过实验,我们成功设计并实现了一个基于Arduino的温度监测系统。

该系统能够准确地测量环境温度,并将数据实时显示在LCD屏幕上。

通过该系统,我们可以方便地监测环境温度的变化。

实验总结:通过本次实验,我们对电子系统设计有了更深入的了解。

我们学会了如何使用Arduino开发板和相关传感器进行电子系统的设计。

同时,我们也掌握了如何编写代码并将其上传到开发板上。

这些技能对于今后从事电子系统设计工作将非常有帮助。

电子商务系统分析与设计报告

电子商务系统分析与设计报告

电子商务系统分析与设计报告
目录
一、课程设计的总体规划 (1)
二、绪论 (1)
2.1、开发背景 (1)
2.2、现状分析 (2)
三、系统分析 (3)
3.1、开发过程分析 (4)
3.2、系统功能结构 (4)
3.3、手机销售网站系统的前台功能结构图 (6)
3.4、手机销售网站系统的后台功能结构
图 (6)
3.5、手机销售网站系统的业务流程分析 (7)
四、网站架设 (10)
五、数据库设计 (10)
5.1、系统E-R 图 (10)
5.2、数据表结构 (11)
六、前台主要功能模块详细设计 (13)
6.1、登陆页面 (13)
6.2、注册页面 (14)
6.3、本站简介页
面 (14)
6.4、产品列表页面 (14)
6.5、商品搜索页面 (14)
6.6、顾客留言页面 (14)
6.7、购物车页面 (14)
七、后台主要功能模块详细设计 (14)
7.1、后台登陆页面 (14)
7.2、商品管理页面 (14)
7.3、订单管理页面…………………………………………………………………………………………
(14)
7.4、会员管理页面 (14)
7.5、促销管理页面 (15)
八、系统运行与维护 (15)
九、课程设计总结 (16)。

Altium Design实验报告

Altium Design实验报告

课程名称:电子系统设计实验项目:PCB设计基础(二)指导教师:张秀梅专业班级:10电子本姓名:孟宪娇学号: 201000802062 成绩:实验目的:1.掌握创建层次电路原理框图方法。

2. 掌握PCB设计初步。

3. 掌握PCB的覆铜和补泪滴,完成PCB的分层设计。

实验步骤:1.创建层次电路原理框图。

2.绘制电路原理图。

3.设计PCB。

4.给布完线的PCB覆铜和补泪滴,测量板子的长度和宽度。

实验过程:1.创建层次电路原理框图。

1)创建层次原理图文件(同电路原理图文件一样,扩展名.SchDoc)2)执行Place/Sheet Symbol命令或单击布线工具栏上的按钮。

3)放置十字光标上的方块电执行路,按TAB键,出现“方块电路属性设置”对话框,设置属性。

4)执行Place/Add Sheet Entry命令或单击布线工具栏上的按钮,放置端口符号,按TAB键,出现“方块电路端口属性设置”对话框,设置其属性。

5)将放置并修改属性的方块图用导线或总线连接即可。

2.绘制电路图1)创建PCB工程文件,添加原理图文件,保存在同一路径下。

2)绘制键盘电路,并进行电气规则检查,生成网络表格,原理图打印输出。

○1电气规则检查步骤: 单击【项目管理】|【项目管理选项】命令,弹出Options for PCB Project对话框,该对话框主要设置检查的项目和范围,设定电路检查连接的规则,其中包括以下内容:●Error Reporting标签:用于设置错误报告的类型。

用户可以设置所有可能出现的错误报告类型。

报告类型有Error、Warning、Fatal Error和No Report。

●Connection Matrix标签:用于设置电路的电气连接属性。

如果要设置当无源器件的管脚连接时系统产生警告信息,可以在矩阵右侧找到无源器件管脚(Passive Pin)这一行,然后再在矩阵上部找到未连接(Unconnected)这一列,改变由这个行和列决定的矩阵中的方框的颜色,即可改变电气连接检查后错误报告的类型。

电子系统设计实习报告

电子系统设计实习报告

一、实习背景随着科技的不断发展,电子系统设计在各个领域中的应用越来越广泛。

为了提高自己的实践能力和综合素质,我选择了电子系统设计实习。

本次实习旨在通过实际操作,掌握电子系统设计的基本方法,提高自己的动手能力和设计水平。

二、实习目的1. 掌握电子系统设计的基本原理和流程。

2. 学会使用常用电子设计工具,如EDA软件、PCB设计软件等。

3. 提高动手能力,学会焊接、调试等基本技能。

4. 培养团队合作精神,提高沟通协调能力。

三、实习内容1. 电子系统设计基础知识实习期间,我学习了电子系统设计的基本原理,包括模拟电路、数字电路、微控制器等。

通过学习,我对电子系统设计有了初步的认识,了解了各个模块的功能和作用。

2. EDA软件使用为了提高设计效率,我学习了Altium Designer软件,通过实际操作,掌握了电路原理图绘制、PCB设计、仿真等基本技能。

在绘制电路原理图时,我学会了如何使用元件库、布线规则等,使电路图更加规范。

3. PCB设计在PCB设计方面,我学习了Altium Designer软件的PCB设计功能,掌握了元件布局、布线、测试点设置等技巧。

通过实际操作,我完成了一个简单的PCB设计,并进行了焊接和调试。

4. 焊接与调试在焊接方面,我学习了手工焊接的基本技能,包括烙铁的使用、焊接方法、焊接注意事项等。

在调试方面,我学会了使用示波器、万用表等工具,对电路进行测试和故障排查。

5. 项目实践在实习期间,我参与了一个电子系统设计项目,负责电路设计、PCB设计和调试。

通过团队合作,我们成功完成了项目,并进行了演示。

四、实习心得体会1. 实践是检验真理的唯一标准。

通过实习,我深刻体会到理论知识的重要性,同时也认识到实际操作技能的必要性。

2. 团队合作是完成项目的关键。

在实习过程中,我学会了与团队成员沟通、协作,共同解决问题,提高了自己的沟通协调能力。

3. 持续学习是提高自己的重要途径。

电子系统设计领域不断更新,我们需要不断学习新技术、新方法,以适应行业发展的需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子系统设计与实践——具有报时报温功能的电子钟设计者:电气83班 08041074刘湛 08041072 李旭内容摘要本次设计以AT89C52芯片为核心,辅以必要的外围电路,设计了一个简易的具有报时报温功能的电子钟,它由5V直流电源供电。

在硬件方面,除了CPU外,使用8个七段LED数码管来进行显示,LED采用的是动态扫描显示,利用74LS573进行数码管段驱动,利用ULN2803A进行位驱动。

通过LED能够比较准确显示时、分、秒以及日期和当前室温。

利用5个简单的按键分别实现对时间的调整,年月日显示的切换,温度显示切换。

时钟日历来源于DS1302芯片。

温度测量功能来源于DS18BU20芯片。

软件方面采用C语言编程,以完成功能实现。

整个电子钟系统能完成时间的显示,调时,以及温度显示等功能。

关键词:电子系统设计AT89C52 LED数码管日历芯片DS1302 温度测量芯片DS18BU20目录一.实现功能、任务以及具体要求二.重要硬件简介及应用三.功能的论证与实现四.系统框图五.总体设计系统电路原理图和PCB 版图六.程序流程图七.实验遇到的问题及改进八.实验总结及感想九.参考书目十.源程序一.实现功能、任务以及具体要求1.目的及任务:(1)通过查阅相关资料,深入了解温度测量相关知识;(2)学习动态显示方式的实现方法及原理;(3)复习“MCS-51单片机原理及C语言程序设计”,掌握其接口扩展;(4)确定具有报时报温功能的电子钟的原理图,构建硬件平台;(5)采用汇编或C语言编写应用程序并调试通过;(6)制作出样机并测试达到功能和技术指标要求;(7)写出设计报告和答辩PPT。

.2.具体工作内容:(1)技术要求:1. 时钟日历来源于DS1302芯片。

2. 温度测量使用DS18BU20。

3. 定闹功能、蜂鸣器音提示。

4. 具有实时年月日显示和校时功能。

5. 六位数码管动态显示,可采用按键切换显示。

(2)工作任务:1.组建具有报时报温功能的电子钟的总体结构框图;2.根据设计要求,通过理论分析选择电路参数;3.根据操作功能要求,确定键盘控制功能;4.按设计要求确定显示位数、指示类型和单位;5.编写应用程序并调试通过;6.对系统进行测试和结果分析;7.撰写设计报告和答辩PPT。

二.重要硬件简介及应用89C52单片机、DS1302时钟日历芯片、DS18B20温度传感器1、DS18B20主要资料温度传感器DS18B20是单线智能温度传感器,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,在使用中不需要任何外围元件,测量结果以9-12位数字量方式串行传送。

其测温范围-55℃~+125℃,固有测温分辨率0.5℃。

支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温。

DS18B20的外形图如图2所示,在本设计中2号引脚节单片机的P3.4引脚,来实现温度数据的传输。

下面就其内部结构和原理做简要介绍。

(1)DS18B20的内部结构。

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

该装置信号线高的时候,内部电容器储存能量通由1线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充电。

DS18B20的电源也可以从外部3V-5 .5V的电压得到。

(2)DS18B20的六条控制命令温度转换 44H 启动DS18B20进行温度转换;读暂存器 BEH 读暂存器9个字节内容;写暂存器 4EH 将数据写入暂存器的TH、TL字节;复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中;重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节;读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CP (3)DS18B20的初始化(1)先将数据线置高电平“1”。

(2)延时(该时间要求的不是很严格,但是尽可能的短一点)(3)数据线拉到低电平“0”。

(4)延时750微秒(该时间的时间范围可以从480到960微秒)。

(5)数据线拉到高电平“1”。

(6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。

据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。

(7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起最少要480微秒。

(8)将地址线拉高到“1”后结束。

(4)DS18B20的写操作(1)数据线先置低电平“0”。

(2)延时确定的时间为15微秒。

(3)按从低位到高位的顺序发送字节(一次只发送一位)。

(4)延时时间为45微秒。

(5)将数据线拉到高电平。

(6)重复上(1)到(6)的操作直到所有的字节全部发送完为止。

(7)最后将数据线拉高。

(5)DS18B20的读操作(1)将数据线拉高“1”。

(2)延时2微秒。

(3)将数据线拉低“0”。

(4)延时15微秒。

(5)将数据线拉高“1”。

(6)延时15微秒。

(7)读数据线的状态得到1个状态位,并进行数据处理。

(8)延时30微秒。

图3 DS18B20的读写时序图根据以上原则,参考读写时序图图可编写程序对DS18B20中的温度数据信息进行采集。

读写时序图如图3所示。

将从温度传感器中采集到的温度数据进行处理后即可变成可由数码管显示的十进制数。

其转换方式如下所述。

(6)DS180B20读出数据的计算方法从DS18B20中读出的二进制数值必须先转换为十进制数才能用于数码管的显示。

DS18B20的转换精度可选9-12位,在采用12位转换精度时,温度寄存器里的二进制数以0.0625为步进。

即,温度值为温度寄存器里的值乘以0.0625,得到实际的十进制温度。

十进制、二进制和十六进制转换关系如表1所示。

表1 DS18B20的温度与测得值对应表温度/C 二进制值十六进制值+125 0000 0111 1101 0000 07D0H+85 0000 0101 0101 0000 0550H +25.0625 0000 0001 1001 0001 0191H+10.125 0000 0000 1010 0010 00A2H+0.5 0000 0000 0000 1000 0008H0 0000 0000 0000 0000 0000H-0.5 1111 1111 1111 1000 FFF8H-10.125 1111 1111 0101 1110 FF5EH-25.0625 1111 1110 0110 1111 FF6FH -55 1111 1100 1001 0000 FC90H单片机分两次从温度传感器DS18B20中读取数据,每次读取一个字节。

先读低位再读高位。

读取后把二进制的高字节的低半字节与低字节的高半字节组成一个字节,并转化为十进制后就得到温度值得百位、十位、各位的值,剩下的低半字节转化为十进制后就得到小数部分,小数部分二进制和十进制的关系如表2所示。

表2 小数部分的二进制和十进制的近似对应关系小数0 1 2 3 4 5 6 7 8 9 A B C D E F 部分十进0 1 1 2 3 3 4 4 5 6 6 7 8 8 9 9 制值(2)DS1302主要资料DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

1、芯片引脚及功能DS1302的引脚如图所示,其功能如下;(1)Vcc1:电源输入引脚,单电源供电时接Vcc1脚,,双电源供电时用于接备份电源;(2)Vcc2:电源引脚,双电源供电时接主电源;(3)GND:接地引脚;图4 DS1302引脚图(4)RST:复位引脚;(5)I/O:数据输入输出引脚;(6)SCLK:串行时钟引脚(7)X1、X2:时钟输入引脚,外接晶体振荡器。

具体工作说明时CPU只通过SCLK、RST和I/O三个口来实现数据传输。

其中,RST为通信允许信号,低电平有效,即RST=0,允许通信,RST=1时,禁止通信,SCLK为串行数据的位同步脉冲信号,I/O为双向串行数据传输信号。

在本设计中SCLK与单片机P2.0连接(2)时钟芯片DS1302的命令字节时钟芯片DS1302由单片机来控制数据传输,每次传输时由单片机向时钟芯片DS1302写入一个命令字节开始,后面是数据字节。

时钟芯片DS1302的命令字节格式如表3所示。

表3 时钟芯片DS1302的命令时序位序D7 D6 D5 D4 D3 D2 D1 D0定义 1 RAM/CLK A4 A3 A2 A1 A0 RD/W 其中命令字节各位的定义如下:(1)命令字节的最高位D7为1;(2)RAM/CLK位为时钟芯片DS1302片内RAM/时钟的选择位,当RAM/CLK 为1时,为RAM操作,为0时为时钟操作;(3)A4-A0为片内日历时钟寄存器或RAM的地址选择位;(4)RD/W为时钟芯片DS1302读写控制,当RD/W=1时,为读操作,当RD/W=0时,为写操作。

时钟芯片DS1302执行读操作时,时钟芯片DS1302接受命令字节后,按指定的选择对象及寄存器的的地址读取数据并通过I/O引脚传输给单片机;时钟芯片DS1302执行写操作时,时钟芯片DS1302接受命令字节后,接受来自单片机的数据并写入到时钟芯片DS1302相应的寄存器中。

2、时钟芯片DS1302的数据格式与控制格式选择时钟操作时,与日期有关的DS1302的数据格式如表4所示表4 DS1302的日历时钟寄存器及其控制字寄存器名命令字取值范围各位内容写操作读操作7 6 5 4 3 2 1 0秒寄存器80H 81H 00-59 CH 10SEC SEC分寄存器82H 83H 00-59 0 10MIN MIN时寄存器84H 85H 0-12或00-23 12/24 0 10APHR HR日寄存器86H 87H 01-28,29,30,310 0 10DATA DATE月寄存器88H 89H 01-12 0 0 0 10M MONTH周寄存器8AH 8BH 01-07 0 0 0 0 0 DAY年寄存器8CH 8DH 00-99 10years Year(1)秒寄存器,地址为00H,其中以BCD码形式存放秒信息。

相关文档
最新文档