am nevoie de proba c programe în Keil ...

H

harshita

Guest
Buna ..Am nevoie de proba de codificare folosind keilC compilator ....fac proiect în 89c51 ....
Am nevoie de codificările în principal în
1.temperatue senzor
2.ADC Convertor
3.IR detector
4.LCD de afişarevă rugăm să răspundeţi mai repede ..
thx u în avans ..

 
Du-te la dispozitiv analogic download cod pentru ADUC847 sau 842.Lot de mostre acolo

sau du-te la Atmel sa descarce cateva de acolo

 
Este această orice utilizare, de fapt, pentru AT89s8252 / 3.nu ar trebui să solicite mai multe modificări.Pentru 1x16 display, 2x8 electric.

P1.0 = RS
P1.1 = E
P1.2 = D4
P1.3 = D5
P1.4 = D6
P1.5 = D7

Ground Pin 3 privind LCD

Întârziere demonstrat este "Delay.h"Delay.h

# define XTAL_FREQ 12
# define DelayUs (x) (nesemnate caracter _dcnt; \
_dcnt = (x) * ((XTAL_FREQ) / 12); \
în timp ce (- _dcnt! = 0) \
continue;)
Extern nule DelayMs (nesemnate caracter);LCD.h

/ *
* LCD interfaţă antet fişier
* Vezi lcd.c pentru mai multe informaţii
* /

/ * Scrie un octet la LCD in 4 biţi Mod * /

Extern nule lcd_write (nesemnate caracter);

/ * Senin şi acasă LCD * /

Extern nule lcd_clear (gol);

/ * Scrie un şir de caractere la LCD * /

Extern nule lcd_puts (Const caracter * s);

/ * Du-te la poziţia specificată * /

Extern nule lcd_goto (nesemnate caracter POS);

/ * Intialize LCD - apel înainte de orice altceva * /

Extern nule lcd_init (gol);

Extern nule lcd_putch (caracter);

/ * Set poziţia cursorului * /

# define lcd_cursor (x) lcd_write (((x) & 0x7F) | 0x80)

LCD.c

# include <reg51.h>
# include "delay.h"

sbit LCD_RS ^ P1 = 0; / / Register selectaţi
sbit LCD_E = P1 ^ 1; / / Activare

# define LCD_STROBE ((LCD_E = 1), (LCD_E = 0))

/ / Timp în milisecunde
nule DelayMs (nesemnate caracter cnt)
(Cnt = 2 * cnt;
face
(DelayUs (500);)
în timp ce (- cnt! = 0);
)

/ / Trimite pentru a afişa
nule lcd_write (nesemnate caracter c)
(
nesemnate caracter Movit;
Movit = (c>> 2);
P1 = (P1 & 0xC3) | (Movit & 0x3C);
LCD_STROBE;
Movit = (c <<2);
P1 = (P1 & 0xC3) | (Movit & 0x3C);
LCD_STROBE;
DelayUs (60);
)

/ / Senin şi acasă LCD
nule lcd_clear (gol)
(
LCD_RS = 0;
lcd_write (0x80);
DelayMs (2);
)

/ / Poziţia Cursor
nule lcd_goto (nesemnate caracter POS)
(
LCD_RS = 0;
lcd_write (0x80 pos);
)

/ / Trimite Character String
nule lcd_puts (Const caracterul * e)
(
nesemnate caracter cursorul = 0x00;

while (* s)
(
LCD_RS = 1;
lcd_write (* s);
i ;
cursorul ;
dacă (cursorul == 0x08) lcd_goto (0x40); / / Schimbarea la 0x80 pentru simulare
dacă (cursorul == 0x10) (cursor = 0; lcd_goto (0x00);)
)
)/ / Initialise LCD - Mod de 4 biţi
nule lcd_init (gol)
(
LCD_RS = 0;
DelayMs (40); / / putere pe întârziere
lcd_write (0x28); / / 4 biţi modul, 1 / 16 taxă, 5x8 font
LCD_STROBE;
DelayMs (5);
LCD_STROBE;
DelayMs (5);
LCD_STROBE;
lcd_write (0x28);
lcd_write (0x08); / / off de afişare
lcd_write (0x0C); / / afişate pe, cursorul în jos
lcd_write (0x06); / / Mod de intrare
)

 

Welcome to EDABoard.com

Sponsor

Back
Top