共軛梯度法為求解線性方程組而提出。后來(lái),人們把這種方法用于求解無(wú)約束最優(yōu)化問(wèn)題, 使之成為一種重要的最優(yōu)化方法。 共軛梯度法的基本思想是把共軛性與最速下降方法相結(jié)合, 利用已知點(diǎn)處的梯度構(gòu)造一組共 軛方向, 并沿這組方向進(jìn)行搜索, 求出目標(biāo)函數(shù)的極小點(diǎn)。 根據(jù)共軛方向的基本性質(zhì), 這種 方法具有二次終止性。 在各種優(yōu)化算法中, 共軛梯度法是非常重要的一種。 其優(yōu)點(diǎn)是所需存 儲(chǔ)量小,具有步收斂性,穩(wěn)定性高,而且不需要任何外來(lái)參數(shù)。 共軛方向 無(wú)約束最優(yōu)化方法的核心問(wèn)題是選擇搜索方向 . 在本次實(shí)驗(yàn)中 , 我們運(yùn)用基于共軛方向的一種 算法 — 共軛梯度法 三.算法流程圖: 四.實(shí)驗(yàn)結(jié)果: (1). 實(shí)驗(yàn)函數(shù) f=(3*x1-cos(x2*x3)-1/2)^2+(x1^2-81*(x2+0.1)+sin(x3)+1.06)^2+(exp(-x1*x2)+20*x3+ 1/3*(10*3.14159-3))^2; 給定初始點(diǎn) (0,0,0) , k=1 ,最 大迭代次數(shù) n ? ? d 確定搜索方向 進(jìn) 退 法 確 定 搜 索 區(qū) 間 分割法確定最 優(yōu)步長(zhǎng)
上傳時(shí)間: 2016-05-08
上傳用戶:saren11
#include "STC90.h" #include < intrins.h > #define uchar unsigned char #define uint unsigned int #define led_port P1 sbit IR_RE = P3^2; sbit led_r = P1^3; sbit led_g = P1^4; sbit led_b = P1^5; sbit led_wd = P1^7; sbit K1 =P3^0 ; //增加鍵 sbit K2 =P3^1 ; //減少鍵 sbit BEEP =P3^7 ; //蜂鳴器 uchar temp,temp1; bit k=0; //紅外解碼判斷標(biāo)志位,為0則為有效信號(hào),為1則為無(wú)效 bit Flag2; uchar date[4]={0,0,0,0}; //date數(shù)組為存放地址原碼,反碼,數(shù)據(jù)原碼,反碼 uint lade_1,lade_2,lade_3,lade_4; uint num; uchar date_ram,ee_temp,ee_temp1; uchar WDT_NUM=0; uchar const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 顯示段碼值01234567 uchar code seg[]={7,6,5,4,3,2,1,0};//分別對(duì)應(yīng)相應(yīng)的數(shù)碼管點(diǎn)亮,即位碼 unsigned long disp_date; void fade(); void fade1(); /*************************** 看門狗子程序*************************/ void watchdog_timer() { if(WDT_NUM==5) { WDT_NUM=0; led_wd=!led_wd; } WDT_NUM++; WDT_CONTR=0x3f; } /******************************************************************/ void delay(unsigned int cnt) { while(--cnt); } /*--------------------------延時(shí)1ms程子程序-----------------------*/ void delay_1ms(uint z) { uint x,y; for(x=z;x>0;x--) for(y=126;y>0;y--); } /*--------------------------延時(shí)1ms程子程序-----------------------*/ delay1000() { uchar i,j; i=5; do{j=95; do{j--;} while(j); i--; } while(i); } /*---------------------------延時(shí)882us子程序-----------------------*/ delay882() { uchar i,j; i=6; do{j=71; do{j--;} while(j); i--; }while(i); } /*--------------------------延時(shí)2400us程子程序-----------------------*/ delay2400() { uchar i,j; i=5; do{j=237; do{j--;} while(j); i--; }while(i); } /**********************************************************************/ /* void display() { uchar i; for(i=0;i<8;i++) { P0=dofly[disp_date%10];//取顯示數(shù)據(jù),段碼 P2=seg[i]; //取位碼 delay_1ms(1); disp_date/=10; } } */ /*********************************************************************/ uchar EEPROM_read(uint addr)//EEPROM字節(jié)讀 { ISP_CONTR=0x83; //系統(tǒng)時(shí)鐘<12M時(shí),對(duì)ISP_CONTR寄存器設(shè)置的值,本電路為11.0592M ISP_CMD=1; //字節(jié)讀 ISP_ADDRH=(addr&0xff00)>>8; ISP_ADDRL=addr&0x00ff; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); _nop_(); return ISP_DATA; } //-------------------------------------------------------------------- void EEPROM_write(uint addr,uchar dat)//EEPROM字節(jié)寫 { ISP_CONTR=0x83; //系統(tǒng)時(shí)鐘<12M時(shí),對(duì)ISP_CONTR寄存器設(shè)置的值,本電路為11.0592M ISP_CMD=2; //字節(jié)編程 ISP_ADDRH=(addr&0xff00)>>8; ISP_ADDRL=addr&0x00ff; ISP_DATA=dat; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); _nop_(); } //-------------------------------------------------------------------- void EEPROM_ERASE(uint addr)//EEPROM扇區(qū)擦除 { ISP_CONTR=0x83; //系統(tǒng)時(shí)鐘<12M時(shí),對(duì)ISP_CONTR寄存器設(shè)置的值,本電路為11.0592M ISP_CMD=3; //扇區(qū)擦除 ISP_ADDRH=(addr&0xff00)>>8; ISP_ADDRL=addr&0x00ff; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); _nop_(); } //************************************************************** /*----------------------------------------------------------*/ /*-----------------------紅外解碼程序(核心)-----------------*/ /*----------------------------------------------------------*/ void IR_decode() { uchar i,j; while(IR_RE==0); delay2400(); if(IR_RE==1) //延時(shí)2.4ms后如果是高電平則是新碼 { delay1000(); delay1000(); for(i=0;i<4;i++) { for(j=0;j<8;j++) { while(IR_RE==0); //等待地址碼第1位高電平到來(lái) delay882(); //延時(shí)882us判斷此時(shí)引腳電平 ///CY=IR_RE; if(IR_RE==0) { date[i]>>=1; date[i]=date[i]|0x00; } else if(IR_RE==1) { delay1000(); date[i]>>=1; date[i]=date[i]|0x80; } } //1位數(shù)據(jù)接收結(jié)束 } //32位二進(jìn)制碼接收結(jié)束 } } /* void LED_PWM() { lade_2=num; //384 lade_4=num; //384 while(lade_2!=0&Flag2==1) { for(lade_3=512;lade_3>lade_4;lade_3--) //512 { led_port=0x00; delay(1); } lade_3=512; //512 lade_4--; for(lade_1=0;lade_1<lade_2;lade_1++) { led_port=0x38; //c7 delay(1); } lade_1=0; lade_2--; if(temp!=0x0c&Flag2==1) { lade_2=0; } lade_2=num; //384 lade_4=num; //384 } } */ void calc() { EEPROM_read(0x2000); ee_temp1=ISP_DATA; ee_temp=ee_temp1&0x0f; //************************************* 1 /* if(date[3]==0xff&Flag2==1) { if(num>=20) { num=num-80; } //else num=1; LED_PWM(); } if(date[3]==0xfe&Flag2==1) { if(num<=500) { num=num+80; } // else num=511; LED_PWM(); } if(ee_temp1==0xfd) { led_port=0x00; watchdog_timer(); } if(ee_temp1==0xfc) { led_port=0x00; led_r=1; led_g=1; led_b=1; watchdog_timer(); } */ //********************************************** 2 if(ee_temp1==0xfb) { led_port=0x00; led_r=1; watchdog_timer(); } if(ee_temp1==0xfa) { led_port=0x00; led_g=1; watchdog_timer(); } if(ee_temp1==0xf9) { led_port=0x00; led_b=1; watchdog_timer(); } if(ee_temp1==0xf8) { led_port=0x00; led_r=1; led_g=1; led_b=1; watchdog_timer(); } //************************************** 3 if(ee_temp1==0xf7) { uint fade_1,fade_2,fade_3,fade_4; fade_2=448; //384 fade_4=448; //384 while(fade_2!=0&ee_temp==0x07) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x10; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x07) { fade_2=0; } watchdog_timer(); fade_2=448; //384 fade_4=448; //384 } } if(ee_temp1==0xf6) { uint fade_1,fade_2,fade_3,fade_4; fade_2=448; //384 fade_4=448; //384 while(fade_2!=0&ee_temp==0x06) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x20; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x06) { fade_2=0; } watchdog_timer(); fade_2=448; //384 fade_4=448; //384 } } if(ee_temp1==0xf5) { uint fade_1,fade_2,fade_3,fade_4; fade_2=448; //384 fade_4=448; //384 while(fade_2!=0&ee_temp==0x05) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x08; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x05) { fade_2=0; } watchdog_timer(); fade_2=448; //384 fade_4=448; //384 } } if(ee_temp1==0xf4) { while(ee_temp==4) { led_port=0x00; led_r=1; delay_1ms(200); led_port=0x00; led_r=1; led_g=1; delay_1ms(200); led_port=0x00; led_g=1; delay_1ms(200); watchdog_timer(); led_port=0x00; led_g=1; led_b=1; delay_1ms(200); led_port=0x00; led_b=1; delay_1ms(200); led_port=0x00; led_b=1; led_r=1; delay_1ms(200); watchdog_timer(); } } //************************************** 4 if(ee_temp1==0xf3) { uint fade_1,fade_2,fade_3,fade_4; fade_2=416; //384 fade_4=416; //384 while(fade_2!=0&ee_temp==0x03) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x10; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x03) { fade_2=0; } watchdog_timer(); fade_2=416; //384 fade_4=416; //384 } } if(ee_temp1==0xf2) { uint fade_1,fade_2,fade_3,fade_4; fade_2=384; //384 fade_4=384; //384 while(fade_2!=0&ee_temp==0x02) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x20; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x02) { fade_2=0; } watchdog_timer(); fade_2=384; //384 fade_4=384; //384 } } if(ee_temp1==0xf1) { uint fade_1,fade_2,fade_3,fade_4; fade_2=348; //384 fade_4=348; //384 while(fade_2!=0&ee_temp==0x01) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x08; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x01) { fade_2=0; } watchdog_timer(); fade_2=348; //384 fade_4=348; //384 } } if(ee_temp1==0xf0) { while(ee_temp==0) { led_port=0x00; led_r=1; delay_1ms(500); watchdog_timer(); led_port=0x00; led_g=1; delay_1ms(500); led_port=0x00; led_b=1; delay_1ms(500); watchdog_timer(); } } //******************************************** 5 if(ee_temp1==0xef) { uint fade_1,fade_2,fade_3,fade_4; fade_2=384; //384 fade_4=384; //384 while(fade_2!=0&ee_temp==0x0f) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x10; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0f) { fade_2=0; } watchdog_timer(); fade_2=384; //384 fade_4=384; //384 } } if(ee_temp1==0xee) { uint fade_1,fade_2,fade_3,fade_4; fade_2=320; //384 fade_4=320; //384 while(fade_2!=0&ee_temp==0x0e) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x20; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0e) { fade_2=0; } watchdog_timer(); fade_2=320; //384 fade_4=320; //384 } } if(ee_temp1==0xed) { uint fade_1,fade_2,fade_3,fade_4; fade_2=320; //384 fade_4=320; //384 while(fade_2!=0&ee_temp==0x0d) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x08; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0d) { fade_2=0; } watchdog_timer(); fade_2=320; //384 fade_4=320; //384 } } if(ee_temp1==0xec) fade(); //******************************************* 6 if(ee_temp1==0xeb) { led_port=0x00; led_r=1; led_g=1; watchdog_timer(); } if(ee_temp1==0xea) { led_port=0x00; //led_r=0; led_g=1; led_b=1; watchdog_timer(); } if(ee_temp1==0xe9) { led_port=0x00; led_r=1; //led_g=0; led_b=1; watchdog_timer(); } if(ee_temp1==0xe8) fade1(); } void fade() { // uchar i; uint fade_1,fade_2,fade_3,fade_4; fade_2=512; fade_4=511; while(fade_2!=0&ee_temp==0x0c) { for(fade_3=512;fade_3>fade_4;fade_3--) { led_port=0x10; delay(1); } fade_3=512; fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0c) { fade_2=0; } } watchdog_timer(); fade_2=512; fade_4=511; while(fade_2!=0&ee_temp==0x0c) { if(ee_temp!=0x0c) { fade_2=0; } for(fade_3=512;fade_3>fade_4;fade_3--) { led_port=0x20; delay(1); // watchdog_timer(); } fade_3=512; fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); // watchdog_timer(); } fade_1=0; fade_2--; } watchdog_timer(); fade_2=512; fade_4=511; while(fade_2!=0&ee_temp==0x0c) { if(ee_temp!=0x0c) { fade_2=0; } for(fade_3=512;fade_3>fade_4;fade_3--) { led_port=0x08; delay(1); watchdog_timer(); } fade_3=512; fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); watchdog_timer(); } fade_1=0; fade_2--; } watchdog_timer(); } void fade1() { // uchar i; uint fade_1,fade_2,fade_3,fade_4; fade_2=128; fade_4=127; while(fade_2!=0&ee_temp==0x08) { for(fade_3=128;fade_3>fade_4;fade_3--) { led_port=0x10; delay(1); } fade_3=128; fade_4--; for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x08) { fade_2=0; } } watchdog_timer(); fade_2=128; fade_4=127; while(fade_2!=0&ee_temp==0x08) { if(ee_temp!=0x08) { fade_2=0; } for(fade_3=128;fade_3>fade_4;fade_3--) { led_port=0x20; delay(1); } fade_3=128; fade_4--; for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; } watchdog_timer(); fade_2=128; fade_4=127; while(fade_2!=0&ee_temp==0x08) { if(ee_temp!=0x08) { fade_2=0; } for(fade_3=128;fade_3>fade_4;fade_3--) { led_port=0x08; delay(1); } fade_3=128; fade_4--; for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; } watchdog_timer(); } void init() { led_port=0x00; /* led_r=1; delay_1ms(500); led_port=0x00; led_g=1; delay_1ms(500); led_port=0x00; led_b=1; delay_1ms(500); led_port=0x00; */ delay_1ms(2); WDT_CONTR=0x3f; delay_1ms(500); } //******************************** void main() { init(); Flag2=0; SP=0x60; //堆棧指針 EX0=1; //允許外部中斷0,用于檢測(cè)紅外遙控器按鍵 EA=1; num=255; while(1) { calc(); } } //******************************************************************** /*------------------------外部中斷0程序-------------------------*/ /*------------------主要用于處理紅外遙控鍵值--------------------*/ void int0() interrupt 0 { uchar i; Flag2=0; /////// k=0; EX0=0; //檢測(cè)到有效信號(hào)關(guān)中斷,防止干擾 for(i=0;i<4;i++) { delay1000(); if(IR_RE==1){k=1;} //剛開(kāi)始為9ms的引導(dǎo)碼. } led_port=0x00; if(k==0) { IR_decode(); //如果接收到的是有效信號(hào),則調(diào)用解碼程序 if(date[3]>=0xe8) { if(date[3]<=0xfb) { temp1=date[3]; EEPROM_ERASE(0x2000); //STC_EEROM_0X2000 temp1 EEPROM_write(0x2000,temp1); EEPROM_read(0x2000); ee_temp1=ISP_DATA; ee_temp=ee_temp1&0x0f; /* temp=date[3]&0x0f; EEPROM_ERASE(0x2004); //STC_EEROM_0X2004 temp EEPROM_write(0x2004,temp); */ } else { EEPROM_read(0x2000); ee_temp1=ISP_DATA; ee_temp=ee_temp1&0x0f; } } delay2400(); delay2400(); delay2400(); delay_1ms(500); } EX0=1; //開(kāi)外部中斷,允許新的遙控按鍵 }
上傳時(shí)間: 2016-07-02
上傳用戶:184890962
/*#include<reg52.h> #define uint unsigned int #define uchar unsigned char #define uchar unsigned char sbit K1=P3^4; sbit K2=P3^5; sbit ledr=P1^0; sbit ledg=P1^1; sbit ledb=P1^2; bit LEDDirection=0;//LED控制方向0:漸亮1:漸滅 char pwm=0; char pwmr=0; char scw=0;//中斷記數(shù) char tt=0; char n; void dealy(uint z); void Timer0Init(void) { TMOD=0x01; TH0=0xff; TL0=0x47; EX0=1; IT0=0; PX0=1; ET0=1; TR0=1; EA=1; } void main() { Timer0Init(); while(1){ if(K1==0) { dealy (1); if(K1==0) {TR0=1; ledr=0; dealy(5); TR0=0; } } if(K2==0) { dealy (1); if(K2==0) { while(1) { ledr=0; //亮 dealy(100-n*10); ledr=1; //熄 dealy(n*10); } } } } } void Time0Isr(void) interrupt 1 { // pwm=0; TH0=0xff; TL0=0x47; scw++; }*/ #include<reg52.h> #define uchar unsigned char bit LEDDirection=0; sbit P2_0=P1^0; sbit key1=P3^4; sbit key2=P3^5; sbit key3=P3^6; uchar zkb,i,t;// zkb指占空比 uchar pwm; void delay(uchar z) { uchar x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void init() //初始化函數(shù) { TMOD=0X01; TH0=(65536-1000)/256; TL0=(65536-1000)%256; EA=1; ET0=1; TR0=1; } void keyscan() //鍵盤掃描 { P3=0XFF; if(key1==0) { delay(5); if(key1==0) { while(!key1); if(zkb<9) { zkb++; } } } if(key2==0) { delay(5); if(key2==0) { while(!key2); if(zkb>0) { zkb--; } } } if(key3==0) {TR0=1; delay(5); if(key3==0) {while(!key3); if((zkb<=9)&&(0==LEDDirection)) { zkb++; if(zkb>9) { LEDDirection=1; zkb=9; } } if((zkb>=0 )&&(1==LEDDirection)) { zkb--; if(zkb<0 ) { LEDDirection=0; zkb=0 ; //dealy(3000); } } } //pwm=pwmr; } } void main() //主函數(shù) { zkb=2; init(); while(1) { keyscan(); } } void time0(void) interrupt 1 //中斷函數(shù) { TH0=(65536-200)/256; TL0=(65536-200)%256; ++i; if(i>10) { i=0; }; if(i<=zkb) { P2_0=1; } else P2_0=0; } /*void time0(void) interrupt 0 //中斷函數(shù) { TH0=(65536-1000)/256; TL0=(65536-1000)%256; ++i; if(i>10) { i=0; }; if(i<=zkb) { P2_0=1; } else P2_0=0; }*/
標(biāo)簽: 調(diào)光
上傳時(shí)間: 2016-07-02
上傳用戶:184890962
#include <stdio.h> #include <stdlib.h> #define SMAX 100 typedef struct SPNode { int i,j,v; }SPNode; struct sparmatrix { int rows,cols,terms; SPNode data [SMAX]; }; sparmatrix CreateSparmatrix() { sparmatrix A; printf("\n\t\t請(qǐng)輸入稀疏矩陣的行數(shù),列數(shù)和非零元素個(gè)數(shù)(用逗號(hào)隔開(kāi)):"); scanf("%d,%d,%d",&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t輸入非零元素值(格式:行號(hào),列號(hào),值):"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i-1==x)&&(A.data[n].j-1==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void sumsparmatrix(sparmatrix A) { SPNode *p; p=(SPNode*)malloc(sizeof(SPNode)); p->v=0; int k; k=0; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { for(int n=0;n<=A.terms;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y)) { p->v=p->v+A.data[n].v; k=1; } } } printf("\n\t\t"); } if(k==1) printf("\n\t\t對(duì)角線元素的和::%d\n",p->v); else printf("\n\t\t對(duì)角線元素的和為::0"); } int main() { int ch=1,choice; struct sparmatrix A; A.terms=0; while(ch) { printf("\n"); printf("\n\t\t 稀疏矩陣的三元組系統(tǒng) "); printf("\n\t\t*********************************"); printf("\n\t\t 1------------創(chuàng)建 "); printf("\n\t\t 2------------顯示 "); printf("\n\t\t 3------------求對(duì)角線元素和"); printf("\n\t\t 4------------返回 "); printf("\n\t\t*********************************"); printf("\n\t\t請(qǐng)選擇菜單號(hào)(0-3):"); scanf("%d",&choice); switch(choice) { case 1: A=CreateSparmatrix(); break; case 2: ShowSparmatrix(A); break; case 3: SumSparmatrix(A); break; default: system("cls"); printf("\n\t\t輸入錯(cuò)誤!請(qǐng)重新輸入!\n"); break; } if (choice==1||choice==2||choice==3) { printf("\n\t\t"); system("pause"); system("cls"); } else system("cls"); } }
上傳時(shí)間: 2020-06-11
上傳用戶:ccccy
IP2726_AC_FBR 是一款集成多種協(xié)議、用于 USB-A 和 TYPE-C 雙端口輸出的快充協(xié)議 IC。支持多 種快充協(xié)議,包括 USB TypeC DFP,PD2.0/PD3.0/PPS , HVDCP QC4+/QC4/QC3.0/QC2.0(Quick Charge),F(xiàn)CP (Hisilicon? Fast Charge Protocol),SCP(Super Fast Charge),AFC(Samsung? Adaptive Fast Charge), MTK PE+ 2.0/1.1( MediaTek Pump Express Plus 2.0/1.1),Apple 2.4A,BC1.2 以及 2.0A。為適 配器、車充等單向輸出應(yīng)用提供完整的 TYPE-C 解決 方案。 IP2726_AC_FBR 具備高集成度與豐富功能,在 應(yīng)用時(shí)僅需極少的外圍器件,有效減小整體方案的 尺寸,降低 BOM 成本。
標(biāo)簽: usb
上傳時(shí)間: 2022-02-24
上傳用戶:xsr1983
IP2723T 是一款集成多種協(xié)議、用于 USB 輸出 端口的快充協(xié)議 IC。支持多種快充協(xié)議,包括 USB TypeC DFP , PD2.0/PD3.0/PPS , HVDCP QC4/QC4+/QC3.0/QC2.0 ( Quick Charge ), FCP (Hisilicon? Fast Charge Protocol),SCP(Super Fast Charge),AFC(Samsung? Adaptive Fast Charge), MTK PE+ 2.0/1.1(MediaTek Pump Express Plus 2.0/1.1),Apple 2.4A,BC1.2 以及三星 2.0A。為適 配器、車充等單向輸出應(yīng)用提供完整的 TYPE-C 解決 方案。
標(biāo)簽: IP2723
上傳時(shí)間: 2022-03-04
上傳用戶:
LED 數(shù)碼管 LCD屏等顯示器件Altium Designer AD原理圖庫(kù)元件庫(kù)CSV text has been written to file : 9.2 - 顯示器件.csvLibrary Component Count : 64Name Description----------------------------------------------------------------------------------------------------1588A 共陰單色LED8*8點(diǎn)陣屏1588B 共陽(yáng)單色LED8*8點(diǎn)陣屏2811A 0.28寸1位共陰數(shù)碼管2811B 0.28寸1位共陽(yáng)數(shù)碼管2821A 0.28寸2位共陰數(shù)碼管2821B 0.28寸2位共陽(yáng)數(shù)碼管2831A 0.28寸3位共陰數(shù)碼管2831B 0.28寸3位共陽(yáng)數(shù)碼管4041A 0.4寸4位共陰數(shù)碼管4041B 0.4寸4位共陽(yáng)數(shù)碼管5011A 0.5寸1位共陰數(shù)碼管5011B 0.5寸1位共陽(yáng)數(shù)碼管5021A 0.5寸2位共陰數(shù)碼管5021B 0.5寸2位共陽(yáng)數(shù)碼管5421A-M 0.54寸米字2位共陰數(shù)碼管5421B-M 0.54寸米字2位共陽(yáng)數(shù)碼管5611A 0.56寸1位共陰數(shù)碼管5611B 0.56寸1位共陽(yáng)數(shù)碼管5621A 0.56寸2位共陰數(shù)碼管5621B 0.56寸2位共陽(yáng)數(shù)碼管5631A 0.56寸3位共陰數(shù)碼管5631B 0.56寸3位共陽(yáng)數(shù)碼管5641A 0.56寸4位共陰數(shù)碼管5641B 0.56寸4位共陽(yáng)數(shù)碼管8011A 0.8寸1位共陰數(shù)碼管8011B 0.8寸1位共陽(yáng)數(shù)碼管8021A 0.8寸2位共陰數(shù)碼管8021B 0.8寸2位共陽(yáng)數(shù)碼管8031A 0.8寸3位共陰數(shù)碼管8031B 0.8寸3位共陽(yáng)數(shù)碼管8041A 0.8寸4位共陰數(shù)碼管8041B 0.8寸4位共陽(yáng)數(shù)碼管CH12864I 12864 點(diǎn)陣屏JLX12864G-086 12864 點(diǎn)陣屏JLX12864G-1353-PN 12864 點(diǎn)陣屏JLX12864G-200 12864 點(diǎn)陣屏LCD 1602 LCD 1602LCD7X18 LCD7X18數(shù)碼屏帶背光OLED 1.3-12864_7pin 12864 點(diǎn)陣屏TFT1.5_39P 128*128TXD144CF 1.44寸TFTTXD144CF-modules 1.44寸TFLibrary Component Count : 14Name Description----------------------------------------------------------------------------------------------------LED RG-A 共陽(yáng)雙色LEDLED RG-K 共陰雙色LEDLED-3MM 插件LEDLED-5MM 5mm插件LEDLED-8MM 8mm插件LEDLED-F234 方形LEDLED-F257 方形LEDLED-RGB 三基色LEDLED-RGB-3528 三基色LEDLED-SH-5MM 5mm草帽LEDLED-SMD 貼片LEDLED-SMD-RG 貼片雙色LEDLED-SMD_1W 大功率LEDLED-SMD_3W 大功率LEDSV text has been written to file : 9.3 - 數(shù)碼管.csvLibrary Component Count : 54Name Description----------------------------------------------------------------------------------------------------2811A 0.28寸1位共陰數(shù)碼管2811B 0.28寸1位共陽(yáng)數(shù)碼管2821A 0.28寸2位共陰數(shù)碼管2821B 0.28寸2位共陽(yáng)數(shù)碼管2831A 0.28寸3位共陰數(shù)碼管2831B 0.28寸3位共陽(yáng)數(shù)碼管2841A 0.28寸4位共陰數(shù)碼管2841B 0.28寸4位共陽(yáng)數(shù)碼管3611A 0.36寸1位共陰數(shù)碼管3611B 0.36寸1位共陽(yáng)數(shù)碼管3621A 0.36寸2位共陰數(shù)碼管3621B 0.36寸2位共陽(yáng)數(shù)碼管3631A 0.36寸3位共陰數(shù)碼管3631B 0.36寸3位共陽(yáng)數(shù)碼管3641A 0.36寸4位共陰數(shù)碼?
標(biāo)簽: led Altium Designer
上傳時(shí)間: 2022-03-13
上傳用戶:
part1也已上傳:https://dl.21ic.com/download/part1-385449.html 本書系統(tǒng)介紹電容器的基礎(chǔ)知識(shí)及在各種實(shí)際應(yīng)用電路中的工作原理,包括 RC 積分、 RC 微分、濾波電容、旁路電容、去耦電容、耦合電容、諧振電容、自舉電容、 PN 結(jié)電容、加速電容、密勒電容、安規(guī)電容等。本書強(qiáng)調(diào)工程應(yīng)用,包含大量實(shí)際工作中的應(yīng)用電路案例講解,涉及高速 PCB、高頻電子、運(yùn)算放大器、功率放大、開(kāi)關(guān)電源等多個(gè)領(lǐng)域,內(nèi)容豐富實(shí)用,敘述條理清晰,對(duì)工程師系統(tǒng)掌握電容器的實(shí)際應(yīng)用有很大的幫助,可作為初學(xué)者的輔助學(xué)習(xí)教材,也可作為工程師進(jìn)行電路設(shè)計(jì)、制作與調(diào)試的參考書。第 1 章 電容器基礎(chǔ)知識(shí)第 2 章 電容器標(biāo)稱容值為什么這么怪第 3 章 電容器為什么能夠儲(chǔ)能第 4 章 介電常數(shù)是如何提升電容量的第 5 章 介質(zhì)材料是如何損耗能量的第 6 章 絕緣電阻與介電常數(shù)的關(guān)系第 7 章 電容器的失效模式第 8 章 RC 積分電路的復(fù)位應(yīng)用第 9 章 門電路組成的積分型單穩(wěn)態(tài)觸發(fā)器第 10 章 555 定時(shí)芯片應(yīng)用:?jiǎn)畏€(wěn)態(tài)負(fù)邊沿觸發(fā)器第 11 章 RC 多諧振蕩器電路工作原理第 12 章 這個(gè)微分電路是冒牌的嗎第 13 章 門電路組成的微分型單穩(wěn)態(tài)觸發(fā)器第 14 章 555 定時(shí)器芯片應(yīng)用:?jiǎn)畏€(wěn)態(tài)正邊沿觸發(fā)器第 15 章 電容器的放電特性及其應(yīng)用第 16 章 施密特觸發(fā)器構(gòu)成的多諧振蕩器第 17 章 電容器的串聯(lián)及其應(yīng)用第 18 章 電容器的并聯(lián)及其應(yīng)用第 19 章 電源濾波電路基本原理第 20 章 從低通濾波器認(rèn)識(shí)電源濾波電路第 21 章 從電容充放電認(rèn)識(shí)低通濾波器第 22 章 降壓式開(kāi)關(guān)電源中的電容器第 23 章 電源濾波電容的容量越大越好嗎第 24 章 電源濾波電容的容量多大才合適第 25 章 RC 滯后型移相式振蕩電路第 26 章 電源濾波電容中的戰(zhàn)斗機(jī):鋁電解電容第 27 章 旁路電容工作原理(數(shù)字電路)第 28 章 旁路電容 0.1μF 的由來(lái)(1)第 29 章 旁路電容 0 1μF 的由來(lái)(2)第 30 章 旁路電容的 PCB 布局布線第 31 章 PCB 平面層電容可以做旁路電容嗎第 32 章 旁路電容工作原理(模擬電路)第 33 章 旁路電容與去耦電容的聯(lián)系與區(qū)別第 34 章 旁路電容中的戰(zhàn)斗機(jī):陶瓷電容第 35 章 交流信號(hào)是如何通過(guò)耦合電容的第 36 章 為什么使用電容進(jìn)行信號(hào)的耦合第 37 章 耦合電容的容量多大才合適
標(biāo)簽: 電容
上傳時(shí)間: 2022-05-07
上傳用戶:
part2也已上傳:https://dl.21ic.com/download/part2-385450.html 本書系統(tǒng)介紹電容器的基礎(chǔ)知識(shí)及在各種實(shí)際應(yīng)用電路中的工作原理,包括 RC 積分、 RC 微分、濾波電容、旁路電容、去耦電容、耦合電容、諧振電容、自舉電容、 PN 結(jié)電容、加速電容、密勒電容、安規(guī)電容等。本書強(qiáng)調(diào)工程應(yīng)用,包含大量實(shí)際工作中的應(yīng)用電路案例講解,涉及高速 PCB、高頻電子、運(yùn)算放大器、功率放大、開(kāi)關(guān)電源等多個(gè)領(lǐng)域,內(nèi)容豐富實(shí)用,敘述條理清晰,對(duì)工程師系統(tǒng)掌握電容器的實(shí)際應(yīng)用有很大的幫助,可作為初學(xué)者的輔助學(xué)習(xí)教材,也可作為工程師進(jìn)行電路設(shè)計(jì)、制作與調(diào)試的參考書。第 1 章 電容器基礎(chǔ)知識(shí)第 2 章 電容器標(biāo)稱容值為什么這么怪第 3 章 電容器為什么能夠儲(chǔ)能第 4 章 介電常數(shù)是如何提升電容量的第 5 章 介質(zhì)材料是如何損耗能量的第 6 章 絕緣電阻與介電常數(shù)的關(guān)系第 7 章 電容器的失效模式第 8 章 RC 積分電路的復(fù)位應(yīng)用第 9 章 門電路組成的積分型單穩(wěn)態(tài)觸發(fā)器第 10 章 555 定時(shí)芯片應(yīng)用:?jiǎn)畏€(wěn)態(tài)負(fù)邊沿觸發(fā)器第 11 章 RC 多諧振蕩器電路工作原理第 12 章 這個(gè)微分電路是冒牌的嗎第 13 章 門電路組成的微分型單穩(wěn)態(tài)觸發(fā)器第 14 章 555 定時(shí)器芯片應(yīng)用:?jiǎn)畏€(wěn)態(tài)正邊沿觸發(fā)器第 15 章 電容器的放電特性及其應(yīng)用第 16 章 施密特觸發(fā)器構(gòu)成的多諧振蕩器第 17 章 電容器的串聯(lián)及其應(yīng)用第 18 章 電容器的并聯(lián)及其應(yīng)用第 19 章 電源濾波電路基本原理第 20 章 從低通濾波器認(rèn)識(shí)電源濾波電路第 21 章 從電容充放電認(rèn)識(shí)低通濾波器第 22 章 降壓式開(kāi)關(guān)電源中的電容器第 23 章 電源濾波電容的容量越大越好嗎第 24 章 電源濾波電容的容量多大才合適第 25 章 RC 滯后型移相式振蕩電路第 26 章 電源濾波電容中的戰(zhàn)斗機(jī):鋁電解電容第 27 章 旁路電容工作原理(數(shù)字電路)第 28 章 旁路電容 0.1μF 的由來(lái)(1)第 29 章 旁路電容 0 1μF 的由來(lái)(2)第 30 章 旁路電容的 PCB 布局布線第 31 章 PCB 平面層電容可以做旁路電容嗎第 32 章 旁路電容工作原理(模擬電路)第 33 章 旁路電容與去耦電容的聯(lián)系與區(qū)別第 34 章 旁路電容中的戰(zhàn)斗機(jī):陶瓷電容第 35 章 交流信號(hào)是如何通過(guò)耦合電容的第 36 章 為什么使用電容進(jìn)行信號(hào)的耦合第 37 章 耦合電容的容量多大才合
標(biāo)簽: 電容
上傳時(shí)間: 2022-05-07
上傳用戶:
基于STC89C51單片機(jī)的智能電熱水器的控制器的設(shè)計(jì),要達(dá)到的控制要求有:(1)用LCD1602液晶顯示水溫、設(shè)置上下限和定時(shí)時(shí)間,(2)水溫檢測(cè)顯示范圍為00~99℃,精度為±1℃。(3)溫度預(yù)設(shè)范圍為0~99℃,當(dāng)檢測(cè)溫度低于預(yù)設(shè)溫度時(shí),開(kāi)始加熱;檢測(cè)溫度高于預(yù)設(shè)溫度時(shí),停止加熱。(4)設(shè)置4個(gè)程序按鍵。分別問(wèn)設(shè)置按鍵、加鍵、減鍵、確定。(5)可以紅外遙控,通過(guò)紅外一體接收探頭接收遙控器信號(hào),執(zhí)行與主板按鍵同等功能。(6)有水位檢測(cè)功能,無(wú)水自動(dòng)上水,無(wú)水不加熱。//外部中斷解碼程序_外部中斷0void intersvr1(void) interrupt 2 using 1{ TR0=1; Tc=TH0*256+TL0;//提取中斷時(shí)間間隔時(shí)長(zhǎng) TH0=0; TL0=0; //定時(shí)中斷重新置零 if((Tc>Imin)&&(Tc<Imax)) { m=0; f=1; return; } //找到啟始碼 if(f==1) { if(Tc>Inum1&&Tc<Inum3) { Im[m/8]=Im[m/8]>>1|0x80; m++; } if(Tc>Inum2&&Tc<Inum1) { Im[m/8]=Im[m/8]>>1; m++; //取碼 } if(m==32) { m=0; f=0; if(Im[2]==~Im[3]) { IrOK=1; TR0=0; } else IrOK=0; //取碼完成后判斷讀碼是否正確 } //準(zhǔn)備讀下一碼 }}
標(biāo)簽: 51單片機(jī) 智能熱水器 控制系統(tǒng)
上傳時(shí)間: 2022-05-14
上傳用戶:
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1