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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 10743|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

LPC2138+LCD12864顯示實(shí)時(shí)時(shí)鐘程序 keil與proteus聯(lián)調(diào)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


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

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

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

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

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

三、系統(tǒng)軟件設(shè)計(jì)
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偏置地址設(shè)置
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);   //顯示圖畫(huà)
  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í)間和日期的函數(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í)函數(shù)
void  DelayNS(uint32  dly)
{  uint32  i;
   for(; dly>0; dly--)
      for(i=0; i<50000; i++);
}
整點(diǎn)報(bào)時(shí)函數(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);    //顯示圖畫(huà)
   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);
}
輸出一個(gè)字符的函數(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);
}
四、實(shí)驗(yàn)測(cè)試4.1IAR軟件的編譯,連接和運(yùn)行
構(gòu)建完整的程序:
添加頭文件,中斷處理匯編程序段,初始化函數(shù)和主函數(shù):

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

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

七、程序清單


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

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:775816 發(fā)表于 2020-6-11 09:18 | 只看該作者
nice!
很好的一篇帖子!
非常有意義,
適合于學(xué)習(xí)交流!
回復(fù)

使用道具 舉報(bào)

板凳
ID:672798 發(fā)表于 2020-6-20 11:14 來(lái)自手機(jī) | 只看該作者
仿真里面沒(méi)有k1-4這四個(gè)鍵
回復(fù)

使用道具 舉報(bào)

地板
ID:677001 發(fā)表于 2020-6-23 20:46 | 只看該作者
有沒(méi)有具體的講解啊  看不懂
回復(fù)

使用道具 舉報(bào)

5#
ID:792374 發(fā)表于 2020-6-29 06:26 | 只看該作者
很棒,仿真也清晰,講解也不錯(cuò)
回復(fù)

使用道具 舉報(bào)

6#
ID:856429 發(fā)表于 2021-3-27 12:30 | 只看該作者
文件里的Proteus電路圖是要自己畫(huà)嗎
回復(fù)

使用道具 舉報(bào)

7#
ID:861258 發(fā)表于 2021-6-13 16:48 | 只看該作者
謝謝!我可以試試
回復(fù)

使用道具 舉報(bào)

8#
ID:1143234 發(fā)表于 2025-1-20 15:31 | 只看該作者
大神,有LPC2138芯片包嗎?我也自學(xué)下單片機(jī)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产一区二区电影 | 97久久精品 | 国产成人精品久久二区二区91 | 国产成人免费视频网站视频社区 | 欧美日韩中文在线观看 | 美女视频一区二区三区 | 成人久草 | 国产黄色av网站 | 欧美中文一区 | h免费观看 | 人人擦人人 | 天天色图 | 国产午夜精品理论片a大结局 | 在线看亚洲 | 久久久久久国产 | 欧美中文字幕一区二区 | 精品视频一区二区三区 | 国产成人综合一区二区三区 | 综合视频在线 | 91av导航 | 中国三级黄色录像 | 国产高清视频在线观看播放 | 日韩av在线一区二区三区 | 黄色亚洲 | 日韩精品一区二区三区在线观看 | 操人网站 | 亚洲欧美中文字幕在线观看 | 亚洲综合一区二区三区 | 亚洲久视频 | 在线欧美亚洲 | 国产精品综合久久 | 国产成人av在线 | 91看片| 日韩一区二区三区四区五区 | 日韩中文在线视频 | 91精品一区 | 95国产精品| 欧美在线一区二区三区 | 青青艹在线视频 | 国产日韩av一区二区 | 亚洲欧美一区二区三区在线 |