亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? s1620字符型液晶模塊驅動程序.txt

?? ATmega128單片機控制的1602液晶顯示程序
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
菜鳥學PIC單片機(一):TS1620字符型液晶模塊驅動程序編寫苦與樂
   小弟學習PIC16F87X系列單片機已持續半個月了,遇到的困難還是比較多的,幸好單位的圖書館里還有一些相關的書籍,加之購買了第三方的ICD,因此學習起來還是比較充實的。
   雖說如此,但在單位里找不到志同道合者一起來琢磨她,不過這里卻有許多熱心的站友。

   今后,小弟打算將自己的一些學習心得和疑問寫出來,與論壇里和我一樣的初學者一起進步,并殷切希望能得到前輩的指點,  

   小弟寫的第一個程序是控制三位八段數碼管的顯示,還沒來得及總結,今天下午調試和總結了一下LCD的驅動程序,遇到了很多困難,但也有點小小的收獲,拿出來晾晾,大家盡管扔磚,小弟開卡車兜著...


    TS1620字符型液晶模塊驅動程序編寫苦樂

該LCM的控制器為HD47780,其引腳功能如下:

Pin  1    2    3     4   5    6   7~17      15     16
功能 GND VDD   VO   RS   RW   E   DB0~7      BL+    BL-

說明:
RS:數據/命令選擇,用來選擇DB0~7輸入的是顯示數據還是控制字信息,(H/L)
RW:讀寫選擇,(H/L),在延遲時間足夠的情況下,一般不用讀LCM忙信號,常接地。
E: 使能端,控制DB0~7的數據/命令的寫入或者讀取,上升或下降沿有效。
VO:LCD偏壓信號,用來對調整對比度,一般接10K電位器/電阻到地。
DB0~7:數據I/O,可選擇8位數據或者4位數據(分兩次傳輸)。
BL+:背光電源正輸入 +5V DV。
BL-:背光電源地。
VDD:電源正 +5V DC。
GND:電源地。
編寫驅動:
  流程:
上電LCM自動復位—清屏—設置顯示模式—開顯示和光標設置—設置顯示的起始位置—顯示字符ASCII碼輸入顯示。
  注意事項:
1.    LCM屬于慢顯示器件,其上電后復位的時間比較長,因此,可在系統初始化過程中最后初始化LCM;或者在初始化之前調用20~50ms的延遲子程序。并且,如果系統不需要通過延遲來等待LCM完成每一個操作的話,那么應檢測(讀)LCM忙標志,若不忙(該標志為低電平),那么指令能得到執行,否則指令失效。
2.    由于E輸入的使能是上升沿有效還是下降沿有效存在爭議,該問題在調試中將遇到,還沒來得及分析,愿意與大家一起分析。 
3.    有時候LCM所顯示的結果并不遵循我們原來的意愿,此時,需先檢查程序中,初始化功能是否完成,尤其是在不檢測忙標志的初始化程序中更要注意,可適當延長延遲時間或者重復初始化指令,另外,也要檢查硬件連線是否有錯。
4.      如果與LCM的引腳相連的端口,需注意該端口是否為普通數字端口,比如本例程中,RA口應先設置成普通數字端口。起初我沒有如此設置,結果軟件仿真模式下始終發現對RA口的操作均不能從SFR觀察窗口中發現任何變化...
5.      由于我所用的DEMO板電路圖上,其LCM模塊是由RA和RC來控制的,因此,為了能觀察運行結果,程序中依然采用RA和RC來控制LCM。


下面給出一個例程,該例程在小弟用的仿真器和DEMO板上通過,同時給出調試現象:

1)關于E的使能的問題,如果對LCM 的E輸入腳進行復位置位(先復位或先置位結果均一樣)操作時中間的延時過短或者過長的話,均會出現一些問題:
過短:5ms,運行正常,但在debug中復位后,會有部分字符殘留
特短:3個nop指令,運行后無任何輸出
較長:200ms,運行正常,但debug復位后,所有字符均殘留
一般:50ms,顯示正常,復位后無字符殘留

前輩們能分析一下么?

2)由于采用的顯示模式是16字x2行,發現,如果字符表_table1或者_table2中,偽指令dt定義的字符個數如果小于16的話,那么在該行字符的末尾會出現一些其他的字符,小弟這里出現的是 “||”,后用空格填充至16字符具體原因愿意與大家一起分析。

3) 該程序采用ICD模式調試燒寫,運行正常之后,小弟打算脫機運行,即不燒入調試代碼,但燒寫過程老是停在 PROGRAMMING ID處,取消ID燒入,那么燒寫過程就停在PROGRAMMING program,并且,ICD 就出現 連接錯誤的提示,需重新更改ICD模式至SIM模式下,此時發現ICD的連接指示燈不再閃爍,連接正常了。
(可能問題描述得不夠準確,下次再重現故障,詳細說明...)

4) 另外一個有趣的問題是,PIC16系列的指令系統中應該沒有movfw這一指令,但是,在mplab中,卻發現,諸如movfw VALUE ;(VALUE為一自定義的寄存器變量)卻能通過編譯,而且,功能似乎等同 movf VALUE,W  小弟感到納悶(小弟用的是mplab 5.7full版,該第三方的ICD能直接使用在該版本下..

請前輩指點,如果能談談自己這些年來學習PIC單片機所走過的路就更好了:)


;****************************************************
    list        p=16F877    
    #include    <p16F877.inc>    
    
;定義保護現場用寄存器
w_temp        EQU    0x71        
status_temp    EQU    0x72        
pclath_temp    EQU    0x73

;定義主程序用寄存器
count       EQU     0x74          ; 定義計數寄存器地址
tmp1        EQU     0x75           ; 定義臨時寄存器地址    
x    EQU    0x76        ; 延時子程序外循環計數器
y    EQU    0x77        ; 延時子程序內循環計數器            

;定義LCM控制位常量
RS         EQU     1        ; LCD寄存器選擇信號腳定義在RA.1腳
RW         EQU     2            ; LCD讀/寫信號腳定義在RA.2腳
E          EQU     3            ; LCD片選信號腳定義在RA.3腳


;***該段e文注釋的程序為模板內容
    org     0x000             ; processor reset vector
    nop              ; nop required for icd
      goto    main           ; go to beginning of program

    org     0x004          ; interrupt vector location
    movwf   w_temp        ; save off current W register contents
    movf    STATUS,w     ; move status register into W register
    movwf    status_temp  ; save off contents of STATUS register
    movf    PCLATH,w      ; move pclath register into w register
    movwf    pclath_temp ; save off contents of PCLATH register

; isr code can go here or be located as a call subroutine elsewhere

    movf    pclath_temp,w ; retrieve copy of PCLATH register
    movwf    PCLATH     ; restore pre-isr PCLATH register contents
    movf    status_temp,w&







  本人學習凌陽單片機已經一個多月了,最近在做液晶顯示的時候,遇到一些困難,我拿到一個TS1620-1的液晶,
在網上找了一些程序,結果發現都是基于PIC的程序,經過近一天的調試,終于將程序由PIC改成編成凌陽的程序(注:我用的是凌陽61板)。

        根據我調試的結果來看,1620的指令碼和1602的指令碼應該是一樣的,也就是說,要了解1620的指令碼可以去查1602的相關資料,
它們的性質基本相同。

      以下提供一些網頁鏈接: http://www.xie-gang.com/yjmk.htm

下面說明一下液晶的硬件連接口:

      (1)GND:接地端;

       (2 )      VCC :電源端 ,接5V電源;

       (3)VO:偏壓端:對于1620而言,可以直接接地;

(4)RS:寄存 器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。

(5) RW :       讀寫判斷 ,高 電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,
當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數據。

(6)E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。

第7~14腳:D0~D7為8位雙向數據線。


(15):BL1:液晶背光電源,接5V

(16):BL2:液晶背光接地端。

第15,16端口只是提供了液晶的背光,與液晶的顯示沒有任何關系,故可以不接。。


我的凌陽程序只是讓液晶在第二行第一列顯示一個數字:1

我的IO口是這樣定義的:A口與B口均設置成同相低電平輸出:

          A口0~7位 依次連接液晶數據口 D0~D7, B口的8位連接RS,10位連接RW,12位連接使能EU端;


具體的程序代碼如下:

#include"hardware.h"


void delay1()
{
      int a;
      for(a=0;a<0xffff;a++)
        {
         *Port_Watchdog_Clear=0x0001;
        }   
   
}

void delay2()
{
      int b;
      for(b=0;b<0x00ff;b++)
        {
         *Port_Watchdog_Clear=0x0001;
        }   
   
}

void enable()
{
    
       *Port_IOB_Data&=0xf0ff;                   //RS 置0
       *Port_IOB_Data&=0x0fff;                   //RW置0
       delay2();
       *Port_IOB_Data= *Port_IOB_Data+0x1000;      //使能E置1;
   
} 
  
      int main()

{  
   
       *Port_IOA_Dir=0xffff;
       *Port_IOA_Attrib=0xffff;
       *Port_IOA_Data=0x0000;

       *Port_IOB_Dir=0xffff;
       *Port_IOB_Attrib=0xffff;
       *Port_IOB_Data=0x1000;
   
  
       delay1();

   
       *Port_IOA_Data=0x0001;      //清屏并光標復位
       enable();
       *Port_IOA_Data=0x0038;      //設置顯示模式:8位2行5x7點陣
       enable();
       *Port_IOA_Data=0x000f;      //顯示器開、光標開、光標允許閃爍
       enable();
       *Port_IOA_Data=0x0080;      //文字不動,光標自動右移
      enable(); 
       *Port_IOA_Data=0x00c2;      //寫入顯示起始地址(第二行第一個位置)
      enable();
  
       *Port_IOA_Data=0x0031;      // 數字1 的ASSIC碼
   
   
       *Port_IOB_Data=*Port_IOB_Data+0x0100;        //RS置1;
       *Port_IOB_Data&=0xfbff;                      //RW置0;
       *Port_IOB_Data&=0xefff;                      // 使能E置0;
       delay2();                       //等待完成;
       *Port_IOB_Data=0x1000;        //將使能E重新置1,等待下次;

    
      while(1)
      {
       *Port_Watchdog_Clear=0x0001;
      }  
   
}













/*
時鐘頻率11.0592MHz
T0 為時鐘基準
T1 為串口產生波特率

*/

/*
中斷源            入口地址   C語言

外部中斷0          0003 H      0
定時器0 中斷       000B H      1
外部中斷1          0013 H      2
定時器1 中斷       001B H      3
串行口中斷         0023 H      4
*/
/*
該LCM的控制器為HD47780,其引腳功能如下:

Pin  1    2    3     4   5    6   7~17      15     16
功能 GND VDD   VO   RS   RW   E   DB0~7     BL+    BL-

說明:
1 GND:電源地。
2 VDD:電源正 +5V DC。
3 VO:LCD偏壓信號,用來對調整對比度,一般接10K電位器/電阻到地。
4 RS:數據/命令選擇,用來選擇DB0~7輸入的是顯示數據還是控制字信息,(H/L)
5 RW:讀寫選擇,(H/L),在延遲時間足夠的情況下,一般不用讀LCM忙信號,常接地。
6 E: 使能端,控制DB0~7的數據/命令的寫入或者讀取,上升或下降沿有效。
7-14 DB0~7:數據I/O,可選擇8位數據或者4位數據(分兩次傳輸)。
15 BL+:背光電源正輸入 +5V DV。
16 BL-:背光電源地。

*連線圖:
* DB0---DPROT.0 DB4---DPROT.4 RS-------------P2.5
* DB1---DPROT.1 DB5---DPROT.5 RW-------------P2.6
* DB2---DPROT.2 DB6---DPROT.6 E--------------P2.7
* DB3---DPROT.3 DB7---DPROT.7 VLCD 接10K 可調電阻到GND*
*/
#include<reg51.h>

#include<absacc.h>
#include <intrins.h>
#define DPORT P0

sbit RS = P2^5;
sbit RW = P2^6;
sbit E  = P2^7;

sbit Add_Key   = P2 ^ 1;//前位加1鍵
sbit Add2_Key  = P2 ^ 0;//后位加1鍵
//sbit OK_Key    = P3 ^ 2;//確定鍵
sbit int_Key   = P2 ^ 3;//中斷入口

unsigned Xpos; //列方向地址指針
/*
3,4 Hour
6,7 Minute
9,10 Second
*/
unsigned Ypos; //行方向地址指針

void LcdWcn(unsigned);
void LcdWc(unsigned);
void WriteChar(unsigned);
void LcdPos();
void LcdWd(unsigned);
void LcdWdn(unsigned);

void mDelay(unsigned char Delay)
{ 
 unsigned char i;
 for(;Delay>0;Delay--)
 { 
  for(i=124;i>0;i--)
  {;}
 }
}

/*清屏命令
*/


/*在指定的行與列顯示
*/
void WriteChar(unsigned c)
{ 
 LcdPos();
 LcdWd(c);
}

/*正常讀寫操作之前檢測LCD 控制器
*/
void WaitIdle()
{ 
 unsigned tmp;
 DPORT=0xff;
 RS=0;
 RW=1;
 E=1;
 _nop_();
 for(;;)
 { 
  tmp=DPORT;
  tmp&=0x80;
  if(tmp==0)
   break;
 }
 E=0;
}

/*不檢測忙的寫字符子程序
*/
void LcdWdn(unsigned c)
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区高清| 日韩免费观看高清完整版| 久久不见久久见免费视频1| 一区二区三区四区亚洲| 日韩久久一区二区| 日韩毛片在线免费观看| 亚洲美女偷拍久久| 亚洲影视在线观看| 亚洲mv在线观看| 久热成人在线视频| 国产一区二区精品久久91| 国产乱色国产精品免费视频| 国产精品一线二线三线| 成人午夜免费视频| av电影天堂一区二区在线观看| av亚洲产国偷v产偷v自拍| 91在线精品一区二区| 欧美视频精品在线观看| 91精品国产黑色紧身裤美女| 精品国产免费视频| 中文av一区二区| 一区二区三区四区蜜桃| 国产激情一区二区三区桃花岛亚洲| 蜜桃视频在线一区| 国产福利一区二区三区| 99久久精品国产一区| 欧美影片第一页| 日韩欧美一区二区三区在线| 久久一日本道色综合| 日韩毛片精品高清免费| 日本美女一区二区| 成人激情小说网站| 欧美一卡2卡三卡4卡5免费| 久久久不卡网国产精品二区| 亚洲人成小说网站色在线| 日本一不卡视频| 国产999精品久久久久久| 色婷婷一区二区三区四区| 日韩欧美色综合网站| 中文字幕一区二区三区四区| 麻豆精品久久精品色综合| 91女人视频在线观看| 精品裸体舞一区二区三区| 亚洲免费在线观看视频| 国产精品一区专区| 制服.丝袜.亚洲.另类.中文| √…a在线天堂一区| 精品一区二区三区在线播放视频| 91网站最新网址| 国产三级三级三级精品8ⅰ区| 亚洲精品久久久久久国产精华液| 狠狠色丁香婷综合久久| 欧美日韩国产三级| 亚洲欧美国产77777| 国产精品一区二区免费不卡 | 国产精品久久久爽爽爽麻豆色哟哟 | 国产高清久久久久| 欧美日韩精品系列| 成人欧美一区二区三区在线播放| 精品在线播放午夜| 91精品免费观看| 午夜精品在线看| 日韩亚洲电影在线| 一区二区三区毛片| 色综合天天综合网国产成人综合天 | jizzjizzjizz欧美| 久久九九99视频| 精品一区二区三区在线观看国产 | 国产精品久久久久一区 | 99久久精品99国产精品| 国产日产欧美一区二区视频| 国内精品久久久久影院薰衣草| 欧美群妇大交群中文字幕| 亚洲一级在线观看| 91精彩视频在线| 亚洲精选视频免费看| 色婷婷综合久久久| 亚洲国产精品自拍| 欧美日韩久久不卡| 日韩av电影天堂| 精品久久久久久久久久久院品网 | 色哦色哦哦色天天综合| 亚洲欧洲日韩一区二区三区| 成人黄色软件下载| 亚洲品质自拍视频| 欧美三级在线视频| 午夜精品久久久久久| 91精品婷婷国产综合久久性色| 日本在线不卡视频| 久久婷婷国产综合国色天香| 国产成人亚洲综合色影视| 国产精品污www在线观看| 91免费版在线看| 亚洲不卡av一区二区三区| 日韩一区二区精品在线观看| 国产一区二区在线看| 国产精品蜜臀av| 91国偷自产一区二区开放时间 | 亚洲综合视频网| 91精品欧美福利在线观看| 国产精品一区二区在线观看网站| 国产精品久久福利| 欧美性视频一区二区三区| 美女一区二区视频| 国产精品国产三级国产普通话蜜臀| 色88888久久久久久影院按摩| 亚洲大片一区二区三区| www国产亚洲精品久久麻豆| 99久久久精品| 美女www一区二区| 国产精品福利av | 国产精品一区二区三区99| 亚洲日本成人在线观看| 欧美一级高清片| 色综合久久九月婷婷色综合| 久久99精品国产.久久久久久| 中文字幕免费一区| 日韩一级片网站| 91丨porny丨户外露出| 紧缚奴在线一区二区三区| 亚洲色大成网站www久久九九| 欧美一区二区三区小说| 91蜜桃免费观看视频| 韩日欧美一区二区三区| 亚洲高清视频的网址| 亚洲国产精品成人综合| 欧美一二三四区在线| 欧美亚洲动漫制服丝袜| 成人一区二区在线观看| 蜜桃精品视频在线| 亚洲成a人v欧美综合天堂下载| 国产女人aaa级久久久级 | 在线亚洲一区观看| 国产一区二区电影| 日本不卡不码高清免费观看| **性色生活片久久毛片| 国产农村妇女精品| 久久久久久久久久久久久夜| 宅男噜噜噜66一区二区66| 欧美亚洲精品一区| 91香蕉视频污| 99精品在线免费| 高清免费成人av| 国产福利一区在线| 国产中文字幕一区| 国产一区日韩二区欧美三区| 免费看黄色91| 青青草一区二区三区| 亚洲va在线va天堂| 奇米影视7777精品一区二区| 亚洲高清免费观看高清完整版在线观看| 国产精品国产三级国产有无不卡| 久久奇米777| 久久精品一区二区三区av| 久久精品在线免费观看| 国产日韩精品一区| 国产精品久久久久天堂| 亚洲人成网站影音先锋播放| 亚洲欧美日韩一区二区三区在线观看| 综合电影一区二区三区| 亚洲欧美日韩一区二区| 亚洲二区在线视频| 日本不卡的三区四区五区| 久草精品在线观看| 国产成a人亚洲精| av亚洲产国偷v产偷v自拍| 91精品1区2区| 欧美一级片免费看| 久久免费国产精品| 国产精品日韩精品欧美在线| 亚洲欧美日韩小说| 日韩av一区二区在线影视| 精品一区精品二区高清| 成人黄色av网站在线| 91国产福利在线| 欧美一区二区日韩一区二区| 精品国免费一区二区三区| 欧美精彩视频一区二区三区| 亚洲人成网站色在线观看| 天堂va蜜桃一区二区三区| 韩国视频一区二区| 91在线视频免费观看| 日韩一区二区三区电影在线观看| 久久你懂得1024| 亚洲线精品一区二区三区| 国内不卡的二区三区中文字幕| 成人18精品视频| 日韩午夜在线观看| 亚洲婷婷综合色高清在线| 日本中文字幕一区二区有限公司| 国产精品白丝jk黑袜喷水| 欧美午夜精品一区二区三区| 久久综合久久鬼色| 亚洲成在线观看| 成人综合在线观看| 日韩欧美第一区| 亚洲一区自拍偷拍| 不卡av在线免费观看| 日韩精品一区二区三区中文精品| 亚洲精品中文在线影院|