S
stopper88
Guest
Hi, es esmu jauna šeit un jauni protonu IDE, kā labi.
Es esmu strādā pie projekta, kas man bija vajadzīgs izmantot vairākas taustiņu uz tastatūras 3x4 ...
Es, izmantojot LM35 kā ieguldījumu 16F877 PIC
i bija simulēt šo kodu gada 7 Proteus.
tastatþra tiek izmantota, lai izvēlētos izvēlnes ....
, lai ievadītu izvēlnes tās nepieciešamību rīkot nospiediet taustiņu pavisam nedaudz garāks (vēl nezinu kāpēc)
uz automātiskā režīmā savu darbu labi un kad ievadīt rokas režīmā iestrēdzis laikā atlasiet nosacījumu
tad automātiski palaist loop_low
ceru, ka kāds var palīdzēt man asapšeit mans kods:
OPTIMISER_LEVEL = 6 'Iestatīt maksimālās optimizētājs līmenis
Ierīce 16F877
Atzīt XTAL = 20
Atzīt LCD_DTPIN PORTD.4
Atzīt LCD_RSPIN PORTD.3
Atzīt LCD_ENPIN PORTD.2
Atzīt ADIN_RES 10 'Set rezolūciju 10
Atzīt ADIN_TAD FRC "Izvēlies RC OSC uz ADC paraugiem
Atzīt ADIN_STIME 100 "Atļaut 100us uz uzlādes laiks
Atzīt KEYPAD_PORT = PORTB
Atzīt PORTB_PULLSUP taisnībaIevades PORTA.0
Dim izejvielas kā Word
Dim v Kā Float
'------------- Izvēlnes -----------------
izvēlne:
cilpa:
Drukāt CLS
Drukāt Pēc 1,3, "SELECT MODE",
Drukāt Pēc 2,1 "1.Auto 2.Manual"
Dim X Baits
Dim Kā Baits
Atkārtot
x = InKey
= uzmeklēšanas x, [1,2,3,255,4,5,6,255,7,8,9,255 ,"*", 0 ,"#", 255255]
Ja a = 1 Tad Iet start_motor
Ja a = 2 Tad Iet manual_m
Līdz <> 16
DelayMS 200
Goto cilpa
exit_menu:
'------------- Automātiskā režīmā ------------------ "start_motor:
loop_a:
Dim Z, kā Byte
Dim B Baits
ADCON1 =% 10000010 "Set PORTA analog un labi pamatotu rezultātu
izejvielas = Adin 0 "10 bitu skaitu uzglabā vārdu izmēra mainīgos
v = (5 / 1023) * izejvielu
v = v * 1000
v = v/10 "1 grādu Celsija par katru 10mV
Drukāt Pēc 1,1 "automātiskajā režīmā",
Drukāt Pēc 2,1 "Temp", decembris pret, "C",
motor1 Simbols PORTC.0 "atzīt par 1 motors
Ja v> 30 Tad
Augstas motor1
Vēl
Zema motor1
Beigas Ja
Simbols motor2 PORTC.1 "atzīt kā 2 motoru
Ja v> 40 Tad
Augstas motor2
Vēl
Zema motor2
Beigas Ja
motor3 Simbols PORTC.2 "paziņo par 3 motoru
Ja v> 55 Tad
Augstas motor3
Vēl
Zema motor3
Beigas Ja
Simbols runātājs PORTA.1
Ja v> 75 Tad
Augstas runātājs
Vēl
Zema valoda
Beigas Ja
Ja v> 90 Tad Iet exit_start_motorz = InKey
Ja z = "*" Tad Goto izvēlni
Iet loop_a
exit_start_motor:
Drukāt CLS
Drukāt Pēc 1,1 "pārkarsēts !!!!!",
Drukāt Pēc 2,1 "Temp", decembris pret, "C"
DelayMS 20000'---------- Manuālā režīmā ------------------------------------- "
manual_m:
loop_d:
Drukāt CLS
Drukāt Pēc 1,1 "atlasiet nosacījumu",
Drukāt Pēc 2,1 "1.low 2.Mid 3.High"
Dim s Kā Baitss = InKey
Ja s = 1 Tad Iet loop_low
Ja s = 2 Tad Iet loop_mid
Ja s = 3 Pēc tam Iet loop_hiDelayMS 5000
Iet loop_d
loop_low:
Simbols mtr_1 PORTC.0
Augstas mtr_1
ADCON1 =% 10000010 "Set PORTA analog un labi pamatotu rezultātu
izejvielas = Adin 0 "10 bitu skaitu uzglabā vārdu izmēra mainīgos
v = (5 / 1023) * izejvielu
v = v * 1000
v = v/10
Drukāt CLS
Drukāt Pēc 1,1 "LOW MODE",
Drukāt Pēc 2,1 "Temp", decembris pret, "C",
DelayMS 1000
Iet loop_low
loop_mid:
Simbols mtr_2 PORTC.0
Simbols mtr_3 PORTC.1
Augstas mtr_2
Augstas mtr_3
ADCON1 =% 10000010 "Set PORTA analog un labi pamatotu rezultātu
izejvielas = Adin 0 "10 bitu skaitu uzglabā vārdu izmēra mainīgos
v = (5 / 1023) * izejvielu
v = v * 1000
v = v/10
Drukāt CLS
Drukāt Pēc 1,1 "MID MODE",
Drukāt Pēc 2,1 "Temp", decembris pret, "C",
DelayMS 1000
Iet loop_mid
loop_hi:
Simbols mtr_4 PORTC.0
Simbols mtr_5 PORTC.1
Simbols mtr_6 PORTC.2
Augstas mtr_4
Augstas mtr_5
Augstas mtr_6
ADCON1 =% 10000010 "Set PORTA analog un labi pamatotu rezultātu
izejvielas = Adin 0 "10 bitu skaitu uzglabā vārdu izmēra mainīgos
v = (5 / 1023) * izejvielu
v = v * 1000
v = v/10
Drukāt CLS
Drukāt Pēc 1,1 "HIGH MODE",
Drukāt Pēc 2,1 "Temp", decembris pret, "C",Iet loop_hi
DelayMS 1000
Es esmu strādā pie projekta, kas man bija vajadzīgs izmantot vairākas taustiņu uz tastatūras 3x4 ...
Es, izmantojot LM35 kā ieguldījumu 16F877 PIC
i bija simulēt šo kodu gada 7 Proteus.
tastatþra tiek izmantota, lai izvēlētos izvēlnes ....
, lai ievadītu izvēlnes tās nepieciešamību rīkot nospiediet taustiņu pavisam nedaudz garāks (vēl nezinu kāpēc)
uz automātiskā režīmā savu darbu labi un kad ievadīt rokas režīmā iestrēdzis laikā atlasiet nosacījumu
tad automātiski palaist loop_low
ceru, ka kāds var palīdzēt man asapšeit mans kods:
OPTIMISER_LEVEL = 6 'Iestatīt maksimālās optimizētājs līmenis
Ierīce 16F877
Atzīt XTAL = 20
Atzīt LCD_DTPIN PORTD.4
Atzīt LCD_RSPIN PORTD.3
Atzīt LCD_ENPIN PORTD.2
Atzīt ADIN_RES 10 'Set rezolūciju 10
Atzīt ADIN_TAD FRC "Izvēlies RC OSC uz ADC paraugiem
Atzīt ADIN_STIME 100 "Atļaut 100us uz uzlādes laiks
Atzīt KEYPAD_PORT = PORTB
Atzīt PORTB_PULLSUP taisnībaIevades PORTA.0
Dim izejvielas kā Word
Dim v Kā Float
'------------- Izvēlnes -----------------
izvēlne:
cilpa:
Drukāt CLS
Drukāt Pēc 1,3, "SELECT MODE",
Drukāt Pēc 2,1 "1.Auto 2.Manual"
Dim X Baits
Dim Kā Baits
Atkārtot
x = InKey
= uzmeklēšanas x, [1,2,3,255,4,5,6,255,7,8,9,255 ,"*", 0 ,"#", 255255]
Ja a = 1 Tad Iet start_motor
Ja a = 2 Tad Iet manual_m
Līdz <> 16
DelayMS 200
Goto cilpa
exit_menu:
'------------- Automātiskā režīmā ------------------ "start_motor:
loop_a:
Dim Z, kā Byte
Dim B Baits
ADCON1 =% 10000010 "Set PORTA analog un labi pamatotu rezultātu
izejvielas = Adin 0 "10 bitu skaitu uzglabā vārdu izmēra mainīgos
v = (5 / 1023) * izejvielu
v = v * 1000
v = v/10 "1 grādu Celsija par katru 10mV
Drukāt Pēc 1,1 "automātiskajā režīmā",
Drukāt Pēc 2,1 "Temp", decembris pret, "C",
motor1 Simbols PORTC.0 "atzīt par 1 motors
Ja v> 30 Tad
Augstas motor1
Vēl
Zema motor1
Beigas Ja
Simbols motor2 PORTC.1 "atzīt kā 2 motoru
Ja v> 40 Tad
Augstas motor2
Vēl
Zema motor2
Beigas Ja
motor3 Simbols PORTC.2 "paziņo par 3 motoru
Ja v> 55 Tad
Augstas motor3
Vēl
Zema motor3
Beigas Ja
Simbols runātājs PORTA.1
Ja v> 75 Tad
Augstas runātājs
Vēl
Zema valoda
Beigas Ja
Ja v> 90 Tad Iet exit_start_motorz = InKey
Ja z = "*" Tad Goto izvēlni
Iet loop_a
exit_start_motor:
Drukāt CLS
Drukāt Pēc 1,1 "pārkarsēts !!!!!",
Drukāt Pēc 2,1 "Temp", decembris pret, "C"
DelayMS 20000'---------- Manuālā režīmā ------------------------------------- "
manual_m:
loop_d:
Drukāt CLS
Drukāt Pēc 1,1 "atlasiet nosacījumu",
Drukāt Pēc 2,1 "1.low 2.Mid 3.High"
Dim s Kā Baitss = InKey
Ja s = 1 Tad Iet loop_low
Ja s = 2 Tad Iet loop_mid
Ja s = 3 Pēc tam Iet loop_hiDelayMS 5000
Iet loop_d
loop_low:
Simbols mtr_1 PORTC.0
Augstas mtr_1
ADCON1 =% 10000010 "Set PORTA analog un labi pamatotu rezultātu
izejvielas = Adin 0 "10 bitu skaitu uzglabā vārdu izmēra mainīgos
v = (5 / 1023) * izejvielu
v = v * 1000
v = v/10
Drukāt CLS
Drukāt Pēc 1,1 "LOW MODE",
Drukāt Pēc 2,1 "Temp", decembris pret, "C",
DelayMS 1000
Iet loop_low
loop_mid:
Simbols mtr_2 PORTC.0
Simbols mtr_3 PORTC.1
Augstas mtr_2
Augstas mtr_3
ADCON1 =% 10000010 "Set PORTA analog un labi pamatotu rezultātu
izejvielas = Adin 0 "10 bitu skaitu uzglabā vārdu izmēra mainīgos
v = (5 / 1023) * izejvielu
v = v * 1000
v = v/10
Drukāt CLS
Drukāt Pēc 1,1 "MID MODE",
Drukāt Pēc 2,1 "Temp", decembris pret, "C",
DelayMS 1000
Iet loop_mid
loop_hi:
Simbols mtr_4 PORTC.0
Simbols mtr_5 PORTC.1
Simbols mtr_6 PORTC.2
Augstas mtr_4
Augstas mtr_5
Augstas mtr_6
ADCON1 =% 10000010 "Set PORTA analog un labi pamatotu rezultātu
izejvielas = Adin 0 "10 bitu skaitu uzglabā vārdu izmēra mainīgos
v = (5 / 1023) * izejvielu
v = v * 1000
v = v/10
Drukāt CLS
Drukāt Pēc 1,1 "HIGH MODE",
Drukāt Pēc 2,1 "Temp", decembris pret, "C",Iet loop_hi
DelayMS 1000