{
char speed; if(add == 0) SPEED++; else if(cut == 0)
SPEED--; //确定是加速还是减速
if(SPEED ==5 ) SPEED = 4;
else if(SPEED == -1) SPEED =0; speed = SPEED;
return speed; }
NN12864.C
/* JLX12864G-378,串行接口
驱动IC是:ST7565R(or compatible) */
#include \ #include \
#define u8 unsigned char
//******************************************* // IO 口宏定义 移植时不要忘了配置输入输出 #define PlcdOUT P6OUT #define PlcdDIR P6DIR
#define lcd_rs BIT4 //数据/指令 #define lcd_reset BIT3 //复位 #define lcd_cs BIT2 //片选 #define lcd_sid BIT1 //数据 #define lcd_sclk BIT0 //时钟
#define set(bitx) PlcdOUT|=bitx #define clr(bitx) PlcdOUT&=~bitx
void transfer_command_lcd(u8 data1); void transfer_data_lcd(u8 data1); void set_ads_lcd(u8 page, u8 column);
//显示英文字符串
void LCD_WriteString(u8 page, u8 column, u8 *s, u8 str_long, u8 size);
void LCD_WriteChar(u8 page,u8 column,u8 c, u8 size);
void LCD_WriteNumber(u8 page,u8 column, unsigned long number, u8 num_bit, u8 dot_bit, u8 front_no_zero, u8 size); void LCD_Draw_Pic(u8 * p); void Init_LCD(); void Clear_LCD();
const u8 font_s[][6]; const u8 font_l[][16]; const u8 tsktsk[];
const u8 font_hz_tongxgc[][16];
//写一个Byte
void LCD_WriteByte(u8 page, u8 column, u8 c) {
clr(lcd_cs);
set_ads_lcd(page, column); transfer_data_lcd(c);
set(lcd_cs); }
//**************************************************************************************************** // 写一个字符
//****************************************************************************************************
void LCD_WriteChar(u8 page, u8 column, u8 c, u8 size) {
//page 为“页”,相当于行 为 1 ~ (64/8=8) //column 为列,1 ~ 128 //c 为要显示的字符 //size 0 为小字,1 为大字 u8 * dp = 0; u8 col_cnt;
clr(lcd_cs); if(size == 0) {
dp = (u8 *)font_s[c-' '];
set_ads_lcd(page, column);
for (col_cnt=0;col_cnt<6;col_cnt++) {
transfer_data_lcd(*dp); dp++; } }
else if(size == 1) {
dp = (u8 *)font_l[c-' '];
set_ads_lcd(page, column);
for (col_cnt=0;col_cnt<8;col_cnt++) {
transfer_data_lcd(*dp); dp ++; }