后去再见
430单片机的**描 述: 利用但总线DS18B20测温程序,并在LCD显示,取三位有效小数位。整数部分两位。共5位显示****------------------------------------------------------------------------------------------------------********************************************************************************************************/#include #define SEGE 0X80#define SEGH 0X40#define SEGF 0X20#define SEGC 0X10#define SEGG 0X08#define SEGD 0X04#define SEGB 0X02#define SEGA 0X01const unsigned char digit[10] = { SEGA|SEGB|SEGC|SEGD|SEGE|SEGF, /* "0" LCD segments a+b+c+d+e+f */ 0x12, /* "1" */ 0x8F, /* "2" */ 0x1F, /* "3" */ 0x3A, /* "4" */ 0x3D, /* "5" */ 0xBD, /* "6" */ 0x13, /* "7" */ 0xBF, /* "8" */ 0x3F /* "9" */};#define DQ1 P4OUT|=BIT4#define DQ0 P4OUT&=~BIT4float Temper=0;int temperature=0;unsigned char Error = 0;//----------------------------------//功能:us 级别延时// n=10,则延时10*5+6=56uS//----------------------------------void DelayNus(unsigned int n){ while(n--){};}//-----------------------------------//功能:写18B20//-----------------------------------void Write_18B20(unsigned char n){ unsigned char i; for(i=0;i<8;i++) { DQ0; DelayNus(1);//延时13us 左右 if((n&0X01)==0X01) DQ1; else DQ0; n=n>>1; DelayNus(9);//延时50us 以上 DQ1; }}//------------------------------------//功能:读取18B20//------------------------------------unsigned char Read_18B20(void){ unsigned char i; unsigned char temp; for(i=0;i<8;i++) { temp=temp>>1; DQ0; _NOP();//延时1us DQ1; _NOP();_NOP();//延时5us _NOP();_NOP();_NOP(); P4DIR&=~BIT4; if((P4IN&BIT4)==0) { temp=temp&0x7F; }else { temp=temp|0x80; } DelayNus(7);//延时40us P4DIR|=BIT4; DQ1; } return temp;}//-----------------------------------void Init (void){ DQ0; DelayNus(50);//延时500us DQ1; DelayNus(17);//延时90us P4DIR&=~BIT4; if((P4IN&BIT4)==BIT4) //0001 1111b=1f { Error =1; //失败1 P4DIR|=BIT4; }else { Error = 0;//初始化成功 P4DIR|=BIT4; DQ1; }}//----------------------------------void Skip(void){ Write_18B20(0xcc);}//----------------------------------void Convert (void){ Write_18B20(0x44);}//----------------------------------void ReadDo (void){ Write_18B20(0xbe);}//----------------------------------void ReadTemp (void){ char temp_low,temp_high; //温度值 temp_low=Read_18B20(); //读低位 temp_high=Read_18B20(); //读高位 temperature=(temp_high&0x0f); temperature<<=8; temperature|=temp_low; Temper=temperature*0625;}void GetTemp(void){ Init(); Skip(); Convert(); DelayNus(60000); DelayNus(60000); DelayNus(60000);//延时1s以上 Init(); Skip(); ReadDo(); ReadTemp();}void InitLcd(void){ LCDCTL = LCDON + LCD4MUX + LCDSG0_1; // LCD on, 4-Mux, segments S0-S15 BTCTL = BT_fLCD_DIV128; // LCD clock freq is ACLK/128 P5SEL = 0xFC; // Select P2-7 as Com and Rxx}void display_number(unsigned long value, int start, int width){ int i; for (i = 0; i < width; i++) { LCDMEM[7 + i - start] = digit[value%10]; // remainder = character in table to display value /= 10; }}void Lcd_Clr(void){ volatile unsigned char i; for (i=0; i<7; i++) { LCDMEM = 0; }}void main(void){ WDTCTL = WDTPW + WDTHOLD; // 停狗 P4DIR |=BIT4; DQ1; InitLcd(); Lcd_Clr(); while(1) { GetTemp(); display_number((unsigned long int)(Temper*1000),7,5); LCDMEM[3] |= SEGH; }} 
会做,但建议你还是自己做。显示屏属于技术含量比较低的东西。
爱莫能助,帮你顶下吧,别让帖子沉下去了,希望高手能够帮到你
文献综述是对某一方面的专题搜集大量情报资料后经综合分析而写成的一种学术论文, 它是科学文献的一种。 格式与写法 文献综述的格式与一般研究性论文的格式有所不同。这是因为研究性的论文注重研究的方法和结果,特别是阳性结果,而文献综述要求向读者介绍与主题有关的详细资料、动态、进展、展望以及对以上方面的评述。因此文献综述的格式相对多样,但总的来说,一般都包含以下四部分:即前言、主题、总结和参考文献。撰写文献综述时可按这四部分拟写提纲,在根据提纲进行撰写工。 前言部分,主要是说明写作的目的,介绍有关的概念及定义以及综述的范围,扼要说明有关主题的现状或争论焦点,使读者对全文要叙述的问题有一个初步的轮廓。 主题部分,是综述的主体,其写法多样,没有固定的格式。可按年代顺序综述,也可按不同的问题进行综述,还可按不同的观点进行比较综述,不管用那一种格式综述,都要将所搜集到的文献资料归纳、整理及分析比较,阐明有关主题的历史背景、现状和发展方向,以及对这些问题的评述,主题部分应特别注意代表性强、具有科学性和创造性的文献引用和评述。 总结部分,与研究性论文的小结有些类似,将全文主题进行扼要总结,对所综述的主题有研究的作者,最好能提出自己的见解。 参考文献虽然放在文末,但却是文献综述的重要组成部分。因为它不仅表示对被引用文献作者的尊重及引用文献的依据,而且为读者深入探讨有关问题提供了文献查找线索。因此,应认真对待。参考文献的编排应条目清楚,查找方便,内容准确无误。关于参考文献的使用方法,录著项目及格式与研究论文相同,不再重复。
你去买一本北航的《PIC16系列C程序设计与PROTEUS仿真》,里面有1602/4,12864液晶的线路驱动和程序。
白光LED驱动电路设计发布时间:(2008年11月21日)常用驱动电路介绍 高效的白光LED驱动电路设计自从蜂窝电话和便携式游戏机采用彩色液晶显示屏后,市场上就出现了对高亮度纯色背景光源的大量需求,白光二极管被认为是目前市场上可以获得的最好的背景光源。本文介绍XC9103和XC6367两个系列常用白光LED驱动IC的特点和驱动电路的设计。 图一 为常用的串联LED驱动电路原理图,图中驱动IC为XC9103系列DC转换器,该电路具有以下特点: 可以将白光LED串联使用,不论连接的LED数量有多少,只需一个电阻就可以向它们提供恒定电流; 减少了元器件数量,进一步降低了电路的整体功耗; 各个白光LED正向电压的不同不会影响白光LED的工作电流; 用一个电阻就可以调整白光LED的工作电流; 几乎不做任何其它的改动,就可以随意改变白光LED的连接数量; 利用陶瓷电容可以获得低的纹波噪声,并延长电路使用寿命; 可以大大节省电路空间:XC9105和FET+SD都采用SOT23封装,线圈的最大厚度只有2毫米,输入和输出电容均采用陶瓷电容。 当采用XC9103系列器件时,可以采用陶瓷电容作为CL电容来抑制有害的信号辐射。 图中的升压DC/DC转换器用于输出驱动LED的恒定驱动电流,LED驱动电流值等于FB控制电压除以所连电阻的阻值。XC9103的FB控制电压为9V,XC6367的FB控制电压为0V。因此通过改变电阻值,可以将LED驱动电流调整到所需的数值。DC/DC转换器的输出电压等于LED的正向电压加上FB终端电压,如果LED数量大于1时,输出电压为FB终端电压加单个LED的正向电压与LED的数量的乘积。 图中LED的驱动电流可以通过下式计算: ILED=VFB /RFB2 上式中ILED为LED驱动电流,VFB为FB引脚控制电压。XC9103的FB控制电压为9V,SC6367的FB控制电压为0V。图中的RFB2电阻值为47欧姆,因此LED的驱动电流为19mA。效率为LED上的电压降与驱动电流的乘积相对于输入电压与输入电流乘积的百分比: VLED×ILED/(VIN×IIN)×100% 其中VLED为LED上的电压降。 当采用XC6367系列器件时不需要RSEN电阻,采用221μF 的钽电容作为输出电容CL。 驱动电路设置 高效的白光LED驱动电路设计自从蜂窝电话和便携式游戏机采用彩色液晶显示屏后,市场上就出现了对高亮度纯色背景光源的大量需求,白光二极管被认为是目前市场上可以获得的最好的背景光源。本文介绍XC9103和XC6367两个系列常用白光LED驱动IC的特点和驱动电路的设计。 高效的白光LED驱动电路设计自从蜂窝电话和便携式游戏机采用彩色液晶显示屏后,市场上就出现了对高亮度纯色背景光源的大量需求,白光二极管被认为是目前市场上可以获得的最好的背景光源。本文介绍XC9103和XC6367两个系列常用白光LED驱动IC的特点和驱动电路的设计。 图二 所列出的外部器件额定值是在VIN=0V时只允许连接4个白光LED。如果要点亮5个或5个以上的白光LED,则必须提高VIN电压,或选择额定电流值更高的电感线圈或场效应管,并且所选器件的直流电阻要更小。 当LED前端电压Vf=5V时,在白光LED数量不多于两个的条件下,VDD和VCE可以从VOUT得到,此时可以去掉电容CDD;当白光LED数量在3个或3个以上时,由于VOUT会超过10V,因此VDD只能从VIN获得。 驱动电路的效率计算公式为:效率(EFFI%)=白光LED上的电压×白光LED上的电流×100/输入电压×输入电流。LED连接方式的不同,电路的效率也会有很大的差异。表1为LED串联和并联的效率值比较,可以发现LED数量增多,电路的效率就越高,相同LED数量条件下,串联的效率远高于并联的效率。 如上所述,在输出端需要把白光LED与电阻串联起来使用。如果使用4个以上的白光LED,需要选用额定电流值较高的线圈。