为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

全自动豆浆机

2017-09-02 41页 doc 267KB 8阅读

用户头像

is_686908

暂无简介

举报
全自动豆浆机全自动豆浆机 一、题义分析与解决方案 1(1 题义与需求分析 1)设计并开发能检测温度信号; 2)能判断所检测的温度值是否越界; 3)若温度值越界则停止加热; 4)若温度达到合适温度,则电机能够转动,并且转4次停4次; 5)能够通过按键模拟水位的溢出和合适 6)能够检测到模拟水位的溢出并做相应的处理; 说明:界限值是自行设定的,合适温度 18?C,其所对应的数字量为0120H;上限35?C,其所对应的数字量为0230H; 1(2 解决问题的方法与思路 1(2(1 硬件部分 温度传感器DS18B20用于检...
全自动豆浆机
全自动豆浆机 一、与解决 1(1 题义与需求分析 1)并开发能检测温度信号; 2)能判断所检测的温度值是否越界; 3)若温度值越界则停止加热; 4)若温度达到合适温度,则电机能够转动,并且转4次停4次; 5)能够通过按键模拟水位的溢出和合适 6)能够检测到模拟水位的溢出并做相应的处理; 说明:界限值是自行设定的,合适温度 18?C,其所对应的数字量为0120H;上限35?C,其所对应的数字量为0230H; 1(2 解决问题的方法与思路 1(2(1 硬件部分 温度传感器DS18B20用于检测温度值,可编程并行接口芯片8255一片,七段LED显示器,芯片8279,继电器,DAC0832 1(2(2 软件部分(汇编语言编写程序) 1)首先要对8255进行初始化设计,设置8255的工作方式并确定8255的端口地址; 2)检测水位是否合适,通过按键模拟 3)水位合适则加热,并与合适温度进行比较,如果合适开始打浆,否则继续加热; 4) 启动DS18B20,发出温度检测命令,将温度值在LED上显示出来; 5)打浆四次,停四次 6)检测水位是否溢出,如果溢出停止加热,否则继续加热; 二、硬件设计 2(1 选择芯片可编程并行接口芯片8255A 2(1(1 8255A的作用 利用8255A将界限值和温度值通过LED显示出来,同时8255A的PC0与DS18B20相连,向其发出温度检测命令及接受温度数据,PC5和蜂鸣器及发光二极管相连,用于声光报警。 2(1(2 8255A的功能分析及技术参数 微机原理课程设计 8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、,口和,口。三个端口都可以作为输入端口或输出端口。,口有三种工作方式:即方式,、方式,和方式,,而,口只能工作在方式,或方式,下,而,口通常作为联络信号使用。8255A的工作只有当片选CS效时才能进行。而控制逻辑端口实现对其他端口的控制。 2-1-1 8255A的内部框图 2(1(3 8255A的方式控制字 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 1 0 0 1 1:工作方式 A口方式0输出 B口方式0输出 C口高4位输入 C口低4位输入 图2-1-2 8255A的方式控制字表 ? 方式0的工作特点: 是这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。 ? 通道的功能为: 两个8位通道:通道A和B。两个四位通道:通道C高4位和低四位,任何一个通道可以作输入/输出,输入是不锁存的,输出是锁存的,在方式0时各个通道的输入/ - 1 - 微机原理课程设计 输出可有16种不同的组合。 D7 D6 D5 D4 D3 D2 D1 D0 0 X X X 写入位编码 写入内容 写入位 编码 0写入0 D0-D7 000-111 1写入1 图2-1-2 8255A的置位/控制字表 标识符 最小 最大 测试条件 输入低电平 -0.5V 0.8V (VIL) 输入高电平 2.0V 5V (VIH) 输出低电平 0.45V IOL=2.5mA (VOL)DB 输出低电平 0.45V IOL=1.7mA (VOL)PER 输出高电平 2(4V IOH=-400μA (VOH)DB 输出高电平2(4V IOH=-200μA (VOH)PER REXT=750Ω,-1.0m-4.0mA 驱动电流 A VEXT=1.5V 120 mA 供应电流 IIL(INPUT LOAD ?10μA VIN=0V~5V CURRENT) IOFL(OUTPUT ?10μA VOUT=0.45~5V FLOATL EAKAGE) 图表2-1 8255A的技术参数表 其中PER为peripheral port的缩写 参数说明: 输入最低电压:min,-0.5V,max,0.8 V 输入最高电压:2.0 V 输出最低电压:0.45 V 输出最高电压:2.4 V 2(2(选择芯片DS18B20温度传感器 - 2 - 微机原理课程设计 2(2(1 DS18B20温度传感器的作用 利用温度传感器检测温度,并转换为数字量和设定的界限值比较。 2(2(2 DS18B20的功能特点 DS18B20可编程温度传感器有三个管脚。GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与CPU相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.0—5.5V。本系统中使用外部电源供电。 其主要特点为: ? 用户可以自行设定报警上下限温度值; ? 不需要外部组件,能测量-55—+125?C范围内的温度; ? 在-10—+85?C范围内的测温准确度为?0.5?C; ? 通过编程可以实现9—12位的数字读数方式,可在至多750MS内将温度转换成12位数字,测温分辨率可达到0.0625?C; ? 独特的单总线接口方式,与微处理器连接时仅需要一条线既可实现和微处理器的 双向通讯。 图2-2-2 DS18B20 内部结构图 图2-2-1 DS18B20 DS18B20的内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位 - 3 - 微机原理课程设计 的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 2(2(3 DS18B20的测温原理和技术参数 DS18B20的测温原理: 图2-2-3 DS18B20的测温原理图 DS18B20的测温原理如图所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ?所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ? 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生 表2-2-1 DS18B20温度值格式表 的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭 - 4 - 微机原理课程设计 就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩 展的二进制补码读数形式提供,以0.0625?/LSB形式表达,其中S为符号位。 这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 DS18B20的存储器: DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。 该字节各位的意义如下: TM R1 R0 1 1 1 1 1 低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位) 分辨率设置表: 分辨温度最大转换时R1 R0 率 间 0 0 9位 93.75ms 0 1 10位 187.5ms 1 0 11位 375ms 1 1 12位 750ms 表2-2-2 分辨率表 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉 - 5 - 微机原理课程设计 500微秒,然后释放,DS18B20收到信号后等待16,60微秒左右,后发出60,240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 2.3 选择芯片8279的相关参数 8279的内部结构框图如下所示: (1)数据缓冲器 它连接内、外总线,暂时CPU与8279芯片之间传送的命令、数据或状态。 (2)I/O控制 它用于控制信息的流向及区分信息的特征。CS=1时,由RO或WR控制从8279读出或向8279写入;A0=0时,选中数据寄存器,输入/输出均为数据。A0=1时,选中命令、状态寄存器,输入时位命令,输出时位状态。 (3)控制与定时寄存器 它用来寄存键盘和显示的工作方式,以及由CPU编程的其他操作方式,并通过译码产生 相应的控制信号,完成规定的控制功能。 复WRD0~D7IRQA0位CSRD时钟 数据缓FIFO RAMI/O控制冲器状态寄存器 显片内总线示 地 址键盘去抖与控控制与定时寄存8×8 FIFO 寄制RAM器16×8显示RAM存 器 定时控制显示寄存器扫描计数器返回缓冲器 CNTL/STBBDOUTB0~3SHIFTOUTA0~3SL0~SL3 RL0~RL7 图2_1:8279的内部结构框图 (4)定时控制 它对外部时钟信号CLK分频至内部所需要的100kHz时钟。 (5)扫描计数器 它可根据编程命令按编码或译码方式工作。 编码方式:4位计数器按二进制计数,计数状态从扫描线SL0~SL3输出,经外部译码器译码后,为键盘和显示器提供16个扫描信号。 译码方式:扫描计数器最低两位被译码后从SL0~SL3输出,可直接作为键盘和显示器扫描 - 6 - 微机原理课程设计 信号。此时键盘矩阵为4×8,显示字符为4位。 键盘去抖与控制 (6) 键盘去抖电路:在键盘扫描方式中,当有键闭合时,按命令指定方式去抖动后读入键值。 控制电路:按命令指定方式控制去抖电路的工作过程,以及对返回信号进行处理。 (7)返回缓冲器 它锁存来自RL0~RL7的回复信号,在键盘扫描方式中,返回线与键盘矩阵列线相连,在逐行扫描时搜寻一行中闭合键所在的列。当有键闭合时,经去抖动后经行、列编码和附近的移位、控制状态一起形成键盘数据送至FIFO存储器,供CPU读取。 表2_1:键盘数据格式 D7 D6 D5 D4 D3 D2 D1 D0 CNTL SHIFT SL2 SL1 SL0 R2 R1 R0 控制 移位 行编码 列编码 其中,控制和移位由两个独立的附加开关决定;SL2 SL1 SL0为按下键的行编码,来自扫描计数器的低3位;R2 R1 R0是根据返回信号确定的列编码。 (8)FIFO RAM 它是一个8×8RAM,在键盘输入方式时遵循先入先出(FIFO)原则。 (9)FIFO RAM的状态寄存器 它用来存放FIFO RAM的状态,例如RAM空、满等。当工作在键盘方式FIFO存储器不空时,将产生IRQ,1信号向CPU申请中断。 (10) 显示RAM、显示地址寄存器 显示RAM用来存储显示数据。容量为168位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分别为A、B两组,OUTA0~3和OUTB0~3可以单独送数,也可以组成一个8位的字。显示寄存器的输出与显示扫描配合,不断从显示RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。 显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读写或写入之后自动递减。 (11)显示寄存器 它存放显示内容。在显示过程中它与显示扫描配合,轮流从显示RAM中读出显示信息并依次驱动被选中的显示器件,循环不断地刷新显示字符编码,使显示器件呈现稳定的显示字符。8位显示寄存器分为A、B两组,OUTA0~3和OUTB0~3可以单独送树,显示4个字符也可以组成一个8位字符。 (12)显示地址寄存器 它寄存读/写显示RAM地址,即对应显示字符从哪一位开始。它由命令设定,并可设置成每次读出或写入之后自动加1。 B(芯片8279是一种具有40条引脚的双列直插式芯片,它的外部引脚如下图所示: CS(片选):输入线,当CS=0时8279被选中,允许CPU对其读、写,否则被禁止。 D0~D7(数据总线):双向、三态总线,和系统数据总线相连;用于CPU和8279间的数据/命令传递。 A0:地址线,进行片内端口选择。为0时,选中数据寄存器;为1时选中命令/状态寄存器。 - 7 - 微机原理课程设计 RD、WR(读、写信号):输入线。低电平有效,来自CPU的控制信号,控制8279的读、写操作。 CLK:系统时钟,为8279芯片提供内部定时。 RESET:复位线,高电平时复位8279到:16个字符显示(左进方式);编码扫描键盘(双键锁定);时钟设置为31。 IRQ(中断请求):输出线。高电平有效。 IRQRL0~RL7 D0~D7SHIFT CNTL/STBRD WRSL0~SL78279 CSOUTA0~3A0 CLK RESETOUTB0~3 +5VBD GND 图2_2: 外部引脚图 在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据,则IRQ再次恢复高电平。在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。 SL0~SL3:扫描线,用来扫描键盘或显示器,可编程设定为编码输出或译码输出。 RL0~RL7:返回线,用作键盘矩阵列线的返回信号输入。 SHIFT:移位信号,高电平有效,是键盘数据的D6位,用于扩充键的控制功能,如作为上、下档功能键。 CNTL:控制线,高电平有效,键盘工作方式时,是键盘数据的D7位,用于扩充键的控制功能——控制功能键。 OUTA0~ OUTA3,OUTB0~OUTB3:A组、B组显示信号输出线,与扫描线SL0~SL3同步,实现分时数据显示,即刷新各位显示字符。两组可独立使用,也可合并使用。 BD(显示消隐):输出线。低电平有效。该信号在数字切换显示或使用消隐命令时,将显示消隐。 C(8279的工作过程通过确定其方式字/命令字来实现。 当A0=1时,CPU向8279芯片写入命令。 (1) 设置键盘/显示方式 表2_2: 设置命令字 D7 D6 D5 D4 D3 D2 D1 D0 - 8 - 微机原理课程设计 0 0 0 D D K K K 其中: D7、D6、D5=000方式设置命令特征位。 DD(D4、D3):来设定显示方式,其定义如下: 00:8个字符显示,左入口 01:16个字符显示,左入口 10:8个字符显示,右入口 11:16个字符显示,右入口 所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列; 所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动。 KKK(D2、 D1、 D0):用来设定七种键盘、显示工作方式: 000 编码扫描键盘,双键锁定 001 译码扫描键盘,双键锁定 010 编码扫描键盘,N键轮回 011 译码扫描键盘,N键轮回 100 编码扫描传感器矩阵 101 译码扫描传感器矩阵 110 选通输入,编码显示扫描 111 选通输入,译码显示扫描 双键锁定与N键轮回是多键按下时的两种不同的保护方式。双键锁定为两键同时按下提供的保护方法。再消颤周期里,如果有两键同时按下,则只有其中一个键弹起,而另一个键保持在按下位置时,才被认可。N键轮回为N键同时按下的保护方法。当有若干键按下时,键盘扫描能够根据发现他们的顺序,依次将它们的状态送入FIFO RAM中。 (2) 设置程序时钟命令 表2_3:命令格式 D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 P P P P P 其中:D7、D6、D5=001为时钟命令特征位。PPPPP( D4、D3、D2、D1、D0)用来设定外部输入CLK端的时钟进行分频的分频数N。N取值为2~31。例如外部时钟频率为2MHZ,PPPPP被置为10100(N=20),则对输入的外部时钟20分频,以获得8279内部要求的100KMZ的基本频率。 (3) 读FIFO/传感器RAM命令 表2_4:命令格式 D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 AI X A A A 其中:D7D6D5 =010为读FIFO/传感器RAM命令特征位。该命令字只在传感器方式时使用。在CPU读传感器RAM之前,必须使用这条命令来设定传感器RAM中的8个地址(每个地址一个字节)。 - 9 - 微机原理课程设计 AAA(D2、D1、D0)为传感器RAM中的八个字节地址。 D4)为自动增量特征位。当AI=1时,每次读出传感器RAM后地址自动加1使地址指针 AI( 指向下一个存储单元。这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。在键盘工作方式中,由于读出操做严格按照先入先出顺序,因此,不需使用此命令。 (4) 读显示RAM命令 表2_5:命令格式 D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 AI A A A A 其中:D7D6D5 =011为读显示RAM命令字的特征位。该命令用来设定将要读出的显示RAM地址。AAAA(D3、D2、D1、D0)用来寻址显示RAM命令字的特征位。由位显示RAM中有16个字节单元故需要4位寻址。AI(D4)为自动增量特征位。当AI=1时,每次读出后地址自动加1指向下一地址。 (5) 写显示RAM命令 表2_6:命令格式 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 AI A A A A 其中:D7D6D5 =100为写显示RAM命令字的特征位。在写显示器RAM之前用该命令用来设定将要写入的显示RAM地址。AAAA(D3、D2、D1、D0)为将要写入的存储单元地址,AI(D4)为自动增量特征位。当AI=1时,每次写入后地址自动加1指向下一次写入地址。 (6) 显示禁止写入/消隐命令特征位 表2_7:命令格式 D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 X IWA IWB IWC IWD 其中:D7D6D5 =101为显示禁止写入/消隐命令特征位。IWA、IWB(D3、D2)为A、B组显示RAM写入屏蔽位。由于显示寄存器分成A、B两组,可以单独送数,故用两位来分别屏蔽。当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。因此,从CPU写入显示器RAM数据时,不会影响A的显示。这种情况通常在采用双4位显示器时使用。因为两个双四位显示器是相互独立的。为了给其中一个双四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。IWC、IWD(D1、D0)为消隐显示位。用于对两组显示输出消隐。若BL=1时,对应组的显示输出被消隐。当BL=0时,则恢复显示。 (7) 清除命令 表2_8: 命令格式 D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 CD CD CD CF CA 其中: D7D6D5 =110清除命令特征位。 CDCDCD(D4D3D2)用来设定清除显示RAM方式。共有四种消除方式,见表6-10-1。 CF(D1)用来置空FIFO存储器,当=1时,执行清除命令后,FIFO RAM被置空,使中断输 - 10 - 微机原理课程设计 出线复位。同时,传感器RAM的读出地址也被置0。 D0)为总清的特征位。它兼有CD和CF的联合效能。在CD=1时,对显示的清除方式由 CA( D3、D2的编码决定。 清除显示RAM约需160S。在此期间FIFO状态时的最高位DU=1,表示显示无效。CPU不能向显示RAM写入数据。 (8) 结束中断/错误方式设置命令 表2_9:命令格式 D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 E X X X X 其中: D7D6D5 =111为该命令的特征位。此命令有两种不同的作用: ?作为结束中断命令。在传感器工作方式中使用。每当传感器状态出现变化时,扫描检测电路将其状态写入传感器RAM,并启动中断逻辑,使IRQ变高,向CPU请求中断,并且禁止写入传感器RAM。此时,若传感器RAM读出地址的自动递增特征没有置位(AI=0),则中断请求IRQ在CPU第一次从传感器RAM读出数据时就被清除。若自动递增特征已置位(AI=1),则CPU对传感器RAM的读出并不能清除IRQ,而必须通过给8279写入结束中断/错误方式设置命令才能使IRQ变低。因此在传感器工作方式中,此命令用来结束传感器RAM的中断请求。 ?作为特定错误方式设置命令。在8279已被设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。这种方式的特点是:在8279的消颤周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E将置1,并产生中断请求信号和阻止写入FIFO RAM。 上述八种用于确定8279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。因此,写入命令字时唯一的要求是使数据选择信号A0=1。 8279芯片的状态字主要用于键盘和选通工作方式,以指示FIFO RAM中的字符数和有无错误发生。 表2_10:键盘和选通工作方式格式 D7 D6 D5 D4 D3 D2 D1 D0 DU S/E 0 U F N N N 其中: DU( D7)为显示无效特征位。当DU=1表示显示无效。当显示RAM由于清除显示或全清命令尚未完成时,DU=1。 D6(S/E):在键盘工作方式中为特殊错误方式标志位。S/E=1表示出现多键同时按下的错误。 D5(0):超出标志位,当向已满的FIFO RAM中写入,致使FIFO RAM中的字符个数n>8而产生重叠时,0被置为1。 D4(U):“空”标志位,当FIFO RAM中的字符个数n=0时,U被置为1。 D3(F):“满”标志位,当FIFO RAM中的字符个数n=8时,F被置为1。 D2D1D0(NNN):表示FIFO RAM中有n个字符待取走。 - 11 - 微机原理课程设计 2(4 选择七段LED显示器 2(4(1 七段LED显示器的作用 本次设计需要用到LED显示器显示预设的温度界限值以及测定的温度值。 2(4(2 七段LED显示器功能分析 七段LED显示器可以控制在哪几个数位上,哪几个发光二极管亮,从而显示数字。其工作原理:如果发光二极管共阳极,则输入为0时亮,为1时不亮,反之如果发光共阴极,则输入1时亮,0时不亮。发光二极管时一种外加电压超过额定电压时发生击穿,并因此能产生可发光的器件,数码显示器通常由多个发光二极管来组成七段或八段笔画显示器,当段组合发光时,便会显示某一个数码管或字符,七段代码的各位用作a—g和DP的输入 2(4(3 七段LED显示器技术参数 表2-5-1 LED显示的技术参数 PCW LF Vr Ir If p 对应变量 散射颜色 BT235 70 25 5 ?1.5 ?2.5 200 SEL-10 红 BT144 100 40 5 ?0.5 ?2.5 565 绿 BT134 100 40 5 ?0.5 ?2.5 585 蓝 主要参数:此时的驱动电流为25 mA。 2(4(4 七段LED显示器内部结构 - 12 - 微机原理课程设计 图2-5-1 LED显示器内部结构 2(4(5 七段LED显示器真值表 2.5、选择数/模转换器DAC0832 2(5(1 DAC0832在本设计中的作用 DAC0832是National Semiconductor生产的一款D/A(数字/模拟)转换器,其采用CMOS和R,2RT形电阻解码网络, 转换结果为一对差动电流 I01和 I02输出。在本设计中主要用来将开关打入的数字信号转换为相应的模拟信号。 2(5(2 DAC0832的功能分析 DAC0832是8位D/A转换器,转换周期为1μs。它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成。当ILE为高电平,CS为低电平,WR1为负脉冲时,在LE1产生正脉冲;LE1为高电平时,输入寄存器的状态随数据输入线状态变化,LE1的负跳变将输入数据线上的信息存入输入寄存器。当Xfer为低电平,WR2输入负脉冲时,则在LE2产生正脉冲;LE2为高电平时,DAC寄存器的输入 - 13 - 12345678910111213141516 微机原理课程设计 与输出寄存器的状态一致,LE2的负跳变,输入寄存器内容存入DAC寄存器。 DAC0832的输出是电流型的。在微机系统中,通常需要电压信号,电流信号和电压 信号之间的转换可由运算放大器实现。 2(5(3 DAC0832的技术参数 DAC0832芯片采用CMOS工艺,四象限乘法型DAC,与微机兼容,数据输入 能与双缓冲、单缓冲或直接通过三种方式工作。是一个8位D/A转换器,输入电平 与TTL、CMOS兼容,单电源+5,+15V工作,基准电压的范围为? 10V,电流建 立时间为1µs,低功耗200mw,20引脚,双列直接式封装。 DS23VCCR71 470 U20R78120CSVDDCSJP312510WR118-12V1W5C33AAWR2WRD5192ILEU260.1uF171KXFER114OUTPUT1OUTPUT4OUT78D0+12V213DI0VREF-INPUT1-INPUT46D1312DI1+INPUT1+INPUT459D2DI2RFB4D3U238411DI3V+GND21611D4DI4IOUT161512D5510DAC0832LCNDI5IOUT2+INPUT2+INPUT3314D669DI6-INPUT2-INPUT313D7LM741CN178DI7OUTPUT2OUTPUT35W6473AGND-12VLM324N1010KDGNDR79 4.7KC320.1uF -12V 2.6 继电器 继电器在本实验中主要用于控制直流电机,当CTRL端输入1时,直流电机 工作,输入0时,直流电机停止工作。其CTRL连接到8255A的PC4口。 - 14 - BB CC DD Title SizeNumberRevision A0 Date:2005-12-19Sheet of File:F:\Inovation\..\STAR.SCHDOCDrawn By:12345678910111213141516 微机原理课程设计 VCCJP30 D4 1 VCC R81 2 Q5 8 7 18 R82 5.1K COM1 6 OUT1 R83 CLOSE1 5 2K COM2 OUT2 3 CLOSE2 2 K1 图9 继电器工作原理图 2(7硬件总逻辑图及说明 三、控制程序设计 3(1 控制程序设计思路说明 - 15 - 微机原理课程设计 首先初始化8255,8279,DAC832等器件。通过键盘的按键来模拟豆浆机的水位是否合适,如果按的键与预先设置的水位合适键一样,则说明水位合适,否则程序将不断的检测水位。 然后通过DS18B20来检测温度,并通过8279将温度显示在LED显示器上,将其与豆浆机可以打浆的合适温度相比较,如果大于或等于说明温度合适可以打浆,否则继续加热知道温度合适。由于DS18B20采用串行数据传送和单总线数据传输方式,其数据输入输出都由同一条线完成。因此,对读写的操作时序要求严格。为了保证DS18B20有严格的读写时序,需要做较精确的延时。在操作中用到的延时有15us,在写数据操作时首先把数据放入一个寄存器中,再一次写一位数据到DS18B20内,用循环移位指令将上一次传输的数据循环右移,每传输一位采用设定的延时程序保证读写时序。用CX寄存器控制移位的次数,移位8次表示传输了一个字节的数据。从DS18B20读出数据时也采用每位传输的方法经过PC0口传输到8255A中,每次传输一位后暂存在AL寄存器中,再把AL寄存器中数据向右循环移位一次,数据被移动到标志位中,此时在用带标志位的循环移位指令把数据移动到另一个寄存器BL里,这样就完成了一位数据的读出。在移位的时候也需要注意读写时序的问题,所以采用专门的延时程序控制。循环移位8次即表示传输了一个字节的数据,最后把BL中的数据再传送到AL寄存器中,完成数据的读出操作。 接着便可以打浆了,通过8255的p7口通过继电器控制直流电机的转动。当打浆完成后,在继续加热。如果水位溢出则停止加热,等水位下去后再继续加热,直到检测到四次溢出,说明打浆完成,整个程序完成。 3(2 控制程序流程图 - 16 - 微机原理课程设计 图3-2-1 主程序流程图 3(3 控制程序 .MODEL TINY Device_ID EQU 8376 ;设备ID号 ;PUBLIC SCAN_KEY .STACK 700 PUBLIC CMD_8279,DATA_8279 .DATA PCIBAR3 EQU 1CH ;8位I/O空间基地IO_Bit8_BaseAddress DW ? 址(它就是实验仪的基地址,也为DMA & 32 msg0 DB 'BIOS不支持访问PCI $' BIT RAM板卡上的8237提供基地址) msg1 DB '找不到Star PCI9052板卡 $' Vendor_ID EQU 10EBH ;厂商ID号 msg2 DB '读8位I/O空间基地址出错$' - 17 - 微机原理课程设计 Con_8255 DW 00F3H CALL CLEAR ;清除LED显PC_8255 DW 00F2H 示 PA_8255 DW 00F0H MOV AL,90H ;从第一个数buffer DB 8 DUP(0) ;温度临时存放 码管开始移位显示,写显示RAM命令,后四buffer2 DB 8 DUP(0) ;温度设定值 位为写入的地址,第五位为1,说明每次写入buffer3 DW ? ;中间量 后地址自动加一,指向下一次写入地址 NUM DB OUT DX,AL 0 ;用来计数的 LIMIT_1 DW 0120H ;18?为合 适温度 MOV DX,Con_8255 ;LIMIT_2 DW MOV AL,0FH0260H ;38?,最后的温度 ;8255的P7口置高电平,防止电CMD_8279 DW 00B1H机转动00001111h ;8279命令字、状态字地址,接cs5 OUT DX,AL DATA_8279 DW MAIN_1: MOV AH,01h 00B0H ;8279读写数据口的 INT 21H 地址 CMP al,'A' ;水位检测,若水DAC0832_ADD DW 位为A,说明合适,可以加热了 00D0H ;D/A转换口地址,接cs3 JNZ MAIN_1 ;若不合LED_TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H 适,则继续检测 DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH MAIN: DB CALL START_Temperature ;向 0FFH,0BFH ;LEDDS18B20发送读温度指令 显示值表,从0-F JB MAIN .CODE CALL Delay START: MOV AX,@DATA CALL RD_Temperature ;读出温 MOV DS,AX 度值 MOV ES,AX CALL DIS_BCD ;提取温 NOP 度数据,转换为非压缩型BCD码,并显示 CALL InitPCI ;初始化 MOV DX,Con_8255 PCI卡 MOV AL,0FH CALL ModifyAddress ;根据 ;8255的P7口置高电平,防止电PCI提供的基地址,将偏移地址转化为实地址 机转动 CALL Init8255 ;初始化 OUT DX,AL 8255 MOV AX,BUFFER3 CALL DAC0832 CMP AX,LIMIT_1 MOV DX,CMD_8279 ;CMD_ JG MAIN_2 ;令地8279为写命址、读状地址 温度达到要求停止 MOV AL,34H ;可编 CALL 程时钟设置,设置分频系数(20分频)00110100,DAC08321 ; 否则继续加热 前三位为特征位,后五位的值为20,用来设置 JMP MAIN 分频系数,时钟吧编程命令 OUT DX,AL MOV AL,00H ;显示方式: 8*8字符显示,左边输入,外部译码键扫描方式,MAIN_2: MOV CX,4 8个字符显示,左端入口,编码扫描键盘,双MAIN_5: MOV DX,Con_8255 键锁定 MOV AL,0EH OUT DX,AL - 1 - 微机原理课程设计 OUT DX,AL CALL MAIN_3: JMP Exit Delay15s ;延时15s,即是让电 机转动15s ;******************************** ;D/A子程序,初始化程序 MOV DX,Con_8255 ;******************************** MOV DAC0832 PROC NEAR AL,0FH ;将P7口置1,停止电机 MOV DX,DAC0832_ADD 转动 MOV AL,00H OUT DX,AL OUT DX,AL CALL RET Delay15s ;延时15s,在调用这DAC0832 ENDP 个程序的时候也进行温度的检测 LOOP MAIN_5 ;DAC加热子程序 DAC08321 PROC NEAR MOV CX,4 ;4次溢出 MOV DX,DAC0832_ADD MAIN_4: ;检测是否有溢出, MOV AL,0F0H 通过8255的pa口的PA2来控制的,开关扳下说 OUT DX,AL 明水位溢出,此时PA2收到的是高电平 RET PUSH CX DAC08321 ENDP CALL DAC08321 ;调 用加热程序 ;******************************** CALL START_Temperature ;温度转换/显示 CALL Delay ;******************************** CALL RD_Temperature DIS_BCD PROC NEAR CALL DIS_BCD MOV BX,AX POP CX LEA DI,buffer+7 CALL Init8255 MOV DX,PA_8255 STD ;D IN AL,DX F位置一,即每次操作后变址寄存器减一 TEST AL,02H ;测试PA2口是 MOV否有键按下 AL,10H ; 10H表示 JZ MAIN_4 ;若为零, 不需要显示 说明没有键按下,则继续运行上面的程序, STOSB CALL DAC0832 ;有键 STOSB 按下,说明水位溢出了,所以停止加热 STOSB JMP MAIN_7 TESTMAIN_6: CALL AH,08H ;ah是符号DAC08321 ;继续加热 位 LOOP MAIN_4 JNZ DIS_BCD1 CALL CLEAR STOSB ;正数 JMP MAIN_3 JMP DIS_BCD2 MAIN_7: MOV DX,PA_8255 ;DIS_BCD1: MOV AL,11H 测试水位检测按钮是否已经按回,即水位检测 STOSB ;负开关是否关闭, 数 IN AL,DX NEG BX TEST AL,02H DIS_BCD2: JZ MAIN_6 ;等于零说明按钮已经 ;将按回 温度整数位转换为ASCI JMP MAIN_7 ;否则继续检测 - 2 - 微机原理课程设计 SHL BX,1 ;将;写 0 W_L PROC NEAR 温度的个位与十位合在BH中 PUSH AX SHL BX,1 MOV DX,Con_8255 SHL BX,1 MOV AL,80H ;所有口输出, SHL BX,1 ;移 置低电平PC0口也低电平写0 动4次以后,bx的低四位就移动了高四位 OUT DX,AL MOV AX,10 MOV DX,Con_8255 XCHG AL,BH MOV AL,0FH DIV BH ;8255的P7口置高电平,防止电 CMP AL,0 ;商在al中,余数在ah 机转动 中 OUT DX,AL JNZ DIS_BCD3 ;判断温度的 POP AX 十位是否为0进行相应处理 RET MOV AL,10H ;十位为W_L ENDP 0 ;写 1 XCHG AL,[DI+1] W_H PROC NEAR STOSB PUSH AX JMP DIS_BCD4 MOV DX,Con_8255 DIS_BCD3: STOSB MOV AL,01H ;PC0口DIS_BCD4: MOV AL,AH 置1,写1 OR AL,80H ;小数点 OUT DX,AL STOSB MOV DX,Con_8255 XOR AL,AL MOV AL,0FH ;转换小数部分 ;8255的P7口置高电平,防止电 TEST BL,10H 机转动 JZ DIS_BCD5 OUT DX,AL MOV AL,6 POP AX DIS_BCD5: TEST BL,20H RET JZ DIS_BCD6 W_H ENDP ADD AL,12H ;DS18B20复位初始化子程序 DAA DIS_BCD6: TEST BL,40H INIT_18B20 PROC NEAR JZ DIS_BCD7 CALL W_L ;主机 ADD AL,25H 发出501us复位低脉冲 DAA CALL Delay501us ;延DIS_BCD7: TEST BL,80H 时501us,维持低电平 JZ DIS_BCD8 MOV DX,Con_8255 ADD AL,50H MOV AX,89H DAA OUT DX,AL ;PC输入状态,DIS_BCD8: MOV BL,AL 等待PC0口输入 MOV CL,4 DEC DX ROR AL,CL MOV CX,15 ;检测15次 AND AL,0FH INIT_18B20_1: IN AL,DX STOSB TEST AL,01H ;如果18B20 AND BL,0FH MOV AL,BL 回复,则PC0口被写1,表示18B20存在 STOSB JZ INIT_18B20_2 ;如果存在 CLD LOOP INIT_18B20_1 LEA SI,buffer ;显示温度 STC ;置位标志位,表示 CALL Display8 DS18B20不存在 RET RET DIS_BCD ENDP - 3 - 微机原理课程设计 INIT_18B20_2: CALL Delay501us 据 CLC ;复位标志位,WRI: CALL W_L表示DS18B20存在 ;0->PC0,维持低电平8us RET CALL Delay8us INIT_18B20 ENDP ROR AL,1 ;在占用总线;****************************** 周期内AL的最低位被写入PC0口,再写入;延时子程序 18B20 ;****************************** JNB WRI1 ;如果写入的为0Delay501us PROC NEAR 则继续维持低电平50us PUSH AX CALL W_H ;如果写 PUSH CX 如的是1则调用W_H(即写1) PUSH DX WRI1: CALL Delay50us MOV CX,167 CALL W_H MOV DX,PA_8255 LOOP WRI Delay501us_1: IN AL,DX RET LOOP Delay501us_1 WRITE_18B20 ENDP POP DX ;读操作 POP CX READ_18B20 PROC NEAR POP AX MOV CX,8 ;数据一共 RET 有8位 Delay501us ENDP Read1: CALL Delay50us Delay50us PROC NEAR MOV DX,Con_8255 PUSH AX MOV AL,88H PUSH CX OUT DX,AL PUSH DX MOV AL,89H MOV CX,12 OUT DX,AL ;PC0-PC7口 MOV DX,PA_8255 置输入状态,准备接收18B20发出的温度信号 Delay50us_1: IN AL,DX CALL Delay8us ;延时8us接收 LOOP Delay50us_1 18B20一位 POP DX MOV DX,PC_8255 POP CX IN AL,DX ;将18B20发出的 POP AX 一位信号由PC0口写入AL RET ROR AL,1 ;右移AL最Delay50us ENDP 低位到标志位CF Delay8us PROC NEAR RCR BL,1 ;把标志位CF PUSH AX 移到BL最高位,目的是备份AL PUSH CX MOV DX,Con_8255 PUSH DX MOV AL,80H MOV CX,2 OUT DX,AL MOV DX,PA_8255 MOV AL,01H Delay8us_1: IN AL,DX OUT DX,AL ;1->PC0,表 LOOP Delay8us_1 示读一位结束准备读下一位 POP DX LOOP Read1 POP CX MOV AL,BL POP AX RET RET READ_18B20 ENDP Delay8us ENDP ;************************************** ** ;写操作 ; 判断DS18B20是否存在,启动DS18B20 WRITE_18B20 PROC NEAR ;CY为判断标志 MOV CX,8 ;一共8位数 - 4 - 微机原理课程设计 ;************************************** OUT DX,AL ** DEC DX START_Temperature PROC NEAR MOV AL,0FFH OUT DX,AL CALL INIT_18B20 ;先复位DS18B20 RET JC GET_T ;如果CF为0则结束 Init8255 ENDP MOV AL,0CCH ;由于系统只 有一个18B20,所以可跳过ROM匹配 Delay PROC NEAR ;延时 CALL WRITE_18B20 ;控制字写 PUSH AX 入18B20 PUSH DX MOV AL ,44H ;发出温度转换命 MOV DX,900 ;延时900ms 令 MOV AH,0FFH ;星研 CALL WRITE_18B20 公司的软中断 CLC INT 21H POP DX GET_T: RET POP AX START_Temperature ENDP RET Delay ENDP ;**************************************;************************************* ** ;PCI初始化子程序,(源于参考资料) ; 读出转换后的温度值,存在AX ;************************************* ;**************************************InitPCI PROC NEAR * MOV AH,00H RD_Temperature: CALL INIT_18B20 ;准 MOV AL,03H 备读温度前先复位 INT 10H ;清屏 MOV AL,0CCH ;跳过 MOV AH,0B1H ROM匹配 MOV AL,01H CALL WRITE_18B20 INT 1AH MOV AL,0BEH ;发出 CMP AH,0 JZ InitPCI2 读温度命令 LEA DX,msg0 CALL WRITE_18B20 InitPCI1: MOV AH,09H CALL READ_18B20 ;读出温度 INT 21H MOV AH,AL ;存放到AX JMP Exit CALL READ_18B20 InitPCI2: MOV AH,0B1H XCHG AL,AH ;由于18B20 MOV AL,02H 发出16位温度信号分别为正负符号位(4位)\整 MOV CX,Device_ID 数位8位\小数位4位 MOV DX,Vendor_ID MOV BUFFER3,AX ;将 MOV SI,0 测量出来的温度放到内存单元buffer3中 INT 1AH JNC InitPCI3;是否存在PCI9052 RET ;先发出低8位到 板卡 AL,传至AH,再读高八位到AL,该子程序结束 LEA DX,msg1 时要把AH和AL交换 JMP InitPCI1 InitPCI3: MOV DI,PCIBAR3 MOV AH,0B1H ;8255初始化 MOV AL,09H Init8255 PROC NEAR INT 1AH ;读取该卡PCI9052基 MOV DX,Con_8255 地址 MOV AL,90H ;A,B口工作 JNC InitPCI4 在方式0,A口作为输入端口用来检测水位溢 LEA DX,msg2 出开关是否按下 JMP InitPCI1 - 5 - 微机原理课程设计 InitPCI4: AND CX,0FFFCH POP CX MOV IO_Bit8_BaseAddress,CX POP BX RET POP AX InitPCI ENDP RET DisPlay8 ENDP ModifyAddress PROC NEAR ;**************** ADD Con_8255,CX ;初始化8279 ADD PC_8255,CX ;**************** ADD PA_8255,CX INIT8279PROC NEAR ADD CMD_8279,CX PUSH AX ADD DATA_8279,CX MOV ADD DAC0832_ADD,CX DX,CMD_8279 ;CMD_8279为写命令地 址、读状地址 RET MOV AL,34H ;可编程时钟ModifyAddress ENDP 设置,设置分频系数(20分频) ;******************************** OUT DX,AL ;显示DS18b20读出的温度值,看的不太明白 MOV AL,0 ;8*8字符显示,左;******************************* 边输入,外部译码键扫描方式 DisPlay8 PROC NEAR OUT DX,AL PUSH AX CALL CLEAR ;清显示 PUSH BX POP AX PUSH CX MOV AL,92H ;设置显示方 PUSH DX MOV CX,4 ;计数用 式 LEA BX,LED_TAB OUT DX,AL RET DisPlay81: MOV AL,[SI] ;不 INIT8279ENDP 用显示的位调整 CLEAR PROC NEAR AND AL,7FH MOV DX,CMD_8279 CMP AL,11H MOV AL,0DEH ; JZ DisPlay82 ;负号 清除命令,将全部显示PAM置为ffh,执行清Display84: CMP AL,16 除命令后,FIFO RAM被置空,使INT 线复位 JB DisPlay82 同时传感器读出的地址也被置为0 MOV AL,10H ;显示段码中10H OUT DX,AL 位对应的是暗码 WAIT1: IN AL,DX DisPlay82: XLAT TEST AL,80H XCHG AL,[SI] JNZ WAIT1 TEST AL,80H RET JZ Display83 CLEAR ENDP XCHG AL,[SI] AND AL,7FH MOV [SI],AL ;************************** Display83: INC SI ;显示输入的温度设定值 LOOP DisPlay81 ;************************** MOV AL,0 SHOW PROC NEAR CALL INIT8279 PUSH SI CALL SHOW PUSH BX MOV CX,4 LEA SI,buffer2;设置温度临时存放区 Display85: DEC SI MOV AL,[SI] LODSB CALL WRITE_DATA LEA BX,LED_TAB LOOP Display85 XLAT POP DX CALL WRITE_DATA;调用显示温度子 - 6 - 微机原理课程设计 函数 LODSB XLAT Delay15s PROC NEAR CALL WRITE_DATA PUSH BX POP BX MOV BX,01CDH POP SI Delay15s_1: RET call Delay10ms SHOW ENDP dec bx ;*********************************** jnz Delay15s_1 ;延时500毫秒 pop bx ;*********************************** ret DL500MS PROC NEAR Delay15s endp PUSH AX PUSH DX MOV DX,500 Delay10ms PROC NEAR MOV AH,0FFH PUSH AX INT 21H PUSH DX POP DX MOV AH,0FFH; POP AX MOV DX,10 RET INT 21H DL500MS ENDP POP DX POP AX ret WRITE_DATA PROC NEAR ;将alDelay10ms ENDP 中显示出来 中的数据送到8279Exit: MOV AH,4CH MOV DX,DATA_8279 INT 21H OUT DX,AL END START RET WRITE_DATA ENDP 四、上机调试过程 4(1 硬件调试 此次课程设计采用了全新的硬件系统,通过一上午的熟悉和对各模块作用的了解,其实接线并不是很复杂,经过一天的认真思考和尝试还有龙夏老师和何立新老师的指导,发现硬件原理图可以在简化,后来修改了一下。还有就是在开始做的时候发现机器没有预想的发展,后来经老师的检查是机器坏了,后来换了一台好的便可以了。 4(2 软件调试 软件随硬件的改动而修正如下: 1) 开始时直流电机没法转动,后来请叫老师发现是给直流电机的电压小了导致 - 7 - 微机原理课程设计 无法转动起来,然后我将电压调高便可以了。 2) 开始的时候LED显示的温度不正确且不变化,经过检查发现是DS18B20的时序 没有设置好导致温度无法正确的显示,后来参考ds18b20的时序图进行相应的调 整,温度便能正确的显示了。 3) 水位检测是通过8255的PA口的PA0来控制的,但是程序无法检测到水位溢出, 后来发现在拨动开关后应停止一段时间,否则程序还没有检测到就有变回去了, 这样无法检测到溢出,后来我设了一个延时就搞定了。 4(3 调试结果及问题的提出 经过不断对软硬件调试以及联机调试,最终得到的调试结果是程序运行后,按下水位合适按键(A),开始检测是否达到合适温度,如果没有继续加热知道水位合适,水位合适后直流电机开始转动,转15s停15s,总共循环四次,然后继续加热,如果水位溢出则停止加热,知道检测到四次溢出为止,此时整个程序结束。在其中遇到的问题是无法正确的读出温度和显示。 五、设计结果分析及问题讨论 5(1 课程设计结果及分析 该程序实现了模拟的豆浆机的全过程,包括水位检测、打浆、水位溢出检测、加热等操作。通过键盘的按键模拟水位合适检测,如果按下的键和水位合适键相同,说明水位合适,否则继续检测知道水位合适为止。通过ds18b20来实现加热和读温度操作,通过DAC832给它一个电压使其加热,通过8255的pc0口来写操作命令字和读温度,通过8279将检测到的温度显示在LED显示器上。通过8255的PA口中的pa0来实现水位溢出检测功能,如果该端口检测到低电平,说明水位溢出,否则没有溢出继续加热。 5(2 问题讨论 这个程序遇到的主要问题就是温度无法正确读出和显示,开始时是准备通过8255的PA口和PB口来实现,后来发现用8279比8255更加简单与准确,而8255剩下的端口还可以用来控制水位检测等功能。还有就是温度无法正确的读出,这主要是ds18b20的工作时序没有把握好,后来在老师的帮助下搞明白了它的工作时序,然后对程序做了相应的修改就可以了。 5(3 收获、体会和建议 课程设计历时二个星期左右,通过这两个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。这次的课程设计也让我看到了团队的力量,我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。刚开 - 1 - 微机原理课程设计 始的时候,大家就分配好了各自的任务,聚在一起讨论各个方案的可行性。在课程设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们成功的一项非常重要的保证。而这次设计也正好锻炼我们这一点,这也是非常宝贵的。 通过本次课程设计,加强了自己的动手实践能力,操作能力及解决问题的能力。并且通过查阅相关资料,学习书本及课堂中老师不曾介绍过的知识(同时也学会了在动手实践的过程中,发现问题,分析问题,在最短的时间内寻找问题的解决方案。更重要的是通过本次的课程设计,我学到了关于微机原理课程的更多相关内容,了解了DS18B20芯片的作用、内部结构、引脚的功能、工作方式、技术参数、如何实现从模拟量到数字量的转换。更加深入认识了8255A、8279和DAC0832的内部构造、控制字、方式字的设置以及通过8255A控制输出量。 总的来说,虽然课程设计的时间有限,但在这有限的时间里,不仅完成了作业,提交了结果,也丰富了这门硬件课程的更多知识,更深入地了解了这门专业课的精髓,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。 知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆~ 设计者:王进 完成时间:2010年3月 - 2 - 微机原理课程设计 - 3 -
/
本文档为【全自动豆浆机】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索