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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6783|回復: 5
收起左側

ATMEGA128的1602LCD顯示驅動程序和課件下載

  [復制鏈接]
ID:198658 發表于 2017-5-9 15:27 | 顯示全部樓層 |閱讀模式
本實驗開發板的電源選擇5V。
0.png
0.png

單片機源程序:
  1. //ATMEGA128的1602型LCD顯示驅動程序
  2. //編譯環境 ICCAVR 7.16A
  3. //系統時鐘7.3728MHZ,設置熔絲位為外部高頻石英晶體振蕩,啟動時間4.1ms
  4. //忠興電子元件店編輯
  5. //日期:2010.01.14

  6. //***********************************************************************
  7. //                        包含文件
  8. //***********************************************************************

  9. #include <string.h>
  10. #include <stdio.h>
  11. #include <delay.h>
  12. #include <iom128v.h>

  13. #define uchar unsigned char
  14. #define uint  unsigned int

  15. #define RS_CLR        PORTF &= ~(1 << PF1)                 //RS置低
  16. #define RS_SET        PORTF |= (1 << PF1)                  //RS置高

  17. #define RW_CLR        PORTF &= ~(1 << PF2)                 //RW置低
  18. #define RW_SET        PORTF |= (1 << PF2)                  //RW置高

  19. #define EN_CLR        PORTF &= ~(1 << PF3)                 //E置低
  20. #define EN_SET        PORTF |= (1 << PF3)                  //E置高

  21. #define Data_IO                PORTA                //液晶數據口
  22. #define Data_DDR        DDRA                 //數據口方向寄存器
  23. #define D_LE0                PORTD &= ~(1 << PD4) //數碼管段控制位為0,鎖存端口數據
  24. #define D_LE1           PORTD |= (1 << PD4)  //數碼管段控制位為1,鎖存器輸出與端口一致
  25. #define W_LE0                PORTD &= ~(1 << PD5) //數碼管位控制位為0
  26. #define W_LE1           PORTD |= (1 << PD5)  //數碼管位控制位為1

  27. //*************************************************************************
  28. //                        初始化子程序
  29. //*************************************************************************
  30. void system_init()
  31. {

  32.         Data_IO = 0xFF;                                        //電平設置
  33.         Data_DDR = 0xFF;                                        //方向輸出
  34.         PORTF = 0xFF;                       //電平設置
  35.         DDRF = 0xFF;                        //方向輸出
  36.     PORTD=0xFF;
  37.         DDRD=0xFF;
  38.         D_LE1;                             //關掉數碼管,以免顯示亂碼                  
  39.     W_LE1;                     
  40.     Data_IO=0xFF;                      //關數碼管            
  41.     W_LE0;
  42. }

  43. //***********************************************************************
  44. //        顯示屏命令寫入函數
  45. //***********************************************************************


  46. void LCD_write_com(unsigned char com)
  47. {      
  48.         RS_CLR;
  49.         RW_CLR;
  50.         EN_SET;
  51.         Data_IO = com;
  52.         delay_nms(5);
  53.         EN_CLR;
  54. }
  55. //***********************************************************************
  56. //        顯示屏數據寫入函數
  57. //***********************************************************************

  58. void LCD_write_data(unsigned char data)
  59. {
  60.         RS_SET;
  61.         RW_CLR;
  62.         EN_SET;
  63.         Data_IO = data;
  64.         delay_nms(5);
  65.         EN_CLR;
  66. }
  67. //***********************************************************************
  68. //        顯示屏清空顯示
  69. //***********************************************************************

  70. void LCD_clear(void)
  71. {
  72.         LCD_write_com(0x01);
  73.         delay_nms(5);
  74. }
  75. //***********************************************************************
  76. //        顯示屏字符串寫入函數
  77. //***********************************************************************

  78. void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)
  79. {
  80.       
  81.     if (y == 0)
  82.     {
  83.             LCD_write_com(0x80 + x);
  84.     }
  85.     else
  86.     {
  87.             LCD_write_com(0xC0 + x);
  88.     }

  89.     while (*s)
  90.     {
  91.             LCD_write_data( *s);
  92.             s ++;
  93.     }
  94. }
  95. //***********************************************************************
  96. //        顯示屏單字符寫入函數
  97. //***********************************************************************

  98. void LCD_write_char(unsigned char x,unsigned char y,unsigned char data)
  99. {
  100.       
  101.     if (y == 0)
  102.     {
  103.             LCD_write_com(0x80 + x);
  104.     }
  105.     else
  106.     {
  107.             LCD_write_com(0xC0 + x);
  108.     }

  109.     LCD_write_data( data);  
  110. }
  111. //***********************************************************************
  112. //        顯示屏初始化函數
  113. //***********************************************************************

  114. void LCD_init(void)
  115. {
  116.         DDRA = 0xFF;                                        //I/O口方向設置
  117.         DDRA |= (1 << PA5) | (1 << PA6) | (1 << PA7);
  118.         LCD_write_com(0x38);                                //顯示模式設置
  119.         delay_nms(5);
  120.         LCD_write_com(0x08);                                //顯示關閉
  121.         delay_nms(5);
  122.     LCD_write_com(0x01);                                //顯示清屏
  123.         delay_nms(5);
  124.     LCD_write_com(0x06);                                //顯示光標移動設置
  125.         delay_nms(5);
  126.         LCD_write_com(0x0C);                                //顯示開及光標設置
  127.     delay_nms(5);
  128. }

  129. //*************************************************************************
  130. //                        主程序
  131. //*************************************************************************
  132. void main(void)
  133. {

  134.         unsigned char i;
  135.         unsigned char *p;
  136.         system_init();                                //系統初始化,設置IO口屬性
  137.         delay_nms(100);                                //延時100ms
  138.         LCD_init();                                   //液晶參數初始化設置

  139. while (1)
  140.    {
  141.                 i = 1;
  142.                 p = "zhongxingdianzi";                     //字符串輸出顯示



  143. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

下載:
9.1602液晶顯示實驗.zip (83.35 KB, 下載次數: 57)
回復

使用道具 舉報

ID:320650 發表于 2018-5-8 11:49 | 顯示全部樓層
您好,附件里面并沒有完全的代碼啊  我需要全部代碼 請問可以發給我嗎
回復

使用道具 舉報

ID:320650 發表于 2018-5-8 11:57 | 顯示全部樓層
你好,附件里只有部分代碼 請問可以分享一下全部代碼嗎  
回復

使用道具 舉報

ID:23844 發表于 2018-5-17 07:22 | 顯示全部樓層
AVRZHENDENAN 發表于 2018-5-8 11:57
你好,附件里只有部分代碼 請問可以分享一下全部代碼嗎

來吧,我上傳一份原版全部源代碼的給你.

1602.rar

23.19 KB, 下載次數: 20, 下載積分: 黑幣 -5

回復

使用道具 舉報

ID:250342 發表于 2018-7-19 15:53 | 顯示全部樓層
zkele 發表于 2018-5-17 07:22
來吧,我上傳一份原版全部源代碼的給你.

這不是一樣的嗎????
回復

使用道具 舉報

ID:301191 發表于 2022-1-2 23:18 | 顯示全部樓層
頂一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天玩天天干天天操 | 国产高清在线视频 | 美女在线观看av | 日日碰狠狠躁久久躁96avv | 91亚洲国产成人久久精品网站 | 国产一级片久久久 | 欧美成人激情 | 亚洲一区三区在线观看 | 欧美日韩国产在线观看 | 国产美女自拍视频 | 国产精品中文字幕在线 | 亚洲日本乱码在线观看 | 中文一区二区视频 | 午夜精品一区二区三区在线播放 | 91精品国产麻豆 | 91国产精品在线 | com.国产| 热99精品视频 | 剑来高清在线观看 | 视频一区中文字幕 | 久久视频精品在线 | 国产成人高清视频 | 久久久人成影片一区二区三区 | 韩日av片| 黄色成人亚洲 | 又黄又爽的网站 | 涩涩导航 | 亚洲综合精品 | 日韩一级精品视频在线观看 | 羞羞视频免费观 | 在线免费观看黄网 | 中文字幕亚洲精品 | 人人射人人 | 国产又色又爽又黄又免费 | 激情五月激情综合网 | 在线视频 欧美日韩 | 日韩电影在线一区 | 久热爱 | 日本久草| 亚洲欧洲成人在线 | 亚洲精品一区二区三区在线 |