2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  微機原理及應(yīng)用A</b></p><p><b>  課程設(shè)計</b></p><p>  題目: 12864字符圖形LCD顯示</p><p><b>  組別: </b></p><p><b>  班級: </b>

2、;</p><p><b>  目錄</b></p><p><b>  簡介4</b></p><p><b>  目的4</b></p><p><b>  基本功能要求4</b></p><p><b>  實

3、驗情況4</b></p><p><b>  基本原理6</b></p><p><b>  硬件連接圖6</b></p><p><b>  IO譯碼7</b></p><p>  8255功能設(shè)定7</p><p><b&

4、gt;  LCD功能設(shè)定8</b></p><p><b>  程序流程10</b></p><p><b>  編程實現(xiàn)11</b></p><p><b>  測試方案19</b></p><p><b>  測試結(jié)果19</b>

5、</p><p><b>  課設(shè)總結(jié)19</b></p><p><b>  簡介</b></p><p><b>  目的</b></p><p>  掌握8255并行接口芯片的內(nèi)部結(jié)構(gòu)和引腳,工作方式選擇,端口配置,使用方法和編程</p><p>

6、;  查閱LCD12864圖形顯示液晶芯片資料,掌握其顯示原理,引腳分布,硬件接口,工作方式,與MCU連接時序,寫命令和寫數(shù)據(jù)的方法,用戶指令集,擴充指令集,圖形顯示坐標,漢字顯示坐標,字符集,</p><p>  LCD12864和8255初始化程序編程方法</p><p><b>  基本功能要求</b></p><p>  使用8255與

7、LCD12864顯示模塊,編程在LCD中心位置顯示漢字字符串“32微機原理及課程設(shè)計”</p><p>  編程從LCD中間最右端開始,人右向左滾動顯示“32位微機原理及課程設(shè)計”</p><p><b>  實驗情況</b></p><p>  第一屏:在LCD12864第二行和第三行顯示“西安理工大學(xué)”,“微機原理課設(shè)”</p>

8、<p>  第二屏:循環(huán)滾動顯示“西安理工大學(xué)”</p><p><b>  右邊界如圖:</b></p><p><b>  西</b></p><p><b>  西安</b></p><p><b>  西安理</b></p>

9、;<p><b>  西安理工</b></p><p><b>  西安理工大</b></p><p><b>  西安理工大學(xué)</b></p><p><b>  左邊界如圖:</b></p><p><b>  西安理工大學(xué)&l

10、t;/b></p><p><b>  安理工大學(xué)</b></p><p><b>  理工大學(xué)</b></p><p><b>  工大學(xué)</b></p><p><b>  大學(xué)</b></p><p><b>

11、  學(xué)</b></p><p>  第三屏:顯示2組頭像</p><p><b>  基本原理</b></p><p><b>  硬件連接圖</b></p><p><b>  IO譯碼</b></p><p><b>  825

12、5功能設(shè)定</b></p><p><b>  工作方式選擇</b></p><p>  00:方式0 端口A(PA0~PA7)端口C</p><p><b>  01:方式1</b></p><p><b>  10:方式2</b></

13、p><p><b>  LCD功能設(shè)定</b></p><p><b>  引腳說明</b></p><p><b>  八位并行時序圖</b></p><p>  MCU寫資料到LCD</p><p>  MCU從模塊讀出資料</p><

14、;p><b>  程序用到基本的指令</b></p><p>  程序用到的擴展指令集</p><p><b>  漢字顯示坐標</b></p><p>  顯示資料RAM(DDRAM)</p><p>  顯示半寬字形:把8位元資料寫入DDRAM范圍:02H~7FH</p>&

15、lt;p>  顯示CGRAM字形:把16位元資料寫入DDRAM</p><p>  顯示中文字形:將16位元寫入DDRAMK范圍:A1A1H~F7FEH</p><p>  繪圖RAM(GDRAM)</p><p><b>  關(guān)閉繪圖功能</b></p><p>  先將Y坐標寫入到GDRAM</p>

16、<p>  再將X坐標寫入到GDRAM</p><p>  D15~D8寫入到RAM</p><p>  D7~D0寫入到RAM</p><p><b>  打開繪圖功能</b></p><p><b>  程序流程</b></p><p><b> 

17、 編程實現(xiàn)</b></p><p><b>  MAIN函數(shù)</b></p><p>  void main() </p><p><b>  {</b></p><p>  unsig

18、ned int i=9,j=0,k=1;</p><p>  printf("Press any key to begin!\n\n");</p><p><b>  getch();</b></p><p>  while(!Startup());// 打開設(shè)備</p><p>  Port

19、WriteByte(0x28b,0x80);/*設(shè)8255為方式0,C口輸出,A口輸出*/</p><p><b>  clear();</b></p><p>  while(!kbhit())</p><p><b>  {</b></p><p><b>  flush();<

20、;/b></p><p>  fist_Display();//第一屏顯示</p><p>  Sleep(1000);</p><p>  move_xaut_Right();//右邊界滾動</p><p>  move_xaut_Left();//左邊界滾動</p><p>  move_x

21、aut_Right();</p><p>  drawpic(&display_pic[0]);//顯示圖像</p><p><b>  }</b></p><p>  Cleanup();/*關(guān)閉設(shè)備*/</p><p><b>  }</b></p><p&

22、gt;<b>  寫命令時序</b></p><p>  void cmdsetup()</p><p><b>  {</b></p><p>  PortWriteByte(0x28a,0x00);//RS、RW拉低</p><p>  Sleep(1);</p><

23、p>  PortWriteByte(0x28a,0x04);//E拉高</p><p>  Sleep(1);</p><p>  PortWriteByte(0x28a,0x00);//E拉低</p><p>  Sleep(1);</p><p><b>  }</b></p>&

24、lt;p><b>  寫數(shù)據(jù)時序</b></p><p>  void datasetup()</p><p><b>  {</b></p><p>  PortWriteByte(0x28a,0x01);//RS高,RW低</p><p>  Sleep(1);</p>

25、<p>  PortWriteByte(0x28a,0x05);//E高</p><p><b>  Sleep(1);</b></p><p>  PortWriteByte(0x28a,0x01);//E低</p><p><b>  Sleep(1);</b></p><

26、p><b>  }</b></p><p>  第一屏顯示“西安理工大學(xué)”,“微機原理課設(shè)”</p><p>  void fist_Display()</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  P

27、ortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x91);</p><p>  cmdsetup();</p><p>  Sleep(10);</p><p>  for (i=0;i<12;)<

28、/p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_xaut[i++]);</p><p>  datasetup(); </p><p>  PortWriteByte(0x288,display_xaut[i++]);</p><p&

29、gt;  datasetup();</p><p><b>  }</b></p><p>  PortWriteByte(0x288,0x89);</p><p>  cmdsetup();</p><p>  Sleep(10);</p><p>  for (i=0;i<12;)<

30、;/p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_design[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,display_design[i++]);</p><p

31、>  datasetup();</p><p><b>  }</b></p><p><b>  }</b></p><p>  顯示圖像初始化LCD</p><p>  void draw_pic_init()</p><p><b>  {</b&

32、gt;</p><p>  LcdWcom(0x03);</p><p><b>  Sleep(1);</b></p><p>  LcdWcom(0x0c);</p><p><b>  Sleep(1);</b></p><p>  LcdWcom(0x01);<

33、/p><p><b>  Sleep(1);</b></p><p><b>  }</b></p><p><b>  繪圖函數(shù)</b></p><p>  void drawpic(unsigned char *p)</p><p><b> 

34、 {</b></p><p>  unsigned char i, j;</p><p>  draw_pic_init();</p><p>  LcdWcom(0x36);</p><p><b>  Sleep(2);</b></p><p>  LcdWcom(0x36);&

35、lt;/p><p><b>  Sleep(2);</b></p><p>  LcdWcom(0x3e);</p><p><b>  Sleep(2);</b></p><p>  LcdWcom(0x01);</p><p>  for(i=0;i<32;i++)&l

36、t;/p><p><b>  {</b></p><p>  LcdWcom(0x80+i);</p><p>  LcdWcom(0x80);</p><p>  for(j=0;j<16;j++)</p><p><b>  {</b></p><p

37、>  LcdWdata(*p++);</p><p><b>  }</b></p><p><b>  }</b></p><p>  for(i=0;i<32;i++)</p><p><b>  {</b></p><p>  LcdW

38、com(0x80+i);</p><p>  LcdWcom(0x88);</p><p>  for(j=0;j<16;j++)</p><p><b>  {</b></p><p>  LcdWdata(*p++);</p><p><b>  }</b><

39、/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  刷新函數(shù)</b></p><p>  void flush()</p><p><b>  {</b></p>&l

40、t;p>  PortWriteByte(0x288,0x36);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x30);</p><p>  cmdsetup();</p><p><b>  }</b></p><p><

41、b>  右邊界滾進</b></p><p>  void move_xaut_Right()</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  PortWriteByte(0x288,0x01);</p><p> 

42、 cmdsetup();</p><p>  PortWriteByte(0x288,0x97);</p><p>  cmdsetup();</p><p>  for(i=0;i<2;)</p><p><b>  {</b></p><p>  PortWriteByte(0x288

43、,display_Right1[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,display_Right1[i++]);</p><p>  datasetup();</p><p><b>  }</b></p><p>

44、  Sleep(100);</p><p>  PortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x96);</p><p>  cmdsetup();</p><p>  for(i=0;i<4;)&

45、lt;/p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_Right2[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,display_Right2[i++]);</p><

46、;p>  datasetup();</p><p><b>  }</b></p><p>  Sleep(100);</p><p>  PortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x2

47、88,0x95);</p><p>  cmdsetup();</p><p>  for(i=0;i<6;)</p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_Right3[i++]);</p><p>  dataset

48、up();</p><p>  PortWriteByte(0x288,display_Right3[i++]);</p><p>  datasetup();</p><p><b>  }</b></p><p>  Sleep(100);</p><p>  PortWriteByte(0x

49、288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x94);</p><p>  cmdsetup();</p><p>  for(i=0;i<8;)</p><p><b>  {</b></p>

50、<p>  PortWriteByte(0x288,display_Right4[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,display_Right4[i++]);</p><p>  datasetup();</p><p><b>  

51、}</b></p><p>  Sleep(100);</p><p>  PortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x93);</p><p>  cmdsetup();</p&g

52、t;<p>  for(i=0;i<10;)</p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_Right5[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,dis

53、play_Right5[i++]);</p><p>  datasetup();</p><p><b>  }</b></p><p>  Sleep(100);</p><p>  PortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p&

54、gt;<p>  PortWriteByte(0x288,0x92);</p><p>  cmdsetup();</p><p>  for(i=0;i<12;)</p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_Right6[i+

55、+]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,display_Right6[i++]);</p><p>  datasetup();</p><p><b>  }</b></p><p>  Sleep(100);</

56、p><p>  PortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x91);</p><p>  cmdsetup();</p><p>  for(i=0;i<12;)</p><p&

57、gt;<b>  {</b></p><p>  PortWriteByte(0x288,display_Right6[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,display_Right6[i++]);</p><p>  datasetup

58、();</p><p><b>  }</b></p><p>  Sleep(100);</p><p>  PortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x90);</p&g

59、t;<p>  cmdsetup();</p><p>  for(i=0;i<12;)</p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_Right6[i++]);</p><p>  datasetup();</p>

60、<p>  PortWriteByte(0x288,display_Right6[i++]);</p><p>  datasetup();</p><p><b>  }</b></p><p>  Sleep(100);</p><p><b>  }</b></p>

61、<p><b>  右邊界滾出</b></p><p>  void move_xaut_Left()</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  PortWriteByte(0x288,0x01);</p>

62、<p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x90);</p><p>  cmdsetup();</p><p>  for(i=0;i<10;)</p><p><b>  {</b></p><p>  PortWr

63、iteByte(0x288,display_Left1[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,display_Left1[i++]);</p><p>  datasetup();</p><p><b>  }</b></p>

64、<p>  Sleep(100);</p><p>  PortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x90);</p><p>  cmdsetup();</p><p>  for(i=

65、0;i<8;)</p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_Left2[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,display_Left2[i++]);</p

66、><p>  datasetup();</p><p><b>  }</b></p><p>  Sleep(100);</p><p>  PortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWrit

67、eByte(0x288,0x90);</p><p>  cmdsetup();</p><p>  for(i=0;i<6;)</p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_Left3[i++]);</p><p> 

68、 datasetup();</p><p>  PortWriteByte(0x288,display_Left3[i++]);</p><p>  datasetup();</p><p><b>  }</b></p><p>  Sleep(100);</p><p>  PortWrite

69、Byte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x90);</p><p>  cmdsetup();</p><p>  for(i=0;i<4;)</p><p><b>  {</b><

70、;/p><p>  PortWriteByte(0x288,display_Left4[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,display_Left4[i++]);</p><p>  datasetup();</p><p><b&

71、gt;  }</b></p><p>  Sleep(100);</p><p>  PortWriteByte(0x288,0x01);</p><p>  cmdsetup();</p><p>  PortWriteByte(0x288,0x90);</p><p>  cmdsetup();<

72、;/p><p>  for(i=0;i<2;)</p><p><b>  {</b></p><p>  PortWriteByte(0x288,display_Left5[i++]);</p><p>  datasetup();</p><p>  PortWriteByte(0x288,

73、display_Left5[i++]);</p><p>  datasetup();</p><p><b>  }</b></p><p>  Sleep(100);</p><p><b>  }</b></p><p><b>  漢字編碼</b>

74、;</p><p>  unsigned char display_xaut[12]={0xce,0xf7,0xb0,0xb2,0xc0,0xed,0xb9,0xa4,0xb4,0xf3,0xd1,0xa7};</p><p>  // 西 / 安/理 /工/大/學(xué)</p><p>  unsigned char display_de

75、sign[12]={0xce,0xa2,0xbb,0xfa,0xd4,0xad,0xc0,0xed,0xbf,0xce,0xc9,0xe8};</p><p>  // 微 機 原 理 課 設(shè)</p><p><b>  測試方案</b></p><p><b>  測試結(jié)果</b&

76、gt;</p><p><b>  課設(shè)總結(jié)</b></p><p>  學(xué)會軟件和硬件協(xié)調(diào)開發(fā)的方法,首先搭建原理圖,再進進行軟件開發(fā),下載到MCU,進行調(diào)試</p><p>  通過查閱芯片數(shù)據(jù)手冊進行硬件開發(fā),了解芯片時序圖,例如LCD芯片時序,RW, RS ,E三者之間的時序關(guān)系</p><p>  8255初始

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論