微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ATmega16L驱动ILI9325/9328

ATmega16L驱动ILI9325/9328

时间:11-20 来源:互联网 点击:

  1. ************************************************************************
  2. **Functionname:LCD_WriteChar
  3. **Descriptions:向屏幕写一个字节
  4. **inputparameters:lineNum表示字符开始的行数,rowNum表字符开始的列数,共30X20个字符,背景色bkColor,写入的字节chChar
  5. 字符颜色----charColor
  6. 待显示的字符ch_char
  7. **outputparameters:无
  8. **Returnedvalue:无
  9. *********************************************************************************************************/
  10. voidLCD_WriteChar(unsignedintlineNum,
  11. unsignedintrowNum,
  12. unsignedintcharColor,
  13. unsignedintbkColor,
  14. unsignedcharchChar)
  15. {
  16. unsignedcharshow_cnt=0;
  17. unsignedcharbit_cnt=0;
  18. unsignedintcharPos=0;//字符在字符表中所在的位置
  19. LCD_SELECT();
  20. charPos=Get_CharOffset(chChar);//获取字模显示的偏移量
  21. Set_CharWindow(lineNum,rowNum);//设置起始坐标,xy是8*16的方格坐标
  22. for(show_cnt=0;show_cnt<16;show_cnt++)
  23. {
  24. for(bit_cnt=0;bit_cnt<8;bit_cnt++)
  25. {
  26. if(Letter[charPos][show_cnt]&BIT(7-bit_cnt))
  27. {
  28. LCD_WriteData(charColor);//字符颜色
  29. }
  30. else
  31. {
  32. LCD_WriteData(bkColor);//背景色
  33. }
  34. }
  35. }
  36. LCD_DIS_SELECT();
  37. }
  38. /*******************************************************************************************************************
  39. **Functionname:LCD_WriteString
  40. **Descriptions:向屏幕写字符串
  41. **inputparameters:字符起始行列(lineNum,rowLine),背景色---bkColor,字节颜色---charColor,字符串指针p_str
  42. **outputparameters:无
  43. **Returnedvalue:无
  44. ********************************************************************************************************************/
  45. voidLCD_WriteString(unsignedcharlineNum,unsignedcharrowNum,
  46. unsignedintcharColor,
  47. unsignedintbkColor,
  48. unsignedchar*p_str)
  49. {
  50. while(*p_str)
  51. {
  52. //计算坐标
  53. if(*p_str==\n)//换行
  54. {
  55. rowNum=0;
  56. lineNum++;
  57. p_str++;//调过换行符,不用显示
  58. continue;//查询下一个字符
  59. }
  60. else//未遇到换行符则按正常显示坐标自加
  61. {
  62. LCD_WriteChar(lineNum,rowNum,charColor,bkColor,*p_str);
  63. rowNum++;
  64. if(rowNum==CHAR_X_NUM)
  65. {
  66. rowNum=0;
  67. lineNum++;
  68. if(lineNum==CHAR_Y_NUM)
  69. {
  70. lineNum=0;
  71. }
  72. }
  73. }
  74. p_str++;//字符串指针++
  75. }
  76. }
  77. /*********************************************************************************************************
  78. *EndOfFile*
  79. *********************************************************************************************************/

文件名:main.c 主函数测试

  1. /****************************************Copyright(c)**************************************************
  2. **SoutheastUniversity
  3. **--------------FileInfo-------------------------------------------------------------------------------
  4. **FileName:main.c
  5. **LastmodifiedDate:2012-04-11
  6. **LastVersion:1.0
  7. **Description:测试函数
  8. **------------------------------------------------------------------------------------------------------
  9. **CreatedBy:JianGe
  10. **Createddate:2012-03-23
  11. **Version:1.0
  12. **------------------------------------------------------------------------------------------------------*/
  13. #include
  14. #include
  15. #include"Type.h"
  16. #include"Delay.h"
  17. #include"USART.h"
  18. voidmain(void)
  19. {
  20. unsignedchar*ptr="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  21. USART_Init();
  22. LCD_ILI9325_Init();
  23. LCD_ClearScreen(0xF800);
  24. LCD_Fill_Rectangle(0,0,200,200,0xF800);
  25. LCD_WriteChar(1,1,0xF800,0xFFFF,1);//显示字符
  26. LCD_WriteString(0,0,0xF800,0xFFFF,ptr);//显示字符串
  27. }


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top