avr实验报告
- 格式:doc
- 大小:1.98 MB
- 文档页数:19
UNITROL® F三机励磁系统调试报告姓名日期姓名日期编制工厂试验审核工厂验收批准现场试验现场验收注:1、本调试报告前两部分(硬件设置、工厂试验)=出厂试验报告。
2、完成本调试报告的相关试验项目,表示已完成交接试验,设备可投入正常运行。
一、硬件设置1.1主控板 CON-2出厂编号:CH1:CH2:1.2 电源板 POW-1出厂编号:CH1:CH2:1.3 电力系统稳定器(PSS) UNS0869 出厂编号:CH1:CH2:1.4 功率接口板 UNS2861C出厂编号:CH1:CH2:*) HW-Code parameter must be setted manuallyFrequency SettingCurrent LimiterProportional gain K LIM with HEX switch S200Gain of Current IDCIe-max. Setpoint V LI with HEX switch S201Current RegulatorProportional gain K CR with HEX -Switch S202Inverter LimitEk1.5 信号处理板 UNS1860b,V1/V2,Modified 出厂编号:CH1:CH2:1.6 电源模块 UNS0868出厂编号:CH1:CH2:1.7 PT/CT接口板 UNS0862出厂编号:CH1:I1N p.u.Rated machine current divided by C.T. nominal current. Adjustment only required, if ratio <0.8.1.8 基本I/O接口板 UNS0863/C7出厂编号:1.10 跨接器 UNS0016b-E出厂编号:1.11 通道铭牌1.12 附加的硬件修改二、工厂试验2.1 外观检查〃设备及元件接地,接线排□〃元件布置□〃油漆□〃门把手功能□〃铭牌□2.2 MCB设置2.3 介电强度试验〃功率回路 2000V;50Hz;1Min □〃辅助交流和直流电源回路 1500V;50Hz;1Min □〃 PT和CT 回路 1500V;50Hz;1Min □2.4 供电电源检查〃辅助交流电源(照明、加热器) VAC □〃交流电源供电(可控硅桥输入) VAC □〃辅助直流电源 VDC □〃控制电压24V直流 VDC □2.5 变送器型号2.6 程序下载2.7 操作控制回路动作试验〃灭磁开关动作□〃照明电路动作□〃风扇电路动作□〃就地/远方动作□2.8 各附加单元整定与动作正确性试验〃数字量输入□〃模拟量输出□2.9 保护及报警监视试验〃小型断路器报警□〃灭磁开关跳闸报警□〃PT 断线报警□2.10 总体静态特性试验〃基准负载测试□2.11 测量值校验三、现场试验3.1 试验准备(发电机静止时)实际参数设置参照参数表详细信息参阅“调试指导”3.1.1 外观检查〃机壳安装妥善无可见损坏□〃外部连线,总线连接,外部接地□〃直流,灭磁开关,启励及灭磁回路□〃20℃时磁场电阻(含引线电缆电阻)3.1.2 绝缘试验〃主回路绝缘试验□3.1.3 供电电源〃交流电源(用于照明及加热器) V 〃直流电源 V 〃第二直流电源(可选) V 〃电子设备功能正常/内部电源电压正常 V3.1.4 软件〃软件下载(在AFT系统的两个通道中)□〃软件版本〃基本参数设定□3.1.5变送器检查□3.1.6 控制回路〃检查所有命令输入□〃检查所有信号输出□〃检查报警和跳闸回路□〃灭磁开关控制回路□〃启励电路灭磁开关控制回路□〃检查风扇控制回路灭磁开关控制回路□〃检查电压互感器(PT)和电流互感器(CT)□〃灭磁开关控制回路□〃检查模拟量输入和输出□3.1.7 保护装置〃跨接器的外观检查(校准BOD单元)□发电机接地检测检查□励磁机接地检测检查□3.2空载试验(发电机在额定转速下)3.2.1 手动通道〃将可控硅桥封脉冲,测量起励时的发电机电压U G%〃调整测量实际值(U G,U SYN,I F,U F)□〃设定参考值和预设值的限制值□〃在手动通道中调整PI参数□〃检查整流器电源电压和相位 V 〃检查分灭磁开关灭磁(灭磁电阻灭磁)□〃检查不分灭磁开关灭磁(逆变灭磁)□3.2.2 自动通道〃启励和软启励□〃调整测量实际值(U G,U SYN,I F,U F)□〃设定参考值和预设值的限制值□〃在自动通道中调整PID参数□〃设定及检查V/HZ限制器□〃检查灭磁回路(正常灭励和跳灭磁开关)□〃定义P/Q补偿□3.2.3 通道切换〃检查自动手动通道的切换,是否平滑无冲击□3.2.4 监视和保护〃检查PT 故障时自动到手动通道的切换动作定义□〃检查PT故障时通道1到通道2的切换动作定义□3.3并网功能试验(发电机在额定转速下)3.3.1并网后一般性试验〃校准发电机电流测量值/检查P和Q测量值□〃P≈0;Q滞相甩负荷试验□〃P≈0;Q进相甩负荷试验□〃自动通道作阶跃响应,优化动态性能□〃手动通道作阶跃响应,优化动态性能□〃检查叠加控制的影响□〃手动限制调整□3.3.2 IE限制器〃励磁电流IE过励限制器的定义和校核□〃用阶跃响应使限制器动作时优化动态响应过程□3.3.3 IG限制器〃定义电流IG过电流限制器 (过励和欠励时) □〃用阶跃响应使限制器动作时,优化动态响应过程□3.3.4 P/Q限制器〃定义P/Q特性曲线□〃P/Q限制器欠励检查□〃用阶跃响应使限制器动作时,优化动态过程□3.3.5恒功率因数控制器〃检查恒功率因数控制器的稳态和动态性能□〃检查功率因数的限制值□〃用增减按钮检查功率因数的参考值设定□3.3.6恒无功控制器〃检查恒无功控制器的稳态和动态性能□〃检查恒无功控制器的限制值□〃用增减按钮检查无功的参考值设定□3.3.7电力系统稳定器〃PSS参数计算□〃PSS作用检查□注:该试验由相关单位组织,设备供应单位参加。
AVR单片机专用周实习报告题目:数码管一位显示班级:学号:姓名:目录一、实验目的 (2)二、实验要求 (2)三、实验原理 (2)四、实验程序 (5)五、心得体会 (9)一、实验目的通过对例程序的思考与理解,利用实验室所提供的AVR单片机硬件、软件资源,编程实现数码管的一位显示。
观察并分析实验结果,在实验中了解单片机的结构与原理。
二、实验要求利用课上所教例程序的相关原理,设计出数码管一位显示的程序。
观察实验结果,写出实验报告。
三、实验原理3.1、 AVR系列端口介绍AVR系列单片机的IO端口结构比基本51系列单片机的端口要复杂一些,以ATmega16单片机为例,它有4组8位IO端口,分别是PORTA、PORTB、PORTC和PORTD。
通过特殊功能寄存器,我们可以使每个端口实现双向数字IO 通道或双向模拟量通道功能。
ATmega16单片机的大部分端口具有除基本IO功能外的第二功能,关于第二功能的使用这里不作介绍。
下面说明端口的基本IO输入输出和模拟量输入输出的工作过程。
①同步数字输出。
作为输出时,总线给方向寄存器D触发器F9写1,三态门F1打开,总线来的数据经D触发器F10到达输出端Pxn,此时上拉电阻是关断的。
②数字输入。
作为输入时,总线给方向寄存器D触发器F9写0,三态门F1关断,上拉电阻根据需要由PUD选择是否导通,在休眠信号SLEEP无效时,模拟开关M1打开,MOS管T2截止,从Pxn来的输入信号经整形电路F7和同步锁存器进入三态门F4成为同步输入信号。
③模拟量输入输出。
在模拟量输入输出模式下,通过设置使上拉电阻、三态门F1和模拟开关M1都处于关断状态,管脚Pxn直接连通单片机内部相关模拟量输入输出单元,为单片机内部模拟比较器、A/D转换器及D/A转换器等功能单元提供与外围连接的通道。
3.2、数码管(发光二级管)数码管(发光二级管)分为共阳极连接和共阴极连接。
共阳极数码管在判别时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
A VR微控制器应用实践实验一一、实验目的1、了解EVK1100实验板硬件结构和板上资源2、熟悉Atmel studio程序编写和下载流程3、了解A VR32 GPIO的特点、掌握GPIO的常用操作和访问方法二、实验工具1、EVK11002、A VR Dragon3、Atmel Studio 6.1三、实验原理1、EVK1100实验板介绍1.1、实验板简介上图所示的为实验所用的开发套件——EVK1100。
该实验板是全功能的嵌入式系统。
采用ATMEL公司A VR32系列的AT32UC3A0512微控制器。
板上具有丰富的资源和存储器。
具有灵活的电源供电系统,能够接受8-20V的直流电源输入。
实验板的内部结构如下图所示1.2、实验板外设介绍实验板上具有丰富的硬件资源和外设,主要资源如下,各外设具体硬件结构和引脚参考实验板说明和电路结构:∙MCU: 32bits AT32UC3A0512 (QFP144)∙RTC∙LCD∙USB∙Ethernet∙ADC∙即用传感器:o温度传感器o光线传感器o电位器∙按键∙Joystick∙LEDso4个单色LEDo2个双色LED∙Dataflash∙SDRAM∙USARTSo 1 RS232 with flow control and modem controlo 1 RS232 with flow control∙JTAG∙NEXUS∙SDMMC∙SPI∙TWI∙Wrapping area∙Power Supply∙Expansion header2、Atmel Studio和ASF介绍2.1、Atmel Studio简介Atmel Studio是一个集成开发环境(IDE),用于编写和调试A VR/ ARM应用程序。
Atme Studio提供项目管理工具,源文件编辑器,仿真器,汇编器和前端的C / C ++编程和片上调试。
Ateml Studio支持A TMEL公司的A VR工具。
AVR单片机开发基础实验实验一:开发环境使用实验熟悉单片机开发环境。
掌握ICCAVR软件开发环境对应用程序的设计、编译、链接;掌握progisp烧写程序的使用方法,完成执行文件的下载。
1、ICCAVR软件使用步骤:打开ICCAVR开发环境,点击project——new,新建一个项目工程,选择保存路径,输入工程名,单击保存。
选择file——new 新建一个文件,任意输入几个字符后点击左上角蓝色按钮保存文件,注意后缀名为“.c”。
在界面右侧刚刚新建的工程名处单价右键。
选择Add files 添加文件,将.c文件添加到工程中。
编写程序代码,写好后点击project——Options,在对话框中选择单片机的型号,At mega128:M103mode,然后点击Build project 编译程序。
如有错误,软件下方会给出错误提示。
2、progisp下载软件的使用将USBASP下载器连接到电脑的USB接口。
打开progisp软件,在Select chip 下拉菜单中选择单片机型号Atmega128A,其它选项按下图设置:设置完成后,点击界面右上角文件中的调入Flash,选择刚才建立的工程,打开编译后的文件,文件类型为Intel Hex(*.Hex),单击自动,即可将刚才编写的程序下载到单片机中。
实验课二:输入/输出接口实验题目1:指示灯闪烁实验在面包板上安装8个二极管指示灯,通过提供的限流电阻与单片机主板上的某个并行接口(8bit)连接,在开发环境中完成单片机应用程序设计、编译、链接和下载,实现8个指示灯闪烁,闪烁间隔时间为0.5s,按要求搭建电路,LED的正极直接与单片机PA口连接,即高电平点亮,负极通过一个1K的限流电阻接地(单片机的地端引脚)。
按实验一中介绍的操作步骤,使用ICCAVR软件编写程序代码,编写思路如下:(1)由于要求LED亮灭间隔0.5秒,那么就要编写一个延时函数,在点亮和熄灭LED 后都要调用这个延时函数,延时函数中的参数决定了延时的时间。
2013 /2014 学年第一学期课程设计实验报告模块名称A VR单片机课程设计(proteus)专业通信工程学生班级学生学号学生姓名指导教师AVR单片机软件设计(proteus)报告一、总体设计原理、思路;考虑使用数字温度传感器,结合单片机电路设计,采用一只DS18B20温度传感器,直接读取被测温度值,之后进行转换,依次完成设计要求。
二、硬件方面原理图的设计:包括使用的元器件、典型芯片的介绍;原理图的说明等实验原理图a)晶振晶振为单片机提供时钟信号。
单片机XIAL1和XIAL2分别接33PF的电容,中间再并一个晶振,形成单片机的晶振电路。
晶振电路b)复位电路单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
AVR复位时所有的I/O 寄存器都被设置为初始值,程序从复位向量处开始执行。
复位向量处的指令必须是绝对跳转JMP 指令,以使程序跳转到复位处理例程。
AVR的复位信号源有五个:上电复位。
电源电压低于上电复位门限 VPOT 时, MCU 复位。
外部复位。
引脚 RESET 上的低电平持续时间大于最小脉冲宽度时MCU 复位。
看门狗复位。
看门狗使能并且看门狗定时器溢出时复位发生。
掉电检测复位。
掉电检测复位功能使能,且电源电压低于掉电检测复位门限 VBOT 时 MCU 即复位。
JTAG AVR复位。
复位寄存器为1 时MCU 复位。
复位电路ALE引脚悬空,复位引脚接到复位电路、VCC接电源、VSS接地、EA接电源c )温度传感器(DS18B20)电路DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
应用工程学院AVR单片机上机考试实验报告题目:计数时钟设计专业:班级:姓名:学号:指导老师:一、题目要求与实训目的要求:设计一个秒表计时器,要求用四位数码管分别显示分秒毫秒,其中分一位显示;秒二位显示、毫秒一位显示,如显示格式如: 1.23.4 代表:1分 23秒400毫秒。
最大显示时间为9.59.9 即:9分99秒900毫秒。
当显示到此值后,计时从 0分0秒0毫秒从新开始。
功能实现:(1)用Proteus 完成电路图的绘制(2)4位数码管点亮显示功能实现(3)从0分00秒0毫秒正常计时**分**秒**毫秒(4)固定时间正常计时功能实现(5)固定时间倒计时功能实现(6)自由设定时间后正常计时功能实现(7)自由设定时间后倒计时功能实现二、实训中所用到的工具与仪表(1)402教室电脑一台(2)ATMEGA8芯片一块(3)7SEG-MPX4-CC-BUNE数码管一块(4)开关4个(5)电阻4个三、方案设计本次设计是用单片机做为时钟的控制中心(单片机选择ATMEGA8),利用一个秒表计时器显示分秒毫秒,其中分一位显示;秒二位显示、毫秒一位显示,控制时间的自由调整。
四、作品测验制作最终结果有(4)固定时间正常计时功能实现(5)固定时间倒计时功能实现2个功能未能实现只得了80实在是毕生遗憾五、电路原理图六、电路控制程序#include <mega8.h>#include<delay.h>typedef unsigned int uint;typedef unsigned char uchar;uchar fen=0,miao=0; //用于设时的变量寄存uint count; //用于定时器中断函数计数uchar minute,second,decimal; //分、秒、小数位变量定义uchar add_sign=1,install_show_sign=1,add_all=0; //正计数标志、设置显示标志void bufvalue(uchar*); //显示值处理函数声明void display(uchar*,uchar*); //显示函数声明interrupt [EXT_INT0] void ext_int0_isr(void) //TO外部中断{install_show_sign=0; //该标志置0时显示部分显示值的设定情况miao++;if(miao==60){miao=0;fen++;}}interrupt [EXT_INT1] void ext_int1_isr(void){install_show_sign=1; //用于显示计数部分}interrupt [TIM0_OVF] void timer0_ovf_isr(void) //T0溢出中断200us一溢出//Timer 0 overflow interrupt service routine{if(install_show_sign){// Reinitialize Timer 0 valueTCNT0=0x9B;if(add_sign){count++;if(count==50){count=0;decimal++;if(decimal==10){decimal=0;second++;if(minute==fen&&second==miao){if(!add_all){count=100;decimal=10;add_sign=0;}}if(second==59){second=0;minute++;if(minute==10){minute=0;}}}}}else{count--;if(count==0){count=50;decimal--;if(decimal==0){decimal=10;second--;if(second==0){if(minute==0&&second==0){count=0;decimal=0;minute=0;add_sign=1;return;}minute--;second=59;}}}}}}void main(void){uchar discode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; uchar disbuf[4];PORTB=0x00;DDRB=0xFF;PORTC=0x00;DDRC=0xFF;PORTD=0x00;DDRD=0x00;// External Interrupt(s) initialization// INT0: On// INT0 Mode: Low level// INT1: On// INT1 Mode: Low levelGICR|=0xC0;MCUCR=0x00;GIFR=0xC0;// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: 500.000 kHzTCCR0=0x02;TCNT0=0x9B;// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x01;// Global enable interruptsSREG|=0x80;while (1){bufvalue(disbuf);display(discode,disbuf);if(PIND.7==0){fen++;while(!PIND.7);if(fen==60){fen=0;}}if(PIND.6==0){decimal=0;second=miao;minute=fen;add_sign=1;add_all=1;}}}void bufvalue(uchar *disbuf){if(install_show_sign){disbuf[0]=decimal;disbuf[1]=second%10;disbuf[2]=second/10;disbuf[3]=minute; }else{disbuf[0]=miao%10;disbuf[1]=miao/10;disbuf[2]=fen%10;disbuf[3]=fen/10;}}void display(uchar *discode,uchar *disbuf) {uchar i,weixuan=0x01;if(install_show_sign){for(i=0;i<4;i++){if(i==1||i==3) //第二位与第四位加小数点{PORTC=~weixuan;PORTB=discode[disbuf[i]]|0x80;delay_us(200);weixuan<<=1;continue;}PORTC=~weixuan;PORTB=discode[disbuf[i]];delay_us(200);weixuan<<=1;}}else{for(i=0;i<4;i++){ if(i==2) //第三位加小数点{PORTC=~weixuan;PORTB=discode[disbuf[i]]|0x80;delay_us(200);weixuan<<=1;continue;}PORTC=~weixuan;PORTB=discode[disbuf[i]];delay_us(200);weixuan<<=1;}}}七、实训总结每一次实训都给自己增加技术,和对学习成果的展现,实训结束发行自己学习的真是给力程序还是大部分不懂,但也马马虎虎做出来了,努力了就不会后悔,我有努力过,所以不管结果是什么我都有一个好的过程,过程最重要。
AVR单片机汇编语言编程实验学院:自动化专业:测控技术与仪器一、实验名称:AVR单片机汇编语言编程实验二、实验目的:熟悉并掌握AVR单片机指令系统、汇编语言常用伪指令,掌握单片机汇编语言编程技术,编程实现指定功能,加深对计算机汇编指令的理解。
三、实验仪器:计算机,VMware,Windows7虚拟机,AtmelStudio开发环境,Proteus仿真开发环境四、实验内容、实验过程及结果分析:1. Flash 单元赋值创建汇编语言工程,目标机型选为Mega128。
使用汇编语言伪指令进行编程,将下述32 字节的常数数据存入首地址为$0160 的连续flash 存储单元照片中。
数据如下:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x070x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x7;0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf80x80,0x90,0x88,0x83,0xc6,0xa,0x86,0x8e;前后16 字节分别是字符0-F 对应的共阴极和共阳极LED 数码管的字形显示段码。
随后使用IDE 自带的调试工具,进入debug 调试。
在调试过程中,在Flash 存储器映像中查找上述存入的数据块所对应的地址,记录Flash 存储器映像。
图1.1.0如图1所示,数据3f的首地址为$002C0的内存单元中,为$的二倍,因此说明数据成功存入该段存储单元2. DATA RAM 内存块赋值使用汇编语言指令,将上述存储在 Flash 中的 32 个字节单元的数据块依次赋值给起始地址为$0230 的 SRAM 内存块的相应内存单元,流程如图2.1.0 所示。
图2.1.0寄存器初始状态如图2.2.0所示。
将Z指针指向先前第一位数据的首地址,并进行一个次数为16的循环,通过LPM指令将储存在Flash中16字节的数据拷贝至起始地址为$0230的内存单元中,如图2.2.1所示,数据存储状态如2.2.3 所示。
青岛科技大学2012/2013 学年第二学期课程设计实验报告模块名称A VR单片机课程设计专业电气工程自动化学生班级电气121学生姓名于呈宾学生学号1218020130学生姓名巩志成学生学号1218020114指导教师王泽华A VR单片机课程设计报告一.课程设计目的1、设计要求本课程着重于把理论学习的知识应用于实际,解决实际的工程问题,培养学生的系统设计能力,提高学生的科研动手能力。
本次设计要求深入了解A VR单片机ATmega8a的功能,通过研究开发板的硬件设计,进行相关的硬件连接,选择合适的编程及程序植入方法,用开发板完成列出的各设计课题;初步学习撰写规范的设计文档;提交实验报告。
二.课程设计内容1、基本要求:1、正确连接数LM35测温传感器,LCD JHD 162A液晶显示器或通过串口将数据传递至PC。
2、设定温度告警门限。
3、通过蜂鸣器、发光二极管进行告警显示。
三.课程设计过程(一)、本实验可以分为三个部分来考虑:1、LM35测温传感器采集温度显示在LED上。
2、设定温度告警门限。
通过蜂鸣器、发光二极管进行告警显示。
3、添加按键控制温度警告门限和各功能汇总。
(二)硬件介绍1、ATmega8ATmega8主要特点:具有8K程序和数据存储器(flash)1KB内存(SRAM)512B电擦除可编程只读存储器(EEPROM)23个可编程的I/O接口3路定时器/计数器3通道PWM输出8路10位ADCTWI两线接口USART通用异步串行口SPI串行外设接口ISP程序下载接口ISP接口:在线可编程(in-system programming)接口,占用四条引脚,分别是:RESET,SCK,MOSI,MISOI/O引脚:有B,C和D口,C,D为8位,B为6位。
2、LM35是由National Semiconductor 所生产的温度传感器,其输出电压与摄氏温标呈线性关系,转换关系为:0 时输出为0V,每升高1℃,输出电压增加10mV。
通达学院2014 /2015 学年第一学期课程设计实验报告模块名称A VR单片机课程设计(proteus)专业通信工程学生班级学生学号学生姓名指导教师李虹戴海鸿杨洁王明伟AVR单片机软件设计(proteus)报告基本内容包括:1)总体设计原理、思路;根据题目的要求,我们需要事先得到3种波形的信号源,并将其在程序存储器中,然后取出程序存储器里的信号源存放在atmega128的外部RAM中,并通过DAC0832输出到示波器上显示图形。
采用按键方式控制输出波形,并且通过DS18B20上的温度来控制信号的频率,温度在1~10时显示2Hz,温度为11~20时显示4Hz,温度为21~30时为8Hz,温度为31~40时为15Hz,温度大于40时为19Hz。
最后在LM016L上显示出输出的波形名称和温度以及频率。
2)硬件方面原理图的设计:包括使用的元器件、典型芯片的介绍;原理图的说明等1、ATmega128ATmega128为基于AVR RISC结构的8位低功耗CMOS微处理器。
由于其先进的指令集以及单周期指令执行时间,ATmega128 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
2、DS18B20DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的,也就是你要做的是配置寄存器。
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
3、DAC0832DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
DAC0832是8分辨率的D/A 转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。
3)软件方面程序流程图的设计、关键代码的说明关键代码:#include <iom128v.h>#include<macros.h> //包含_nop_()函数定义的头文件 #include "DS18B20.h" //DS18B20驱动程序软件包 #include "delay.h" //包含_nop_()函数定义的头文件#define uchar unsigned char#define uint unsigned int#define key1 PINB&(1<<PB0)//读取PB0引脚#define key2 PINB&(1<<PB1)//读取PB1引脚#define key3 PINB&(1<<PB2)//读取PB2引脚#define key4 PINB&(1<<PB3)//读取PB3引脚#define key5 PINB&(1<<PB4)//读取PB4引脚#define key6 PINB&(1<<PB5)//读取PB5引脚#define key7 PINB&(1<<PB6)//读取PB6引脚#define key8 PINB&(1<<PB7)//读取PB7引脚uchar const table_sjb[256] = //三角波{0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0xFF,0xFE,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,0xF5,0xF4,0xF3,0xF2,0xF1,0xF0,0xEF,0xEE,0xED,0xEC,0xEB,0xEA,0xE9,0xE8,0xE7,0xE6,0xE5,0xE4,0xE3,0xE2,0xE1,0xE0,0xDF,0xDE,0xDD,0xDC,0xDB,0xDA,0xD9,0xD8, 0xD7,0xD6,0xD5,0xD4,0xD3,0xD2,0xD1,0xD0,0xCF,0xCE,0xCD,0xCC,0xCB,0xCA,0xC9,0xC8,0xC7,0xC6,0xC5,0xC4,0xC3,0xC2,0xC1,0xC0,0xBF,0xBE,0xBD,0xBC,0xBB,0xBA,0xB9,0xB8,0xB7,0xB6,0xB5,0xB4,0xB3,0xB2,0xB1,0xB0,0xAF,0xAE,0xAD,0xAC,0xAB,0xAA,0xA9,0xA8, 0xA7,0xA6,0xA5,0xA4,0xA3,0xA2,0xA1,0xA0,0x9F,0x9E,0x9D,0x9C,0x9B,0x9A,0x99,0x98,0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90, 0x8F,0x8E,0x8D,0x8C,0x8B,0x8A,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80};uchar const table_zxb[256] = //正弦表{0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xAE, 0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0xD8,0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDE,0xDD,0xDA,0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0xB1,0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x80,0x80,0x7C,0x79,0x78,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x55,0x51,0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x27,0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, 0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x25,0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x4E,0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x72,0x76,0x79,0x7C,0x80};uchar const table_fb[256] = //方波 {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01 };uint t1_cnt;uchar flag=1;uchar pinlv_flag;//频率标志uchar dis_flag=1;uint cnt;/********************************************************************** *********以下是对液晶模块的操作程序*********************************************************************** ********/#define RS_0 PORTC&=~(1<<PC0)#define RS_1 PORTC|=(1<<PC0)#define RW_0 PORTC&=~(1<<PC1)#define RW_1 PORTC|=(1<<PC1)#define E_0 PORTC&=~(1<<PC2)#define E_1 PORTC|=(1<<PC2)/*****************************************************函数功能:延时若干微秒入口参数:n***************************************************/void delaynus(unsigned int n){if (n == 0)return ;while (--n);}/*****************************************************函数功能:延时1ms***************************************************/void delay1ms(void){unsigned int i;for(i=0;i<114;i++);}void delaynms(unsigned int n) //N ms延时函数{unsigned int i=0;for (i=0;i<n;i++)delay1ms();}/*****************************************************函数功能:延时若干毫秒入口参数:n***************************************************/void delay(uint xms){int i,j;for(i=0;i<xms;i++){ for(j=0;j<114;j++) ; }}/*****************************************************函数功能:判断液晶模块的忙碌状态返回值:result。