lcd.c
来自「Who to use ECAN network with dsPIC33F, M」· C语言 代码 · 共 102 行
C
102 行
/** *********************************************************
FICHIER : lcd.c
Date 11/02/2009
Version 1.0
********************************************************** **/
#include <p33Fxxxx.h>
#include "lcd.h"
#include "temps.h"
#include "string.h"
#include "stdio.h"
void init_lcd(void)
{
TRISBbits.TRISB5 = 0;
TRISBbits.TRISB6 = 0;
TRISBbits.TRISB7 = 0;
TRISBbits.TRISB8 = 0;
TRISBbits.TRISB9 = 0;
TRISBbits.TRISB10 = 0;
TRISBbits.TRISB11 = 0;
TRISBbits.TRISB12 = 0;
TRISBbits.TRISB13 = 0;
TRISBbits.TRISB14 = 0;
TRISBbits.TRISB15 = 0;
envoie_cmd_lcd(0x38);
envoie_cmd_lcd(0x38);
envoie_cmd_lcd(0x38);
envoie_cmd_lcd(0x01);
envoie_cmd_lcd(0x02);
envoie_cmd_lcd(0x06);
envoie_cmd_lcd(0x0F);
envoie_cmd_lcd(0x14);
}
void envoie_cmd_lcd(unsigned char envoie)
{
E = 1;
donnee = donnee2(envoie);
RW=0;
RS = 0;
tempo(1e-3); //1ms
E = 0;
tempo(1e-3); //1ms
}
void envoie_octet_lcd(unsigned char ad, unsigned char envoie)
{
E = 1;
ad |= 0x80;
donnee = donnee2(ad);
RW=0;
RS = 0;
tempo(1e-3); //1ms
E = 0;
tempo(1e-3); //1ms
E = 1;
donnee = donnee2(envoie);
RW=0;
RS = 1;
tempo(1e-3); //1ms
E = 0;
tempo(1e-3); //1ms
}
void envoie_octet_lcd2(unsigned char envoie)
{
E = 1;
donnee = donnee2(envoie);
RW=0;
RS = 1;
tempo(1e-3); //1ms
E = 0;
tempo(1e-3); //1ms
}
void envoie_string_lcd(unsigned char ad, char *envoie)
{
int i=0;
if(envoie == 0) return;
if(envoie[i] == '\0') return;
envoie_octet_lcd(ad, envoie[i++]);
while(envoie[i] != '\0')
{
envoie_octet_lcd2(envoie[i++]);
}
}
void affiche_double_lcd(unsigned char position, double donnee)
{
char sbuf[20];
int y;
y = sprintf(sbuf, "%.6f ", donnee);
envoie_string_lcd(position,sbuf);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?