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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3904|回復(fù): 1
收起左側(cè)

51單片機(jī)12864大液晶屏proteus仿真+源程序

[復(fù)制鏈接]
ID:429921 發(fā)表于 2020-7-9 11:44 | 顯示全部樓層 |閱讀模式
該仿真由12864和51單片機(jī)組成。
按下按鍵按什么就可以在12864上面顯示什么。通過這個(gè)代碼可以粗略的學(xué)習(xí)如何在proteus上面使用12864液晶顯示屏。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51黑1.png

單片機(jī)源程序如下:
  1. //*************************************************************************************************
  2. //*************************************************************************************************
  3. //**<程序名>:俄羅斯方塊游戲                                                                                                                                          **
  4. //**<版本說明>:此版是第一版,在LCD1608第4版基礎(chǔ)上改進(jìn)而來,目前只可以繪制游戲區(qū)域的邊框。                 **
  5.                                                                                  **
  6. //*************************************************************************************************
  7. //*************************************************************************************************

  8. //*************************************************************************************************
  9. //*                                                                                                                                                                                                  *
  10. //*                         ******************************頭文件及宏定義**************************                                  *
  11. //*                                                                                                                                                                                                  *
  12. //*************************************************************************************************
  13. #include "includes.h"


  14. #define TIME1H 0x3C
  15. #define TIME1L 0xB0                //定時(shí)器1溢出時(shí)間:50ms

  16. #define SCANPORT P1


  17. //*************************************************************************************************
  18. //*                                                                                                                                                                                                  *
  19. //*                         ******************************全局變量************************************                          *
  20. //*                                                                                                                                                                                                  *
  21. //*************************************************************************************************

  22. //unsigned char code uca_TEST[]={0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0};
  23. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  24. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<防抖動(dòng)標(biāo)志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  25. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  26. bit b_KeyShock=0;                                          //鍵盤防抖動(dòng)標(biāo)志位。
  27.                                                                         //當(dāng)按鍵中斷產(chǎn)生時(shí),首先判斷此位。
  28.                                                                         //0--執(zhí)行鍵盤掃描及鍵碼處理程序;1--不執(zhí)行。

  29. bit b_KillShock=0;                                        //防抖標(biāo)志清除位:0--不清除;1--清除。

  30. unsigned char uc_KillCount=0;                //抖動(dòng)標(biāo)志清除計(jì)數(shù),使用定時(shí)器1。


  31. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  32. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<鍵盤掃描開啟標(biāo)志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  33. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  34. bit b_KeyScan=0;                                        //0--不掃描;
  35.                                                                         //1--掃描。


  36. //*************************************************************************************************
  37. //*                                                                                                                                                                                                  *
  38. //*                          ********************************主函數(shù)******************************                                  *
  39. //*                                                                                                                                                                                                  *
  40. //*************************************************************************************************


  41. /*********************** main ************************/
  42. void main(void)
  43. {

  44.         vLCDInitialize();

  45.         vShowOneChin(0,0,uca_QING);
  46.         vShowOneChin(2,0,uca_SHU);
  47.         vShowOneChin(4,0,uca_RU);
  48.         vShowOneChin(6,0,uca_MAOHAO);

  49.         vShowGraph(2,60,32,4,uca_Pig);
  50.         vShowFrame();

  51.         SCANPORT=0x0F;
  52.        
  53. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中斷0,用于開啟鍵盤掃描及鍵碼處理標(biāo)志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  54.         IT0=1;                         //        中斷方式:下降沿。
  55.         EX0=1;                         //        開啟外部中斷。


  56. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定時(shí)器1,用于防抖動(dòng)標(biāo)志清除 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  57.         TH1=TIME1H;
  58.         TL1=TIME1L;
  59.         TR1=1;                         //開啟定時(shí)器1
  60.         ET1=1;                         //開定時(shí)器1中斷

  61.         EA=1;

  62.         while(1)
  63.         {
  64.         if(b_KeyScan==1)                   //如果有按鍵按下,則進(jìn)行按鍵掃描和鍵碼處理。
  65.                 {
  66.                 b_KeyScan=0;
  67.                 vKeyProcess(ucKeyScan());
  68.                 }
  69.         }
  70. }



  71. //*************************************************************************************************
  72. //*                                                                                                                                                                                                  *
  73. //*                ******************************外部中斷0,用于開啟鍵盤掃描及鍵碼處理******************          *
  74. //*                                                                                                                                                                                                  *
  75. //*************************************************************************************************
  76. void vINT0(void) interrupt 0
  77. {
  78.         if(b_KeyShock==0)
  79.                 {
  80.                         b_KeyScan=1;                        //開啟鍵盤掃描標(biāo)志。
  81.                         b_KeyShock=1;                        //設(shè)置防抖動(dòng)標(biāo)志。
  82.                 }
  83.         else b_KeyShock=0;                                //如果有抖動(dòng)則不執(zhí)行鍵掃描,恢復(fù)防抖動(dòng)標(biāo)志。

  84. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<設(shè)置防抖動(dòng)清除標(biāo)志位 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>       
  85.         if(b_KeyShock==1)
  86.                 b_KillShock=1;                                //如果防抖動(dòng)標(biāo)志位開啟則開啟防抖動(dòng)標(biāo)志清除位,
  87.                                                                         //300ms后清除防抖動(dòng)標(biāo)志。

  88. }


  89. //*************************************************************************************************
  90. //*                                                                                                                                                                                                  *
  91. //*                ****************定時(shí)器1中斷,用于計(jì)時(shí)功能和防抖動(dòng)標(biāo)志清除***************************          *
  92. //*                                                                                                                                                                                                  *
  93. //*************************************************************************************************
  94. void vTimer1(void) interrupt 3
  95. {
  96. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  97. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<防抖動(dòng)標(biāo)志清除>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  98. ……………………

  99. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
51單片機(jī)12864大液晶屏proteus仿真.rar (86.13 KB, 下載次數(shù): 26)

回復(fù)

使用道具 舉報(bào)

ID:473186 發(fā)表于 2020-7-9 15:51 | 顯示全部樓層
壇子里就有這個(gè)代碼,沒多在意思
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品免费在线观看 | 国产精品观看 | 日韩超碰在线 | 午夜久草 | 国产精品麻 | 丁香婷婷在线视频 | 欧美一级一 | 国产精品美女 | 一区二区三区av | 亚洲精品一区二区三区四区高清 | 欧美中文字幕一区二区三区亚洲 | 99这里只有精品 | 中国黄色毛片视频 | 一区二区三区日本 | 亚洲国产二区 | 成人久久久 | 国产精品178页 | 99久久中文字幕三级久久日本 | 99re在线| 久久久国产一区二区三区 | caoporn国产 | 日本亚洲精品成人欧美一区 | 91久久精品国产免费一区 | 午夜日韩| av在线免费播放 | 亚洲www| 精品国产欧美在线 | 91视频在线 | 久久久精品久久久 | 在线播放国产一区二区三区 | 亚洲视频在线观看免费 | 一区影院 | 日韩精品久久 | 国产欧美精品一区二区色综合朱莉 | 一区二区三区四区视频 | 99re在线视频| 在线播放91| 欧美一级视频免费看 | 欧美久久久 | 亚洲精选久久 | 欧美日韩在线视频一区二区 |