EDN首页   博客首页

0

关于投票
CCS 的好书 freemark 推荐

关于CCS 的好书!

国外计算机科学经典教材  

freemark 推荐!!!!

《嵌入式C语言编程与Microchip 》

5个part:

1143966912.part1.rar

1143967674.part2.rar

1143968421.part3.rar

1143969088.part4.rar

1143969277.part5.rar 

 

(原链如下:)

1143966912.part1.rar1143967674.part2.rar1143968421.part3.rar1143969088.part4.rar1143969277.part5.rar 

 

系统分类: 单片机
用户分类: PIC单片机
标签: 无标签
来源: 转贴
发表评论 阅读全文(134) | 回复(0)

0

关于投票
CCS_16F877A_LCD1604(更新)

点击开大图

http://space.ednchina.com/upload/2008/10/1/d6fb148b-4e53-486b-814c-3883221c128f.rar

#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)

/////////////////////////////////////////////////
// 液晶显示控制库函数
// 函数如下
// lcd_init()  ----- 初始化函数
// lcd_cmd(cmd) ----- 指令输出
// lcd_data(chr) ----- 单字符显示输出
// lcd_clear()  ----- 全消去
/////////////////////////////////////////////////

#define mode 0    //低4位也全输出
#define input_x  input_D 
#define output_x output_D
#define set_tris_x set_tris_D
#define stb   PIN_D3  //Enable 信号引脚指定
#define rs   PIN_D2  //RS   信号引脚指定

/////数据输出子函数
void lcd_out(int code,int flag)
{
 output_x((code & 0xF0) | (input_x() & 0x0F));
 if (flag==0)
  output_high(rs); //显示数据的情况
 else
  output_low(rs);  //指令数据的情况
 delay_cycles(1);  //NOP
 output_high(stb);  //strobe out
 delay_cycles(2);  //NOP X 2
 output_low(stb);  //reset strobe
}

/////单字符表示函数
void lcd_data (int asci)
{
 lcd_out(asci,0);  //高4位输出
 lcd_out(asci<<4,0);  //低4位输出
 delay_us(50);   //50微秒
}

/////指令输出函数
void lcd_cmd(int cmd)
{
 lcd_out(cmd,1);   //高4位输出
 lcd_out(cmd<<4,1);  //低4位输出
 delay_us(2);   //2微秒
}

/////全消去函数
void lcd_clear()
{
 lcd_cmd(0x01);   //初始化指令输出
 delay_ms(15);   //15 ms
}

/////初始化函数
void lcd_init()
{
 set_tris_x(mode);  //模式设置
 delay_ms(15);
 lcd_out(0x30,1);  //8bit mode set
 delay_ms(5);
 lcd_out(0x30,1);  //8bit mode set
 delay_ms(1);
 lcd_out(0x30,1);  //8bit mode set
 delay_ms(1);
 lcd_out(0x20,1);  //4bit mode set
 delay_ms(1);
 lcd_cmd(0x2E);   //DL=0 4bit mode
 lcd_cmd(0x08);   //display 0FF C="D"=B=0
 lcd_cmd(0x0D);   //display ON  C="D"=1 B="0"
 lcd_cmd(0x06);   //entyr I/D=1 S="0"
 lcd_cmd(0x02);   //cursor home
}

void main()
{
 long data;
 data=0;
 lcd_init();
 lcd_clear();
 printf(lcd_data,"Start!!");
 while(1)
 {
  lcd_cmd(0xc0);  //到第2行开头
  printf(lcd_data,"Data= %lu",data++);
  delay_ms(100);
 }
}

2008-10-10 更新了双屏,找出第三行,第四行的始地址.

点击看大图http://space.ednchina.com/upload/2008/10/10/99af5659-c7de-4a43-83d0-f2bd57ac85c5.rar

系统分类: 单片机
用户分类: PIC单片机
标签: 无标签
来源: 整理
发表评论 阅读全文(128) | 回复(0)
总共 , 当前 /