久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

立即注冊(cè) 登錄
返回首頁

uid:103513的個(gè)人空間

日志

1602液晶 51單片機(jī)和pic單片機(jī)通殺

已有 1610 次閱讀2016-1-17 00:25

//犯的錯(cuò):在51里RW(L命令、H數(shù)據(jù))是直接焊成接地的
//∴ 少了lcd_enable(); 這一函數(shù){lcdrs = 0; lcdrw = 0; lcden = 0; delay(5); lcden = 1;}
//少了這一函數(shù)設(shè)置就無法顯示了
#define PIC
#ifdef ww
 #include<reg52.h>
 #define uchar unsigned char
 #define uint unsigned int
 uchar code table[]="   hello! jasper";   //寫字符串時(shí)用“”而不是{ }了
 uchar code table1[]="   xm.dabiao    ";
 sbit lcden=P3^4;
 sbit lcdrs=P3^5; 
 sbit dula=P2^6;     
 sbit wela=P2^7;
#endif
#ifdef PIC
 #include <pic.h>
 __CONFIG(0X3B31);
 #define uchar unsigned char 
 #define uint unsigned int
  //奇怪了,移動(dòng)下面2行會(huì)提示,逗號(hào)錯(cuò)誤
 const uchar table[]="   hello! jasper";    //寫字符串時(shí)用“”而不是{ }了
 const uchar table1[]="   xm.dabiao    "; //PIC的數(shù)組寫法與51的是不同的
 #define lcden RA3
 #define lcdrs RA5
 #define lcdrw RA4
 #define P0 PORTD
#endif
uchar num;
void delay(uint z)     //延時(shí)
{
  uint x,y;
  for(x=z;x>0;x--)
   for(y=110;y>0;y--);
}
void write_com(uchar com) //寫指令函數(shù)
{
  lcdrs=0;  
  P0=com;
  delay(5);  
  lcden=1;  
  delay(5);
  lcden=0;
}
void write_data(uchar date)   //寫數(shù)據(jù) 函數(shù)
{
  lcdrs=1;
  P0=date;
//  delay(5);
  lcdrs=1;
#ifdef PIC
  lcdrw=0; //寫成1就什么也顯示不了,在51里它是直接接地的
#endif
  lcden=0;
  delay(5);
  lcden=1;
}
void lcd_enable(void)    //LCD顯示設(shè)置
{
 lcdrs = 0;                     //該字節(jié)數(shù)據(jù)L為命令,H高為數(shù)據(jù)
#ifdef PIC
 lcdrw = 0;                     //此次操作為寫,而不是讀
#endif
 lcden = 0;                      //拉低使能信號(hào)
 delay(5);                   //保持使能信號(hào)為低一段時(shí)間
 lcden = 1;                      //拉高使能信號(hào),建立LCD操作所需要的上升沿
}
void init()
{
#ifdef ww
   dula=0;           //初始化,關(guān)斷數(shù)碼管
  wela=0;
  lcden=0; 
  write_com(0x38);    //顯示模式設(shè)定,0X38即闡述了此液晶為16X2顯示,是5X7點(diǎn)陣 
  write_com(0x0e);    //開顯示不顯光標(biāo),光標(biāo)不閃爍 
  write_com(0x06);    //當(dāng)前為加一模式且整屏不左移
  write_com(0x01);  //之后還要刷新一次
 // write_com(0x80);
  write_com(0x80+0x10); //表示這是從第一行開始寫,因?yàn)橐烈苿?dòng)所以要加0x10
#endif
#ifdef PIC
  TRISA=0x00;PORTA=0XF0;
  TRISD=0x00;PORTD=0XFF;
   ADCON1=0X07;  //設(shè)置A口為普通IO口
  RA1=1;
  lcd_enable();   //該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù).少了這一行就顯示不了
  write_com(0x38);    //顯示模式設(shè)定,0X38即闡述了此液晶為16X2顯示,是5X7點(diǎn)陣  
  lcd_enable();   //該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù).少了這一行就顯示不了
  write_com(0x0e);    //開顯示不顯光標(biāo),光標(biāo)不閃爍 
  lcd_enable();   //該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù).少了這一行就顯示不了
  write_com(0x06);    //當(dāng)前為加一模式且整屏不左移
  lcd_enable();   //該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù).少了這一行就顯示不了
  write_com(0x01);  //之后還要刷新一次
  lcd_enable();   //該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù).少了這一行就顯示不了
 // write_com(0x80);
  write_com(0x80+0x10); //表示這是從第一行開始寫,因?yàn)橐烈苿?dòng)所以要加0x10
#endif 
}
void doio(void)
{
    for(num=0;num<16;num++) 
  {       
    write_data(table[num]); 
    delay(20); 
  }
 //----------------------------再寫第二行
  write_com(0x80+0x51);  
  for(num=0;num<16;num++)
  {
    write_data(table1[num]);
    delay(20);
  }
  for(num=0;num<16;num++)
  {
    write_com(0x18);   //由code控制位 表算得18,整屏左移
    delay(160); 
  }
  while(1);
}
void main()
{
  init();
  doio();
}

路過

雞蛋

鮮花

握手

雷人

評(píng)論 (0 個(gè)評(píng)論)

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

返回頂部
主站蜘蛛池模板: 九九热在线视频观看这里只有精品 | 国产精品九九视频 | 九九久久精品视频 | 99久久中文字幕三级久久日本 | 国产综合视频 | 黑人巨大精品欧美一区二区免费 | 超碰国产在线 | 日本精品在线播放 | 成人网av | 一区二区三区久久 | 中文字幕精品视频 | 五月天天丁香婷婷在线中 | 国产精品视频一二三区 | 91文字幕巨乱亚洲香蕉 | 中文字幕视频一区 | 午夜99| 国产精品视频一区二区三区四蜜臂 | 日韩高清中文字幕 | 国内精品久久久久久影视8 最新黄色在线观看 | 九九热re | 色中文在线| 男人亚洲天堂 | 成人永久免费视频 | 亚洲国产18 | 国内自拍真实伦在线观看 | 国产网站在线播放 | 国产99免费视频 | 国产区一区 | 久久精品一区 | 91福利在线观看视频 | 99久久婷婷国产综合精品电影 | 日韩看片| 日本午夜精品 | 国产成人综合一区二区三区 | 性欧美hd | 蜜桃视频在线观看免费视频网站www | 91精品国产92 | 久久国产成人午夜av影院武则天 | 中文字幕日韩在线观看 | 国产精品不卡一区 | 午夜黄色 |