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

標題: LPC2138+LCD12864顯示實時時鐘程序 keil與proteus聯(lián)調(diào) [打印本頁]

作者: x101020    時間: 2019-6-10 02:58
標題: LPC2138+LCD12864顯示實時時鐘程序 keil與proteus聯(lián)調(diào)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


近年來,隨著計算機技術及集成電路技術的發(fā)展,嵌入式技術日漸普及,在通訊、網(wǎng)絡、工控、醫(yī)療、電子等領域發(fā)揮著越來越重要的作用。嵌入式系統(tǒng)無疑成為當前最熱門最有發(fā)展前途的IT應用領域之一。32位嵌入式系統(tǒng)發(fā)展很快,32位單片機已逐漸占領8位機的市場,并以很高的性價比贏得了越來越多的用戶的青睞。隨著科技和工藝的進步,32位單片機的優(yōu)勢會更加突顯出來,將會成為嵌入式系統(tǒng)的主流。在32位嵌入式系統(tǒng)中,基于ARM的應用占據(jù)了大部分份額。

     實時時鐘(RTC)器件是一種能提供日歷/時鐘、數(shù)據(jù)存儲等功能的專用集成電路,常用作各種計算機系統(tǒng)的時鐘信號源和參數(shù)設置存儲電路。RTC具有計時準確、耗電低和體積小等特點,特別適用于在各種嵌入式系統(tǒng)忠記錄事件發(fā)生的時間和相關信息,尤其是在通信工程、電力自動化、工業(yè)控制等自動化程度較高領域的無人職守環(huán)境。隨著集成電路技術的不斷發(fā)展,RTC器件的新品也不斷推出。這些新品不僅具有準確的RTC,還有大容量的存儲器、溫度傳感器和A/D數(shù)據(jù)采集通道等,已成為集RTC、數(shù)據(jù)采集和存儲于一體的綜合功能器件,特別適用于以微控制器為核心的嵌入式系統(tǒng)。
本次設計是采用LPC2138的32位芯片設計的可調(diào)萬年歷,具有調(diào)時、調(diào)分、調(diào)月、調(diào)日和準點報時的功能。當整點時,蜂鳴器響的次數(shù)為當時小時的值以及LED會閃爍相應的次數(shù)。

一、功能說明 1
二、系統(tǒng)硬件設計 1
21 系統(tǒng)結(jié)構(gòu) 1
22元器件的選擇 2
三、系統(tǒng)軟件設計 3
31程序和芯片的初始化 3
32構(gòu)建功能模塊 4
四、實驗測試 7
41IAR軟件的編譯,連接和運行 7
42protues仿真軟件的聯(lián)合調(diào)試 8
五、實驗結(jié)果 9
51仿真結(jié)果 9
52實驗板結(jié)果 10
六、心得體會 11
七、程序清單 11

一、功能說明
利用內(nèi)部RTC的實時時鐘,制作一個時鐘,通過液晶顯示模塊顯示年、月、日和時間。K1鍵、K2鍵、K3鍵和K4鍵分別可用于調(diào)整月份、日、小時和分鐘數(shù)。在調(diào)整過程中,日期和時鐘以新的時間為起點繼續(xù)刷新顯示。同時,該設計具有整點報時的功能,當整點時,蜂鳴器響的次數(shù)為當時小時的值以及LED會閃爍相應的次數(shù)。
本設計采用的是OCM128128液晶顯示模塊是128×128點陣型液晶顯示模塊,可顯示各種字符及圖形,可與CPU直接接口,具有8位標準數(shù)據(jù)總線、6條控制線及電源線。采用T6963C驅(qū)動IC進行控制。本實驗板中采用的是3.3V的液晶模塊,可以直接連接到LPC2138的GPIO上,而不需要進行電平轉(zhuǎn)換。
二、系統(tǒng)硬件設計2.1 系統(tǒng)結(jié)構(gòu)
本實驗是基于LPC2138ARM處理器而設計的實時時鐘,綜合性較強,涉及到RTC外部中斷,引腳的GPIO功能,C語言編程等知識。
首先要定義P0口為基本I\O功能,然后通過引腳功能選擇寄存器PINSEL0及PINSEL1定義輸入輸出外部中斷口所在的位,另外還要對外部中斷進行初始化,其中有規(guī)定他們的優(yōu)先級,中斷觸發(fā)方式,中斷地址分配,
本實驗采用液晶模塊OCM128128同時顯示實時時間,同樣要對他們進行初始化,包括檢查總線忙與閑,傳送地址,傳送數(shù)據(jù)及顯示函數(shù)的編程、
LPC2138微控制器自帶有一個實時時鐘RTC帶日歷和時鐘功能,要使用它也要進行一下的基本操作:
設置RTC基準時鐘分頻器
初始化RTC的時鐘值如,YEAR,MONTH,HOUR等
啟動RTC即CCR的CLKEN位職位
讀取完整時間寄存器值或等待中斷。
陳述完以上的模塊初始化后,下面簡要說明一下程序的流程。先調(diào)用以上各個模塊的初始化函數(shù)lcd_int(),RTCint()。然后開啟RTC時鐘,并調(diào)用LCD顯示函數(shù)SendTimetRtc(),如果沒用中斷發(fā)生就判斷實時時間是否與以設定的報警時間相同,如果相同就馬上接通蜂鳴器報警并且點亮LED燈。假如有中斷發(fā)生,在無效狀態(tài)下,馬上給中斷標志寄存器EXTINT對應位,然后寫1清零,然后轉(zhuǎn)到中斷服務程序。
根據(jù)項目要求,確定該系統(tǒng)的設計方案,圖2-1為該系統(tǒng)設計方案的結(jié)構(gòu)框圖。硬件電路由6個部分組成,即ARMLPC2138處理器、時鐘電路、復位電路、液晶顯示模塊、時間調(diào)整模塊、整點報時模塊。

2.2元器件的選擇
選用嵌入式arm 7系列的LPC2138芯片和LCDPG128128a顯示器:

三、系統(tǒng)軟件設計
3.1程序和芯片的初始化
程序中包括:Lcd的初始化:
void init_lcd (void)
{
  IO0CLR=rst;
  IO0SET=rst;
  delay1(50);
  IO0CLR=ce;
  IO0SET=wr;
  IO0SET=rd;
wr_xd(addr_w,0x40);                  //文本顯示區(qū)首地址
wr_xd(addr_t,0x42);                   //圖形顯示區(qū)首地址
wr_td(width,0x00,0x41);              //文本顯示區(qū)寬度
wr_td(width,0x00,0x43);              //圖形顯示區(qū)寬度
wr_comm(0x81);                       //邏輯"異或"
wr_td(0x56,0x00,0x22);               //CGRAM偏置地址設置
wr_comm(0x9c);                        //啟用文本顯示,啟用圖形顯示
}
中斷向量的初始化:
VICIntSelect =0x00000000;                                                                                         
  VICVectCntl0 = 0x20|13;                     
  VICVectAddr0 = (uint32)RTC_int;            
   ILR=0x03;                                                                                                                     
  VICIntEnable = (1<<13);                                                                                             
  __enable_irq();


RTC的初始化:
void  RTC_int(void)
{  
   uint32 i,h;
   uint8hh[2];
   h=HOUR;
   hh[0] =HOUR /10+0x30;
   hh[1] =HOUR%  10+0x30;

  clrram();                //清屏
  disp_img(0,16,64,nBitmapDot);   //顯示圖畫
  disp_zf(0,12,"Current Time:");

   for(i=0;i<2;i++)
    {
       disp_zfyg(13+i,12,hh);
    }
  for(i=0;i<h;i++)
   {
    IO0CLR=LED;
    IO0SET=BEAK;
    DelayNS(30);
    IO0SET=LED;
    IO0CLR=BEAK;
    DelayNS(30);
   }      
  ILR = 0x03;                                                                                                                           
  VICVectAddr= 0x00;
clrram();                //清屏
}


3.2構(gòu)建功能模塊
調(diào)整時間和日期的函數(shù)
void key()
{
   if((IO0PIN&ATH)==0)
       {
          CIIR=0x00;
          HOUR++;
          if(HOUR>23)HOUR=0;     
          CIIR=0x04;
         while((IO0PIN&ATH)==0);  
       }
        if((IO0PIN&ATM)==0)
       {
          CIIR=0x00;
          MIN++;
          if(MIN>59)  MIN=0;      
          CIIR=0x04;
         while((IO0PIN&ATM)==0);
       }
    if((IO0PIN&ATS)==0)
       {
          CIIR=0x00;
          MONTH++;   
           if(MONTH>12)  MONTH=0;  
          CIIR=0x04;
         while((IO0PIN&ATS)==0);
       }
      if((IO0PIN&ATD)==0)
       {
          CIIR=0x00;
          DOM++;   
          CIIR=0x04;
         while((IO0PIN&ATD)==0);
       }
}
延時函數(shù)
void  DelayNS(uint32  dly)
{  uint32  i;
   for(; dly>0; dly--)
      for(i=0; i<50000; i++);
}
整點報時函數(shù)
void   RTC_int(void)
{  
   uint32 i,h;
   uint8 hh[2];
   h=HOUR;
   hh[0] = HOUR /10+0x30;
   hh[1] = HOUR%  10+0x30;
  
   clrram();                //清屏
   disp_img(0,16,64,nBitmapDot);    //顯示圖畫
   disp_zf(0,12,"CurrentTime:");
    for(i=0;i<2;i++)
    {
        disp_zfyg(13+i,12,hh);
    }
   for(i=0;i<h;i++)
   {
     IO0CLR=LED;
     IO0SET=BEAK;
     DelayNS(30);
     IO0SET=LED;
     IO0CLR=BEAK;
     DelayNS(30);
   }      
  ILR = 0x03;                                
  VICVectAddr = 0x00;
  clrram();                //清屏
}

輸出字符串函數(shù)
void disp_zf(uint32 x,uint32 y,uint8 *str)
{
char c;
wr_xd((addr_w+16*y+x),0x24);
wr_comm(0xb0);
while(*str!='\0')
{
c = (*str);
wr_auto(c-32);
str++;
}
wr_comm(0xb2);
}
輸出一個字符的函數(shù)
void disp_zfyg(uint32 x,uint32 y,uint8 str)
{
char c;
wr_xd((addr_w+16*y+x),0x24);
wr_comm(0xb0);
c = str;
wr_auto(c-32);
wr_comm(0xb2);
}
四、實驗測試4.1IAR軟件的編譯,連接和運行
構(gòu)建完整的程序:
添加頭文件,中斷處理匯編程序段,初始化函數(shù)和主函數(shù):

4.2protues仿真軟件的聯(lián)合調(diào)試
   為LPC2138芯片選擇Hex文件路徑:
五、實驗結(jié)果5.1仿真結(jié)果
5.2實驗板結(jié)果

六、心得體會
眾所周知,ARM微處理器功能特別的強大,與MC51單片機相比,它更適合做中高端數(shù)字系統(tǒng)的微處理器,ARM已經(jīng)成了現(xiàn)代主流微處理器內(nèi)核,目前,絕大多數(shù)碼產(chǎn)品,如,手機,MP3,MP4,數(shù)碼相機,他們的系統(tǒng)都嵌入了ARM系列內(nèi)核,ARM微處理器更新?lián)Q代很快,現(xiàn)在的諾基亞N系列智能手機如N78,N79已經(jīng)采用了ARM11了,使得運行于塞班操作系統(tǒng)S60第三版的應用程序流暢自如。
       回顧起此次設計,至今我仍感慨頗多,從理論到實踐,在整整半個月的日子里,我學到很多很多的東西,不僅鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的內(nèi)容。通過這次設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才是真正的知識,才能提高自己的實際動手能力和獨立思考的能力。在設計的過程遇到了各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,通過這次設計,把以前所學過的知識重新溫故,鞏固了所學的知識。

七、程序清單


全部資料51hei下載地址:
f742b19390cf1f8d6846f64f49a49657.rar (193.42 KB, 下載次數(shù): 193)


作者: cwbin    時間: 2020-6-11 09:18
nice!
很好的一篇帖子!
非常有意義,
適合于學習交流!
作者: 513514991    時間: 2020-6-20 11:14
仿真里面沒有k1-4這四個鍵
作者: 969981419    時間: 2020-6-23 20:46
有沒有具體的講解啊  看不懂

作者: alingsss    時間: 2020-6-29 06:26
很棒,仿真也清晰,講解也不錯
作者: Llllldbndbd    時間: 2021-3-27 12:30
文件里的Proteus電路圖是要自己畫嗎
作者: zhyaaaa    時間: 2021-6-13 16:48
謝謝!我可以試試
作者: 兩個搗蛋    時間: 2025-1-20 15:31
大神,有LPC2138芯片包嗎?我也自學下單片機。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲综合色视频在线观看 | av一区在线 | 欧美精品综合 | 久久不卡日韩美女 | 久久久人成影片免费观看 | 超碰精品在线观看 | 日本精品视频在线 | 99成人| 国产 欧美 日韩 一区 | 国产欧美精品区一区二区三区 | 爱爱免费视频网站 | 欧美日韩1区2区 | 美国一级毛片a | 不卡的av在线 | 日韩精品在线一区 | 国户精品久久久久久久久久久不卡 | 欧美一区二区三区在线观看视频 | 91免费小视频 | 成人二区| 精品国产乱码久久久久久蜜退臀 | 欧美日韩亚洲视频 | 亚洲高清视频一区 | 夜夜骑首页 | 亚洲免费三级 | 国产精品久久久久久久久久久久冷 | 久久噜 | 成人毛片在线观看 | 成人欧美日韩一区二区三区 | 99久热在线精品视频观看 | 久久久久久国产 | 在线观看视频91 | 欧美精品电影一区 | 亚洲视频www| 在线色网| 岛国av在线免费观看 | 成人精品系列 | 成人午夜在线 | a黄毛片| 欲色av | 狠狠做深爱婷婷综合一区 | 日本一区二区高清视频 |