社区导航

 

搜索
楼主: 吴鉴鹰.

[原创] 资深工程师单片机实战项目精讲(连载),由易到难连续分享

  [复制链接]

5

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2014-10-5 16:36 | 显示全部楼层
好厉害,羡慕不知道啥时候才能进阶

点评

学习是一个长期的过程,不要急,你慢慢会进步的。  详情 回复 发表于 2014-10-5 16:51

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-10-5 16:51 | 显示全部楼层
dream9669 发表于 2014-10-5 16:36
好厉害,羡慕不知道啥时候才能进阶

学习是一个长期的过程,不要急,你慢慢会进步的。
为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-10-17 08:36 | 显示全部楼层
本帖最后由 吴鉴鹰. 于 2014-10-17 13:16 编辑

19、吴鉴鹰单片机项目征服12864系列(连载)之基于单片机驱动12864的武术动画的显示(一)——简介
相关的资料请点击下载:
吴鉴鹰单片机征服12864系列之武术动画的显示Proteus仿真.zip (16.13 KB, 下载次数: 91)
吴鉴鹰单片机征服12864系列之武术动画的显示设计原理图 .pdf (168.29 KB, 下载次数: 87)
一、武术简介
      小的时候鹰哥也是一个武术迷,看到电视上面的武侠人物飞檐走壁,很是羡慕,于是用小刀将竹子削成宝剑勤学苦练,梦想有朝一日行走江湖,英雄救美,当上武林盟主,领取白富美,登上人生巅峰!只可惜那只是一个美好的儿时的梦想!
   
      废话也不说,先让大家欣赏几张武术图片!是不是觉得很炫的样子。
      这是我看到别人对武术的描写,很是生动,来跟大家分享一下:轮到她上场了,尽管我所在的座位离的很远,但是我仍能感觉到她的心跳,也许,是我自己紧张吧。

她闭上了眼睛,深吸了一口气,睁眼凝神,大步流星地迈上了台,一个抱拳礼,顿时场内掌声响了起来;我看着她的有些紧张,却充满自信的样子,情不自禁地一边鼓掌,
大声地叫着她的名字,渐渐地,掌声停了下来。她双脚开立,双手抬了起来,缓缓地落了下来,静如处子,身体虽然放松,却能感觉到这平静的背后蕴藏的无比的自信;忽然她大喝一声,双臂有如分水之势,虎虎生威!双拳紧握于腰间,气沉丹田。接着,她左手从腰间冲拳而出,转马步为弓步,紧接着,顺势一个照面直踢,身轻如燕,

腾空再踢,落下时竖岔着地,双臂侧平举立掌。台下被她的动作引爆了,人们拍手叫好着,欢呼着。我清楚地看到她的脸上,豆大的汗珠往下直落,嘴角却轻轻地上扬,自信地笑了起来。紧接着,她力发腰间,一窜,站起了身形,一个乌龙盘打,起身,又接一个旋子,扑步着地,手引身形,虚步亮相,前手掌,后手钩,
然后她松了一口气,接下来的动作好比行云流水一般,赚足了眼球的她瞬间有了无比的自信,不知道是不是我的错觉,她的动作仿佛比训练的时候更加流畅!我已经被她的如水墨画一般的动作彻底征服了,我相信,那些评委们和我一样,根本来不及赞叹她,而是完完全全地陶醉在了她的表演中。随着她的收势,又一个四方抱拳礼,台下的掌声如雷的响了起来。

二、12864武术显示
       用12864显示武术动画的原理就是将武术一个个连续的动作,按照一定的频率显示在画面上,这样根据人的视觉残留原理,就能够给人的视觉连续运行的画面。



为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-10-17 08:39 | 显示全部楼层

20、吴鉴鹰单片机项目征服12864系列(连载)之基于单片机驱动12864的武术动画的显示(二)——程序设计

  1. /***************************************/
  2. /******************************************************
  3. *程序:LCD12664液晶显示原理                                                           
  4. *
  5. ** 这一讲的主要内容:  LCD12664液晶显示原理                                                                                       
  6. ** 功能描述:  对吴鉴鹰武术指导的LCD12864的显示
  7. ** 输 入:
  8. ** 液晶:Proteus元件库—AMPIRE128X64(无字库)         
  9. ** 内容:显示动画——在练武术的女子      
  10. ** 输 出:
  11. **         
  12. ** 全局变量:
  13. ** 调用模块:
  14. **
  15. ** 作 者:    吴鉴鹰
  16. ** 日 期:     14.03.11

  17. 备注:有什么错误的地方,欢迎各大烧友指正

  18. O(∩_∩)O~
  19. *******************************************************/


  20. #include <AT89X52.h>
  21. #include <intrins.h>
  22. //#include"WUJIANYING1.h"
  23. //#include"WUJIANYING2.h"
  24. //#include"WUJIANYING3.h"
  25. //#include"WUJIANYING4.h"
  26. //#include"WUJIANYING5.h"
  27. //#include"WUJIANYING6.h"
  28. //#include"WUJIANYING7.h"
  29. //#include"WUJIANYING8.h"
  30. //#include"WUJIANYING9.h"

  31. #define uchar unsigned char
  32. #define uint  unsigned int

  33. #define LCD_DATABUS_OUT   P0  //LCD12864的8位数据口

  34. sbit LCD_RS_OUT = P2^2;         //RS为0---命令;1----数据
  35. sbit LCD_RW_OUT = P2^1;         //LCD_RW_OUT为1---写;0---读
  36. sbit LCD_EN_OUT = P2^0;         //使能端
  37. sbit LCD_CS1_OUT = P2^4;         //片选1低电平有效,控制左半屏
  38. sbit LCD_CS2_OUT=P2^3;         //片选1低电平有效,控制右半屏

  39. unsigned char code WJY_PAINT1[][64]={
  40. /*--  调入了一幅图像:D:\Desktop\新建文件夹 (2)\1.bmp  --*/
  41. /*--  调入了一幅图像:C:\Users\Administrator\Desktop\12864武术\图片1\图片1.bmp  --*/
  42. /*--  宽度x高度=128x64  --*/
  43. 0x00,0x00,0xC0,0xE0,0x20,0x30,0x18,0x0E,0x8E,0x8C,0x38,0x30,0x70,0xE0,0xC0,0x40,
  44. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  45. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  46. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  47. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  48. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  49. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  50. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  51. 0x00,0x00,0x03,0x07,0x0C,0x0C,0x0C,0x0C,0x1A,0x33,0x60,0xEC,0xC2,0xC0,0x01,0x03,
  52. 0x02,0x04,0x0C,0x18,0x30,0x60,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  53. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  54. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  55. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  56. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  57. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  58. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  59. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x06,0x1E,
  60. 0x38,0x70,0xE0,0x80,0x00,0x00,0x01,0x01,0x03,0x06,0x0C,0x1C,0x30,0x70,0xE0,0xC0,
  61. 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  62. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  63. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  64. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  65. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  66. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  67. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  68. 0x00,0x00,0x00,0x03,0x07,0x0E,0x08,0x18,0x30,0x60,0x80,0x80,0x00,0x00,0x00,0x01,
  69. 0x01,0x03,0x06,0x0E,0x1C,0x38,0x70,0xC0,0xC0,0x80,0x00,0x00,0x80,0x00,0x00,0x00,
  70. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  71. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  72. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  73. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  74. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  75. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  76. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x02,0x06,0x06,
  77. 0x1C,0x3C,0xB8,0xF0,0x60,0xC0,0xC0,0x80,0x01,0x01,0x19,0x19,0x03,0x03,0x07,0xC6,
  78. 0xEE,0xEC,0x3C,0xF0,0xF0,0xF0,0xB0,0xB0,0x30,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
  79. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x30,0x30,0x30,0x10,0x10,0x18,
  80. 0x18,0x18,0x18,0x08,0x08,0x0C,0x88,0x0C,0x8C,0x8E,0x86,0xC6,0x46,0x46,0xC2,0xC6,
  81. 0xC6,0xC6,0xC6,0xC6,0xC6,0x66,0x66,0x66,0x66,0x6E,0x6E,0x66,0x6C,0x6C,0x7C,0x7C,
  82. 0x74,0x74,0x74,0x64,0x26,0x36,0x36,0x36,0x36,0x3E,0x1E,0x1E,0x0E,0x00,0x00,0x00,
  83. 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  84. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0x60,
  85. 0x70,0x38,0x1F,0xAF,0xFC,0x38,0x31,0x01,0x0B,0x16,0x1C,0x18,0x30,0xF0,0xE0,0x3F,
  86. 0x37,0x7D,0xFF,0xC3,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  87. 0x00,0x00,0x00,0x04,0x0C,0x0C,0x8C,0x8C,0x0C,0x9E,0xBE,0xBE,0xEE,0x6E,0xEE,0xA2,
  88. 0x83,0x8B,0x8A,0x0F,0x07,0x1F,0xBF,0xBF,0xBF,0x1F,0x3B,0xEF,0xFF,0xFF,0xBC,0xDF,
  89. 0xDD,0x7F,0x1F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  90. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  91. 0x00,0x00,0x00,0x80,0xE0,0xFC,0xFF,0xFF,0x1F,0xAC,0xCC,0xCC,0x0C,0x0C,0x0C,0x0C,
  92. 0x0C,0x0C,0x0C,0x04,0x04,0x04,0x0E,0x1A,0x32,0x03,0x27,0x27,0x65,0x65,0x0C,0x6C,
  93. 0x5C,0x50,0x40,0x40,0x5F,0x1C,0x00,0x00,0x70,0xD8,0x9C,0xBC,0x2E,0xFF,0xF1,0xA0,
  94. 0xA0,0xA0,0xA0,0xB0,0x70,0xF0,0xDB,0xCF,0x87,0x87,0xC7,0x4F,0x4B,0x4B,0x7B,0x13,
  95. 0x3A,0x1C,0x0C,0x0C,0x07,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,
  96. 0x01,0x01,0x01,0x03,0x03,0x03,0x01,0x03,0x07,0x05,0x07,0x07,0x07,0x03,0x03,0x01,
  97. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  98. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  99. 0x00,0x00,0x00,0x3F,0x37,0x3E,0x3F,0x38,0x38,0x1F,0x5F,0x0F,0x0F,0x0E,0x0E,0x06,
  100. 0x06,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
  101. 0x02,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,
  102. 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  103. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  104. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  105. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  106. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  107. };

  108. unsigned char code WJY_PAINT2[][64]={
  109. /*--  调入了一幅图像:D:\Desktop\新建文件夹 (2)\2.bmp  --*/
  110. /*--  调入了一幅图像:C:\Users\Administrator\Desktop\12864武术\图片1\图片2.bmp  --*/
  111. /*--  宽度x高度=128x64  --*/
  112. 0x80,0xE0,0x20,0x70,0x30,0x18,0x07,0xC7,0xC6,0xFC,0x08,0x18,0x18,0x38,0x30,0x60,
  113. 0x60,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  114. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  115. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  116. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  117. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  118. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  119. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  120. 0x01,0x01,0x06,0x07,0x02,0x02,0x06,0x0E,0x1D,0x36,0xC2,0x82,0x00,0x00,0x00,0x00,
  121. 0x00,0x00,0x01,0x03,0x07,0x0E,0x1E,0x3C,0x38,0x70,0x70,0xE0,0xC0,0x80,0x80,0x00,
  122. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  123. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  124. 0x30,0x7E,0xC2,0x82,0x02,0x56,0x6C,0x38,0xB8,0xF0,0xC0,0x80,0x00,0x00,0x00,0x00,
  125. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  126. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  127. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  128. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0E,0x1C,0xF8,
  129. 0xA0,0x40,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0xEE,
  130. 0xFC,0x38,0x70,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  131. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  132. 0x00,0x00,0x00,0x01,0x01,0x47,0xFC,0xF8,0x98,0x01,0x47,0x2F,0x0E,0x1C,0x38,0x70,
  133. 0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  134. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  135. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  136. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  137. 0x01,0x01,0x03,0x03,0x07,0x0E,0x0C,0x18,0x10,0x20,0x60,0xC0,0x80,0x00,0x00,0x07,
  138. 0x0F,0x7F,0xF0,0xF0,0x01,0x03,0x07,0x06,0x0E,0x0C,0x18,0x18,0x30,0x30,0x60,0x60,
  139. 0xE0,0xE0,0xC0,0xC0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  140. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x7F,0xF8,0xE0,0x80,0x00,0x00,0x00,0x00,
  141. 0x80,0x09,0x1F,0x1E,0x3C,0x78,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  142. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  143. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  144. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  145. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x06,
  146. 0x0C,0x08,0x08,0x1B,0x30,0x70,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
  147. 0x00,0x01,0x02,0x00,0x00,0x01,0x01,0x01,0x03,0x06,0xC6,0xEE,0xFC,0xF0,0x70,0x10,
  148. 0x10,0x18,0x18,0x38,0x38,0x38,0x28,0x38,0x5C,0x4C,0x27,0x15,0x0E,0x0C,0x08,0x00,
  149. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x02,0x06,0x3C,0xEC,0xD8,0xF0,0x60,
  150. 0x40,0xC0,0x80,0x80,0x00,0x00,0x00,0x80,0x80,0xE0,0xB0,0xF0,0xF0,0xF0,0xF0,0xF0,
  151. 0xF0,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,
  152. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  153. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  154. 0x00,0x80,0x80,0x80,0xC4,0xFE,0x03,0x01,0x00,0x01,0x03,0x02,0x06,0x04,0x0C,0x18,
  155. 0x58,0x68,0x60,0x70,0xC0,0xE0,0x60,0x20,0x18,0x1F,0x1F,0x3F,0x3F,0x3E,0x6C,0x48,
  156. 0xC0,0xC0,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
  157. 0x80,0x80,0x80,0x80,0x80,0x84,0xE4,0xE4,0xE4,0xFE,0xE2,0x63,0x39,0x3D,0xE6,0xF3,
  158. 0x33,0x33,0x33,0x3B,0x3B,0x0D,0x05,0x0F,0xBF,0x3F,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,
  159. 0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x67,0x3E,0x02,0x03,0x01,0x00,0x00,0x00,0x00,0x00,
  160. 0x00,0x00,0x00,0x00,0xC0,0xFE,0xFF,0x0E,0x1E,0x1A,0xF2,0xE2,0x86,0x06,0x06,0x0E,
  161. 0x9E,0xF2,0xE2,0xC2,0x82,0x02,0x02,0x06,0x0F,0x1E,0x3E,0x36,0x32,0x32,0x22,0x22,
  162. 0x32,0x27,0x62,0x43,0x41,0x41,0xD0,0x80,0x80,0x80,0x00,0x00,0x01,0x78,0xCC,0xD8,
  163. 0xFC,0xF8,0x78,0xE0,0xDF,0xF1,0xA0,0xB0,0xF0,0xA0,0xB0,0xB0,0xB0,0xB0,0xB0,0x98,
  164. 0x88,0x8C,0x8D,0x9D,0x95,0x87,0xB3,0xA7,0x89,0xC9,0x60,0x60,0x39,0x38,0x1C,0x1C,
  165. 0x0C,0x06,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  166. 0x03,0x03,0x03,0x03,0x03,0x02,0x02,0x07,0x05,0x05,0x07,0x06,0x06,0x07,0x07,0x03,
  167. 0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  168. 0x00,0x00,0x00,0x00,0x07,0x0F,0x18,0x10,0x18,0x1C,0x1F,0x1F,0x00,0x00,0x00,0x00,
  169. 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
  170. 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x03,0x03,0x01,
  171. 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
  172. 0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  173. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  174. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  175. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,



  176. };

  177. unsigned char code WJY_PAINT3[][64]={
  178. /*--  调入了一幅图像:D:\Desktop\新建文件夹 (2)\3.bmp  --*/
  179. /*--  调入了一幅图像:C:\Users\Administrator\Desktop\12864武术\图片1\图片3.bmp  --*/
  180. /*--  宽度x高度=128x64  --*/
  181. 0xC0,0x40,0x60,0x70,0x1F,0x0F,0x0C,0x04,0xCC,0xF8,0x18,0x18,0x18,0x30,0x30,0x60,
  182. 0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  183. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  184. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  185. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  186. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  187. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  188. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  189. 0x01,0x01,0x01,0x03,0x03,0x03,0x06,0x06,0x0F,0x19,0x38,0x70,0xE0,0xC0,0xC0,0x00,
  190. 0x00,0x00,0x00,0x01,0x01,0x03,0x02,0x06,0x0C,0x1C,0x18,0x30,0x30,0x60,0xC0,0x80,
  191. 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  192. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  193. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  194. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  195. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  196. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  197. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,
  198. 0x07,0x0E,0x1C,0x38,0x70,0x60,0xE0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x01,
  199. 0x03,0x06,0x06,0x0C,0x18,0x38,0x30,0x60,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,
  200. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  201. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  202. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  203. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  204. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  205. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  206. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x07,0x06,0x0C,0x1C,0x18,0x30,
  207. 0x20,0x60,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x01,0x07,0x0F,0x1F,0x1B,0x12,0x02,
  208. 0x06,0x04,0x0C,0x1C,0x18,0x18,0x30,0xE0,0xE0,0xC0,0x40,0x60,0x60,0xE0,0xE0,0xE0,
  209. 0xA0,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  210. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
  211. 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
  212. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  213. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  214. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  215. 0x00,0x00,0x00,0x01,0x83,0xC7,0xE7,0x6E,0x2C,0xF8,0xB8,0x38,0x68,0x68,0xD8,0x90,
  216. 0xB0,0xE0,0xE0,0xE0,0x60,0x30,0x3E,0x7F,0xFF,0xCC,0x9C,0x08,0x00,0x00,0x00,0x00,
  217. 0x00,0x01,0x31,0xC1,0xC1,0xC1,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x02,0x03,0x03,
  218. 0x03,0x07,0xD6,0xFE,0xC6,0xE4,0xFC,0xCC,0x48,0x08,0x0C,0x3C,0x5E,0x5E,0x6E,0x6F,
  219. 0x5F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,0xFF,0xFF,0x7C,0x00,0x00,0x00,0x00,
  220. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  221. 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFC,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
  222. 0xE0,0xE0,0x60,0xE0,0x60,0x60,0x60,0x60,0x60,0xF0,0x70,0x70,0xF0,0xB0,0xF8,0xFC,
  223. 0xFC,0xDE,0xFF,0xDF,0xDF,0x8F,0x8B,0xAF,0xB1,0xA0,0x31,0x10,0x1C,0x1D,0xDF,0xDF,
  224. 0xFF,0xFD,0x7F,0x7D,0x7C,0x7C,0x78,0x68,0x68,0x75,0x75,0x7F,0xAB,0xFB,0x7F,0x7B,
  225. 0x3F,0x1F,0x07,0x03,0x01,0x12,0x7E,0xE0,0xE0,0x70,0x30,0x18,0x18,0x1C,0x0E,0x06,
  226. 0x03,0x01,0x01,0x00,0x00,0x00,0x01,0x03,0x03,0x03,0x01,0x02,0x06,0x02,0x02,0x02,
  227. 0x03,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
  228. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  229. 0x00,0x00,0x00,0x00,0x00,0x3E,0x6B,0x7F,0xF7,0xF7,0xE5,0x79,0x3B,0x1B,0x0F,0x1F,
  230. 0x1D,0x1D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0C,0x0C,0x04,0x04,0x04,0x04,0x04,0x06,
  231. 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x05,0x03,0x03,0x01,0x01,0x01,0x01,
  232. 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0x7C,0x3E,0x2F,0xC1,0xF0,0x60,
  233. 0x30,0x38,0x18,0x0C,0x04,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  234. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  235. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  236. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  237. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  238. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  239. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  240. 0x00,0x00,0x10,0x3C,0x3E,0x3B,0x3B,0x39,0x30,0x18,0x0C,0x0E,0x0F,0x07,0x00,0x00,
  241. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  242. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  243. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  244. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


  245. };

  246. unsigned char code WJY_PAINT4[][64]={
  247. /*--  调入了一幅图像:D:\Desktop\新建文件夹 (2)\4.bmp  --*/
  248. /*--  调入了一幅图像:C:\Users\Administrator\Desktop\12864武术\图片2\图片4.bmp  --*/
  249. /*--  宽度x高度=128x64  --*/
  250. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  251. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  252. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  253. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  254. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  255. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  256. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  257. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  258. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  259. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  260. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  261. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  262. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  263. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  264. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  265. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  266. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  267. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  268. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  269. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  270. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  271. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  272. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  273. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  274. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  275. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  276. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  277. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  278. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  279. 0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x40,0x40,0x60,0xF0,0x70,0x10,0x10,0x10,
  280. 0x30,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x30,0x30,0xB0,0x30,0x90,0x90,0x10,0xD8,
  281. 0x98,0xD8,0xD8,0x6C,0x7E,0x32,0x1A,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  282. 0x00,0x00,0xF0,0xB0,0xF0,0x30,0x30,0x10,0x10,0x10,0x10,0x18,0x98,0x98,0x98,0xD8,
  283. 0xD8,0xD8,0x7C,0x7C,0x74,0x34,0x30,0x14,0x1C,0x1C,0x0C,0x0C,0x8C,0x84,0xC4,0xC4,
  284. 0xC6,0x66,0x26,0x26,0x36,0x12,0x16,0x1A,0x0A,0x0A,0x0E,0x02,0x06,0x02,0x02,0x02,
  285. 0x02,0x02,0x02,0x02,0x06,0x06,0x06,0x06,0x06,0x0C,0x18,0x30,0xF0,0xD0,0xF0,0x10,
  286. 0x58,0x78,0x38,0x18,0x10,0x18,0x18,0x08,0x08,0x08,0x88,0x88,0x8C,0xC4,0xC6,0xC6,
  287. 0xC2,0x43,0xC3,0xC1,0xC1,0x81,0x00,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xF8,
  288. 0xFC,0xFC,0xBC,0xFE,0x06,0x02,0x02,0x02,0x03,0x03,0x02,0x03,0x01,0x01,0x01,0x01,
  289. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  290. 0x00,0x00,0xE3,0xFE,0x1D,0x06,0xA8,0x60,0xC0,0x78,0x7C,0x67,0x63,0xC1,0x61,0xF0,
  291. 0x70,0x70,0x70,0xB0,0x30,0x38,0x3C,0x36,0x26,0x27,0x23,0x23,0x61,0x61,0x40,0xC0,
  292. 0xC0,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
  293. 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x88,0x88,0x88,0x90,0x80,0x3F,0xFB,0xFF,0x90,
  294. 0x30,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x06,0x03,0x07,
  295. 0x6F,0xFF,0xE6,0xFF,0xFF,0xF9,0xC8,0xCC,0xCF,0xC7,0x07,0x88,0x4F,0xEF,0x77,0xFF,
  296. 0xBF,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  297. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  298. 0x00,0x00,0x00,0x0F,0x0E,0x0C,0x0B,0x0F,0x01,0x00,0x00,0x00,0x00,0x7F,0xE0,0x81,
  299. 0xBF,0xE6,0x02,0x02,0x03,0x01,0x01,0x01,0x01,0x03,0x03,0x02,0x02,0x06,0x06,0x06,
  300. 0x06,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0C,
  301. 0x0D,0x0D,0x08,0x09,0x0D,0x0D,0x0D,0x0C,0x0E,0x0F,0x08,0x0A,0x09,0x0C,0x07,0x01,
  302. 0x01,0x03,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x02,0x02,0x02,0x02,0x03,
  303. 0x02,0x03,0x03,0x02,0x03,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,
  304. 0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  305. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  306. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  307. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  308. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  309. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  310. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  311. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  312. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  313. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


  314. };

  315. unsigned char code WJY_PAINT5[][64]={
  316. /*--  调入了一幅图像:D:\Desktop\新建文件夹 (2)\5.bmp  --*/
  317. /*--  调入了一幅图像:C:\Users\Administrator\Desktop\12864武术\图片2\图片5.bmp  --*/
  318. /*--  宽度x高度=128x64  --*/
  319. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  320. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  321. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  322. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  323. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  324. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  325. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
  326. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  327. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  328. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  329. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  330. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  331. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  332. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xC0,0x60,0x30,0x90,0x90,
  333. 0xD8,0x48,0x6E,0x26,0x33,0x19,0x11,0x0D,0x09,0x0D,0x06,0x00,0x00,0x00,0x00,0x00,
  334. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  335. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  336. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  337. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  338. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  339. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,
  340. 0x20,0x30,0x18,0x1C,0x0A,0x8E,0x83,0xF1,0x60,0x70,0x38,0x0C,0x06,0x03,0x03,0x00,
  341. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  342. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  343. 0x00,0x00,0x00,0x00,0x00,0xF8,0x38,0x18,0x6C,0x8C,0x0C,0x04,0x84,0xCC,0xC4,0x44,
  344. 0x44,0x64,0x24,0x24,0x24,0x34,0x14,0x94,0x9C,0x8C,0xCC,0xCC,0xCC,0x4C,0x4C,0x64,
  345. 0x64,0x24,0x24,0x24,0x24,0x24,0x24,0x34,0x14,0x14,0x14,0x14,0x14,0x1C,0x1C,0x1C,
  346. 0x1C,0x0C,0x0C,0x0C,0x0C,0x0C,0x08,0x08,0x18,0x10,0x30,0x30,0x30,0x20,0xE0,0xE0,
  347. 0xE0,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x10,0x18,0x0C,0x06,0x03,0x09,0x28,0xAC,
  348. 0xA8,0x2E,0x36,0xFE,0xFF,0xE1,0xC0,0xC0,0xC0,0xE0,0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,
  349. 0xF8,0xF8,0xB8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  350. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  351. 0x00,0x00,0x00,0x00,0x00,0x1F,0x10,0x18,0x1F,0x1E,0x06,0x03,0x03,0x03,0x03,0xFF,
  352. 0xDF,0xC3,0x75,0x39,0x1D,0x0D,0x0D,0x0D,0x0F,0x0B,0x0A,0x0A,0x0A,0x0A,0x12,0x16,
  353. 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x1C,0x18,0x18,0x18,0x38,0x28,0x28,0x38,0x70,
  354. 0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x76,0x74,0x74,0x2C,0x3F,0x3F,
  355. 0x3D,0x26,0x2C,0x60,0x60,0x60,0x60,0x40,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0xC0,0x09,
  356. 0xFD,0xFF,0x7B,0x59,0x79,0x75,0x62,0x77,0x77,0x65,0x67,0x77,0x77,0x7F,0x7F,0x7F,
  357. 0x7F,0x3F,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  358. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  359. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  360. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  361. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  362. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  363. };

  364. unsigned char code WJY_PAINT6[][64]={
  365. /*--  调入了一幅图像:D:\Desktop\新建文件夹 (2)\6.bmp  --*/
  366. /*--  调入了一幅图像:C:\Users\Administrator\Desktop\12864武术\图片2\图片6.bmp  --*/
  367. /*--  宽度x高度=128x64  --*/
  368. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  369. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  370. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  371. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  372. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  373. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  374. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,
  375. 0x40,0xC0,0xC0,0xC0,0xE0,0xE0,0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  376. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  377. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  378. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  379. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  380. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  381. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,
  382. 0xE0,0x70,0x30,0x30,0x10,0x10,0x18,0x38,0xAC,0xEC,0x6E,0x33,0x33,0x39,0x18,0x18,
  383. 0x18,0x1C,0x0D,0x0F,0x05,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  384. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  385. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  386. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  387. 0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
  388. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  389. 0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0x70,0x78,0x5C,0x66,0x62,0x33,0x11,0x91,
  390. 0xF8,0x78,0x38,0x18,0x0C,0x06,0x03,0x81,0x81,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xC0,
  391. 0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  392. 0x00,0x00,0x00,0xF8,0xEC,0x1C,0x16,0x22,0x42,0x02,0x02,0x82,0x82,0x82,0x82,0x87,
  393. 0x87,0x87,0x87,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x0F,0x07,
  394. 0x0F,0x0F,0x0B,0x0F,0x1F,0x1F,0x15,0x35,0x35,0x37,0x26,0x6A,0x4A,0x42,0x42,0xC3,
  395. 0xC7,0xC3,0xC7,0x87,0x87,0x03,0x0A,0x1E,0x1E,0x1F,0x1F,0x01,0x01,0x00,0x01,0x01,
  396. 0x01,0x03,0x03,0x06,0x06,0xC6,0xFC,0xFC,0xFC,0xFC,0x7C,0x0E,0x06,0x03,0x02,0x03,
  397. 0x83,0x03,0x03,0x03,0x03,0x03,0x02,0x03,0x03,0x03,0x01,0x01,0x00,0x80,0xF1,0x76,
  398. 0xE7,0xBF,0x8E,0x8C,0x1C,0x7C,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  399. 0xFF,0xFF,0xFF,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  400. 0x00,0x00,0x00,0x0F,0x19,0x10,0x18,0x0F,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
  401. 0x01,0x3F,0x77,0x61,0xFF,0x2D,0x4D,0x47,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
  402. 0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
  403. 0x03,0x03,0x02,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x06,0x06,0x06,0x06,0x04,0x04,
  404. 0x0C,0x0C,0x0C,0x0C,0x0E,0x03,0x03,0x03,0x03,0x03,0x05,0x04,0x0C,0x0C,0x08,0x08,
  405. 0x09,0x1B,0x3E,0x7C,0xF8,0x70,0xE0,0xE0,0x80,0x00,0x00,0x04,0xFC,0xFB,0x1B,0x0E,
  406. 0x01,0x00,0x01,0x07,0x06,0x0C,0x0C,0x0C,0x0C,0x0C,0x0A,0x0D,0x0D,0x0F,0x0F,0x0F,
  407. 0x0B,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  408. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  409. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  410. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  411. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  412. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  413. 0x00,0xF8,0xFC,0x06,0x03,0x00,0x01,0x03,0xC7,0xEC,0x7E,0x1F,0x01,0x00,0x00,0x00,
  414. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  415. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  416. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  417. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  418. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  419. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  420. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  421. 0x00,0xC3,0xFF,0x14,0x14,0x14,0x3C,0xFE,0x87,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
  422. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  423. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  424. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  425. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  426. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  427. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  428. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  429. 0x02,0x1F,0x7F,0x60,0x6C,0x38,0x3C,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  430. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  431. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


  432. };

  433. unsigned char code WJY_PAINT7[][64]={
  434. /*--  调入了一幅图像:C:\Users\Administrator\Desktop\12864武术\图片3\7.bmp  --*/
  435. /*--  宽度x高度=128x64  --*/
  436. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  437. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  438. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  439. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  440. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  441. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  442. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  443. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  444. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  445. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  446. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  447. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  448. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  449. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  450. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  451. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  452. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,
  453. 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x80,
  454. 0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  455. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  456. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  457. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  458. 0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  459. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  460. 0x00,0x00,0xF0,0x98,0x0C,0x04,0x07,0xE7,0xE1,0xED,0xD9,0x71,0x61,0xC1,0xC1,0xC1,
  461. 0xC1,0xC1,0xC1,0xC1,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x81,0xC0,0x40,0xC0,
  462. 0xC0,0xF1,0xB1,0x99,0x19,0x19,0x1D,0x0D,0x0D,0x09,0x09,0x0B,0x0A,0x0B,0x0F,0x0F,
  463. 0x0E,0x06,0x06,0x06,0x04,0x06,0x04,0x04,0x04,0x0C,0x08,0x08,0x18,0x38,0x30,0x60,
  464. 0xC0,0xC0,0xC0,0x60,0x60,0x60,0x20,0x20,0x20,0x20,0x30,0x10,0x10,0x18,0x1C,0x0C,
  465. 0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x83,0x83,0x83,0x83,0x83,0xC3,
  466. 0xC3,0xC3,0xC2,0xC3,0xC3,0xC3,0xC3,0x49,0x41,0xE3,0xC3,0x73,0x77,0x73,0x7F,0x73,
  467. 0x77,0x76,0x66,0x66,0x66,0x44,0x64,0x7C,0x3C,0x7C,0x5C,0x18,0x00,0x00,0x00,0x00,
  468. 0x00,0x00,0x03,0x07,0x06,0x02,0x03,0x01,0x00,0x00,0x00,0x00,0x80,0xFF,0x28,0xB8,
  469. 0x18,0x18,0x18,0x18,0x08,0x08,0x0D,0x0D,0x0D,0x05,0x05,0x05,0x05,0x05,0x06,0x06,
  470. 0x06,0x07,0x06,0x06,0x07,0x05,0x05,0x05,0x05,0x0E,0x0E,0x1A,0x1A,0x1C,0x3C,0x3C,
  471. 0x38,0x30,0xF0,0xE0,0xC0,0xC0,0xC0,0xC0,0x80,0x80,0x00,0x80,0x81,0x07,0x22,0xF8,
  472. 0xFF,0xFF,0xF3,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,
  473. 0x03,0xF3,0x73,0x31,0xB9,0xFF,0xE7,0x3B,0x9F,0x8B,0x0D,0x05,0xC7,0xE5,0xE7,0xDF,
  474. 0xF3,0xFF,0xFF,0xFF,0xFF,0x6F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  475. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  476. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xC3,0xC0,0xA0,
  477. 0xFF,0x34,0x1C,0x0E,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x05,0x05,
  478. 0x07,0x07,0x06,0x06,0x06,0x0A,0x0A,0x0A,0x0E,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
  479. 0x0C,0x0C,0x08,0x08,0x08,0x18,0x19,0x13,0x16,0x17,0x17,0x16,0x1C,0x1D,0x18,0x1F,
  480. 0x1F,0x07,0x07,0x1D,0x78,0x78,0x38,0x30,0x30,0x20,0x20,0x30,0x30,0x30,0x30,0x38,
  481. 0x38,0x3F,0x35,0x36,0x67,0x77,0xF3,0xF2,0xE7,0xA6,0xA6,0x26,0x2F,0x0E,0x06,0x3F,
  482. 0x3F,0x3F,0x27,0xB3,0xB0,0x70,0x70,0x70,0x60,0x20,0xE0,0xC0,0xC0,0xC0,0x40,0xC0,
  483. 0xC0,0x40,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  484. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  485. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  486. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  487. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  488. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  489. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x03,0x07,0x06,0x06,0x0E,
  490. 0x0C,0x0D,0x0D,0x0D,0x08,0x08,0x0C,0x0C,0x0C,0x0C,0x0D,0x0C,0x18,0x1C,0x1A,0x1B,
  491. 0x1B,0x1A,0x19,0x1C,0x1F,0x1F,0x1E,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  492. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  493. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  494. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  495. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  496. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  497. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  498. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  499. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  500. };

  501. unsigned char code WJY_PAINT8[][64]={
  502. /*--  调入了一幅图像:C:\Users\Administrator\Desktop\12864武术\图片3\8.bmp  --*/
  503. /*--  宽度x高度=128x64  --*/
  504. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  505. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  506. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  507. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  508. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  509. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
  510. 0x80,0x80,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  511. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  512. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  513. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  514. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  515. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  516. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  517. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0x70,0x3E,0x3F,0xC1,
  518. 0xFD,0x8E,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  519. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  520. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
  521. 0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,
  522. 0xC0,0xC0,0xC0,0xC0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
  523. 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xC0,0xC0,0xC0,0xC0,0xC0,0x40,
  524. 0x40,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,
  525. 0x80,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xF0,0xF8,0xFF,0xE7,0x73,0x1C,0x85,0xC6,0x7F,
  526. 0x3B,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  527. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  528. 0x00,0x00,0x00,0xF0,0x98,0x88,0x88,0xCC,0xFC,0x64,0x7E,0x3E,0x72,0x72,0x62,0x2B,
  529. 0x33,0x3B,0x2D,0x2D,0x2D,0x27,0x23,0x21,0x21,0x21,0x20,0x20,0x20,0x21,0x21,0x20,
  530. 0x20,0x20,0x20,0xA0,0xA0,0xB0,0xA0,0xA8,0xA8,0xE8,0x68,0xD8,0xCC,0xCC,0x4C,0x4E,
  531. 0x44,0x84,0xC6,0x84,0x82,0x83,0x82,0x83,0x81,0x81,0x81,0x80,0x00,0x00,0x00,0x00,
  532. 0x00,0x00,0x00,0x08,0x01,0xFF,0xFF,0xFE,0xFE,0x3E,0x3A,0x1D,0x0E,0x07,0x05,0x05,
  533. 0x05,0x05,0x05,0x07,0x03,0x01,0x01,0x40,0xF0,0xBC,0x1C,0x0C,0x0C,0x0F,0x1F,0x98,
  534. 0xD8,0x78,0x38,0x18,0x28,0x38,0x18,0x38,0x5E,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,
  535. 0xEE,0x2E,0xF8,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  536. 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  537. 0x00,0x80,0xFF,0x25,0x03,0x63,0xE2,0xE2,0x62,0x23,0x23,0x21,0x21,0x21,0x21,0x21,
  538. 0x21,0x21,0x21,0x21,0x31,0x31,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
  539. 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x23,0x23,0x23,0x23,
  540. 0x23,0x23,0x33,0x31,0x30,0x31,0x1F,0x1F,0x07,0x0F,0x18,0x10,0x10,0x10,0x30,0x20,
  541. 0x60,0xE0,0xE0,0xC0,0x10,0x30,0x70,0xE0,0xD1,0xC7,0xAF,0xF9,0xE9,0x06,0x1F,0x3D,
  542. 0x2D,0x2E,0x3E,0x3B,0x3A,0x3E,0x3D,0x35,0x33,0x3B,0x3F,0x3F,0x2F,0x2F,0x33,0x15,
  543. 0x19,0x09,0x06,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  544. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  545. 0x00,0x0F,0x0F,0x0E,0x04,0x06,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  546. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  547. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  548. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  549. 0x00,0x00,0x01,0x01,0x07,0x7F,0xE0,0xC0,0x80,0x82,0x01,0x87,0x0F,0xFC,0xF0,0xC0,
  550. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  551. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  552. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  553. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  554. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  555. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  556. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  557. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x0E,0x75,0xE6,0xD7,0x8B,
  558. 0x6E,0x18,0xB0,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  559. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  560. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  561. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  562. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  563. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  564. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  565. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  566. 0x03,0x02,0x02,0x02,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  567. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


  568. };

  569. unsigned char code WJY_PAINT9[][64]={

  570. /*--  调入了一幅图像:C:\Users\Administrator\Desktop\12864武术\图片3\9.bmp  --*/
  571. /*--  宽度x高度=128x64  --*/
  572. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  573. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  574. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  575. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  576. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  577. 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,
  578. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  579. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  580. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  581. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  582. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  583. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  584. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  585. 0x00,0x00,0x00,0x00,0x80,0xFE,0x63,0x00,0x61,0xD1,0x6A,0x3F,0x00,0x00,0x00,0x00,
  586. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  587. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  588. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
  589. 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,
  590. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  591. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  592. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  593. 0x00,0x00,0xF8,0x3C,0x0F,0xC3,0xA0,0xA0,0x90,0xFF,0x3C,0x00,0x00,0x00,0x00,0x00,
  594. 0x00,0x00,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,
  595. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  596. 0x00,0x00,0x60,0xF8,0x9E,0x06,0x82,0xB3,0xF7,0x7F,0x62,0x66,0x2D,0x39,0x60,0x60,
  597. 0xE0,0xC0,0x40,0xC0,0x80,0x80,0x80,0x80,0x81,0x81,0x01,0x01,0x03,0x03,0x03,0x03,
  598. 0x06,0x0E,0x0E,0x0C,0x1C,0x1C,0x2C,0x2C,0x6C,0xC8,0xC8,0x88,0x08,0x08,0x08,0x08,
  599. 0x0C,0x0C,0x04,0x14,0x16,0x16,0x2A,0x3A,0x0A,0x02,0x02,0x02,0x06,0x04,0x0C,0x0C,
  600. 0x08,0x98,0xF0,0xF0,0xF0,0x30,0x38,0x18,0x08,0x08,0x08,0x08,0x0C,0x04,0x04,0x06,
  601. 0x02,0x03,0x03,0x00,0x01,0xE1,0xA1,0xD3,0xF7,0x4E,0xCC,0xF8,0x48,0x68,0x3C,0x2E,
  602. 0x3E,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0x7C,0x00,0x00,0x00,0x00,
  603. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  604. 0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  605. 0x01,0xFF,0xCB,0x12,0xE6,0xCC,0x74,0x39,0x19,0x19,0x19,0x0B,0x0E,0x0E,0x0E,0x0C,
  606. 0x0C,0x0C,0x0C,0x0C,0x08,0x08,0x08,0x08,0x08,0x18,0x18,0x11,0x11,0x12,0x16,0x14,
  607. 0x2C,0x38,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x70,0x60,0x40,0x40,0x60,0x20,
  608. 0x20,0x3F,0x1F,0x3F,0x3F,0x66,0xEE,0xFE,0xFC,0xCE,0xEC,0xDC,0xDC,0xCC,0xCC,0x78,
  609. 0x30,0x20,0xE2,0xC2,0x03,0x00,0x04,0x00,0x09,0x0F,0x2F,0x7F,0xF8,0x1C,0x18,0x38,
  610. 0x38,0x1E,0x1E,0x16,0x1B,0x1F,0x1F,0x1F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,
  611. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  612. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  613. 0x07,0x1F,0x17,0x1E,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  614. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  615. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  616. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  617. 0x00,0x00,0x00,0x07,0x0F,0x1E,0x1C,0x30,0x60,0xC0,0x80,0x00,0x81,0x07,0x0E,0x3C,
  618. 0xF0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  619. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  620. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  621. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  622. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  623. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  624. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  625. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0D,0x0C,0x19,0xF3,0xEA,
  626. 0x8F,0x1F,0x38,0x60,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  627. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  628. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  629. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  630. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  631. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  632. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  633. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,
  634. 0x0F,0x1C,0x3B,0x23,0x3D,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  635. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


  636. };


  637. *******************************************************************************************
  638. ** 函数名称:  void delay(uint i)
  639. ** 功能描述:  延时函数  
  640. ** 输 入:    uint i(需要延时的数量)
  641. **         
  642. **        
  643. ** 输 出:
  644. **         
  645. ** 全局变量:
  646. ** 调用模块:
  647. **
  648. ** 作 者:    吴鉴鹰
  649. ** 日 期:     14.03.11
  650. ********************************************************************************************/
  651. void delay(uint i)
  652. {
  653.         while(--i);
  654. }


  655. *******************************************************************************************
  656. ** 函数名称:  void CHECK_BS_HS()
  657. ** 功能描述:  读“忙”函数   
  658. ** 输 入:   
  659. **         
  660. **        
  661. ** 输 出:
  662. **         
  663. ** 全局变量:
  664. ** 调用模块:
  665. **
  666. ** 作 者:    吴鉴鹰
  667. ** 日 期:     14.03.11
  668. ********************************************************************************************/
  669. void CHECK_BS_HS()//读“忙”函数-----数据线的最高位DB71则busy               
  670. {
  671.         P0=0x00;
  672.            LCD_RS_OUT=0;  
  673.            LCD_RW_OUT=1;
  674.         LCD_EN_OUT=1;
  675.         while(P0 & 0x80);
  676.         LCD_EN_OUT=0;
  677. }


  678. *******************************************************************************************
  679. ** 函数名称:  void write_LCD_command(uchar value)//写命令函数
  680. ** 功能描述:  写命令函数   
  681. ** 输 入:    uchar value(写入的命令值)
  682. **         
  683. **        
  684. ** 输 出:
  685. **         
  686. ** 全局变量:
  687. ** 调用模块:
  688. **
  689. ** 作 者:    吴鉴鹰
  690. ** 日 期:     14.03.11
  691. ********************************************************************************************/
  692. void write_LCD_command(uchar value)//写命令函数
  693. {
  694.    CHECK_BS_HS();        //对LCD的每次读写都要读忙
  695.    LCD_RS_OUT=0;                 //选择命令
  696.    LCD_RW_OUT=0;                 //读操作
  697.    LCD_DATABUS_OUT =value;
  698.    LCD_EN_OUT=1;                //LCD_EN_OUT由1----0锁存有效数据
  699.    delay(2);
  700.    LCD_EN_OUT=0;
  701. }


  702. *******************************************************************************************
  703. ** 函数名称:  void write_LCD_data(uchar value)
  704. ** 功能描述:  写数据函数   
  705. ** 输 入:    uchar value(写入的相应的数值)
  706. **         
  707. **        
  708. ** 输 出:
  709. **         
  710. ** 全局变量:
  711. ** 调用模块:
  712. **
  713. ** 作 者:    吴鉴鹰
  714. ** 日 期:     14.03.11
  715. ********************************************************************************************/
  716. void write_LCD_data(uchar value)//写数据函数        
  717. {
  718.    CHECK_BS_HS();
  719.    LCD_RS_OUT=1;                         //选择数据
  720.    LCD_RW_OUT=0;        
  721.    LCD_DATABUS_OUT =value;
  722.    LCD_EN_OUT=1;                        //LCD_EN_OUT由1----0锁存有效数据
  723.    delay(2);
  724.    LCD_EN_OUT=0;
  725. }


  726. *******************************************************************************************
  727. ** 函数名称:  void Set_page(uchar page)
  728. ** 功能描述:  设置“页”LCD12864共8页,一页是8行点阵点   
  729. ** 输 入:    uchar page(设置相应的页数)
  730. **         
  731. **        
  732. ** 输 出:
  733. **         
  734. ** 全局变量:
  735. ** 调用模块:
  736. **
  737. ** 作 者:    吴鉴鹰
  738. ** 日 期:     14.03.11
  739. ********************************************************************************************/
  740. void Set_page(uchar page)//设置“页”LCD12864共8页,一页是8行点阵点        
  741. {
  742.   page=0xb8|page;                 //页的首地址为0xB8
  743.   write_LCD_command(page);
  744. }


  745. *******************************************************************************************
  746. ** 函数名称:  void Set_column(uchar startline)
  747. ** 功能描述:  LCD的显示设置相应的行数   
  748. ** 输 入:    uchar startline(设置相应的行数)
  749. **         
  750. **        
  751. ** 输 出:
  752. **         
  753. ** 全局变量:
  754. ** 调用模块:
  755. **
  756. ** 作 者:    吴鉴鹰
  757. ** 日 期:     14.03.11
  758. ********************************************************************************************/
  759. void SET_line_HANSHU(uchar startline)  //设置显示的起始行           
  760. {
  761.   startline=0xC0|startline;     //起始行地址为0xC0
  762.   write_LCD_command(startline); //设置从哪行开始:共0--63;一般从0 行开始显示
  763. }


  764. *******************************************************************************************
  765. ** 函数名称:  void Set_column(uchar column)
  766. ** 功能描述:  LCD的显示设置相应的列数   
  767. ** 输 入:    uchar column(设置相应的列数)
  768. **         
  769. **        
  770. ** 输 出:
  771. **         
  772. ** 全局变量:
  773. ** 调用模块:
  774. **
  775. ** 作 者:    吴鉴鹰
  776. ** 日 期:     14.03.11
  777. ********************************************************************************************/
  778. void Set_column(uchar column)        //设置显示的列        
  779. {
  780.   column=column & 0x3f;                 //列的最大值为64
  781.   column= 0x40|column;                 //列的首地址为0x40
  782.   write_LCD_command(column);//规定显示的列的位置
  783. }


  784. *******************************************************************************************
  785. ** 函数名称:  void SetOnOff(uchar onoff)
  786. ** 功能描述:  LCD的显示开关函数:0x3E是关显示,0x3F是开显示 )   
  787. ** 输 入:   
  788. **         
  789. **        
  790. ** 输 出:
  791. **         
  792. ** 全局变量:
  793. ** 调用模块:
  794. **
  795. ** 作 者:    吴鉴鹰
  796. ** 日 期:     14.03.11
  797. ********************************************************************************************/
  798. void SetOnOff(uchar onoff)        //显示开关函数:0x3E是关显示,0x3F是开显示   
  799. {
  800.         onoff=0x3e|onoff; //0011 111x,onoff只能为0或者1
  801.         write_LCD_command(onoff);
  802. }

  803. *******************************************************************************************
  804. ** 函数名称:  void SelectScreen(uchar screen)
  805. ** 功能描述:  LCD的选择屏幕(0:全屏:1:左半屏 :有半屏)   
  806. ** 输 入:   
  807. **         
  808. **        
  809. ** 输 出:
  810. **         
  811. ** 全局变量:
  812. ** 调用模块:
  813. **
  814. ** 作 者:    吴鉴鹰
  815. ** 日 期:     14.03.11
  816. ********************************************************************************************/
  817. void SelectScreen(uchar screen)        //选择屏幕
  818. {                                                  
  819.    switch(screen)
  820.    {
  821.      case 0: LCD_CS1_OUT=0;LCD_CS2_OUT=0;break; //全屏     
  822.      case 1: LCD_CS1_OUT=0;LCD_CS2_OUT=1;break;//左半屏        
  823.      case 2: LCD_CS1_OUT=1;LCD_CS2_OUT=0;break;//右半屏      
  824.      default:break;
  825.    }
  826. }

  827. *******************************************************************************************
  828. ** 函数名称:  void ClearScreen(uchar screen)
  829. ** 功能描述:  LCD的清屏函数   
  830. ** 输 入:   
  831. **         
  832. **        
  833. ** 输 出:
  834. **         
  835. ** 全局变量:
  836. ** 调用模块:
  837. **
  838. ** 作 者:    吴鉴鹰
  839. ** 日 期:     14.03.11
  840. ********************************************************************************************/
  841. void ClearScreen(uchar screen)        //清屏函数  
  842. {         
  843.      uchar i,j;
  844.      SelectScreen(screen);                //0--全屏;1---左半屏;2---右半屏
  845.          for(i=0;i<8;i++)                         //控制页数0-7,共8页
  846.          {
  847.         Set_page(i);
  848.                 Set_column(0);
  849.               for(j=0;j<64;j++)           //控制列数0-63,共64列
  850.                   {
  851.           write_LCD_data(0x00); //写入0,地址指针自加1
  852.               }
  853.      }                                         
  854. }

  855. *******************************************************************************************
  856. ** 函数名称:  void InitLCD()
  857. ** 功能描述:  LCD的初始化  
  858. ** 输 入:   
  859. **         
  860. **        
  861. ** 输 出:
  862. **         
  863. ** 全局变量:
  864. ** 调用模块:
  865. **
  866. ** 作 者:    吴鉴鹰
  867. ** 日 期:     14.03.11
  868. ********************************************************************************************/
  869. void InitLCD()         //LCD的初始化  
  870. {
  871.         CHECK_BS_HS();
  872.         SelectScreen(0);
  873.         SetOnOff(0); //关显示
  874.         SelectScreen(0);
  875.         SetOnOff(1); //开显示
  876.         SelectScreen(0);
  877.         ClearScreen(0);//清屏
  878.         SET_line_HANSHU(0); //开始行:0
  879. }

  880. *******************************************************************************************
  881. ** 函数名称:  void Display_WORD(uchar ss,uchar page,uchar column,uchar *p)
  882. ** 功能描述:  将汉字显示在LCD12864液晶屏上
  883. ** 输 入:    uuchar ss,uchar page,uchar column,uchar *p
  884. **         
  885. **        
  886. ** 输 出:
  887. **         
  888. ** 全局变量:
  889. ** 调用模块:
  890. **
  891. ** 作 者:    吴鉴鹰
  892. ** 日 期:     14.03.11
  893. ********************************************************************************************/
  894. void Display_WORD(uchar ss,uchar page,uchar column,uchar *p)
  895. {
  896.         uchar i;
  897.         SelectScreen(ss);
  898.         Set_page(page);                //写上半页
  899.         Set_column(column); //控制列
  900.         for(i=0;i<16;i++)          //控制16列的数据输出
  901.         {
  902.                 write_LCD_data(p); //汉字的上半部分
  903.         }
  904.         Set_page(page+1);        //写下半页
  905.         Set_column(column);        //控制列
  906.         for(i=0;i<16;i++)        //控制16列的数据输出
  907.         {
  908.                 write_LCD_data(p[i+16]);        //汉字的下半部分
  909.         }
  910. }


  911. /*******************************************************************************************
  912. ** 函数名称:  void DISPLAY_BMP_COLOR(uchar a[][64])
  913. ** 功能描述:  对吴鉴鹰武术指导的LCD12864的显示
  914. ** 输 入:   uchar a[][64](需要显示的图片取得字摸)
  915. **         
  916. **        
  917. ** 输 出:
  918. **         
  919. ** 全局变量:
  920. ** 调用模块:
  921. **
  922. ** 作 者:    吴鉴鹰
  923. ** 日 期:     14.03.11
  924. ********************************************************************************************/
  925. void DISPLAY_BMP_COLOR(uchar a[][64])//显示图形的左边部分
  926. {
  927.         uchar i,j;

  928.         for(j=0;j<8;j++)
  929.         {        
  930.                 SelectScreen(1);
  931.                 Set_page(j);
  932.                 Set_column(0);
  933.                 for(i=0;i<64;i++)
  934.                 {
  935.                         write_LCD_data(a[2*j]);//每隔一行取一次数组中的数据
  936.                 }
  937.                 SelectScreen(2);
  938.                 Set_page(j);
  939.                 Set_column(0);
  940.                 for(i=0;i<64;i++)
  941.                 {
  942.                         write_LCD_data(a[2*j+1]);//每隔一行取一次数组中的数据
  943.                 }        
  944.         }        
  945. }

  946. /*******************************************************************************************
  947. ** 函数名称:  main()
  948. ** 功能描述:  对吴鉴鹰武术指导的LCD12864的显示
  949. ** 输 入:
  950. **         
  951. **        
  952. ** 输 出:
  953. **         
  954. ** 全局变量:
  955. ** 调用模块:
  956. **
  957. ** 作 者:    吴鉴鹰
  958. ** 日 期:     14.03.11
  959. ********************************************************************************************/
  960. void main()
  961. {  

  962.         CHECK_BS_HS();
  963.         SelectScreen(0);
  964.         SetOnOff(0);    //关显示
  965.         SelectScreen(0);
  966.         SetOnOff(1);    //开显示
  967.         SelectScreen(0);
  968.         ClearScreen(0);//清屏
  969.         SET_line_HANSHU(0); //开始行:0
  970.         //InitLCD();                //初始12864  
  971.            ClearScreen(0);                //清屏
  972.            SET_line_HANSHU(0);                //显示开始
  973.         for(;;)
  974.         {
  975.                 DISPLAY_BMP_COLOR(WJY_PAINT1);
  976.                 DISPLAY_BMP_COLOR(WJY_PAINT2);
  977.                 DISPLAY_BMP_COLOR(WJY_PAINT3);
  978.                 DISPLAY_BMP_COLOR(WJY_PAINT4);
  979.                 DISPLAY_BMP_COLOR(WJY_PAINT5);
  980.                 DISPLAY_BMP_COLOR(WJY_PAINT6);
  981.                 DISPLAY_BMP_COLOR(WJY_PAINT7);
  982.                 DISPLAY_BMP_COLOR(WJY_PAINT8);
  983.                 DISPLAY_BMP_COLOR(WJY_PAINT9);
  984.         }               

  985. }
复制代码


为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

133

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-10-25 21:26 | 显示全部楼层
CH340驱动在win8.1 64bit上装不了怎么办啊

点评

可以装的,你这个是数字签名的问题吗?是在不行用驱动精灵装试一下  详情 回复 发表于 2014-12-12 13:49

回复

使用道具 举报

2

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2014-11-11 23:07 | 显示全部楼层
好贴

回复

使用道具 举报

2

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2014-12-10 23:14 | 显示全部楼层
谢谢

回复

使用道具 举报

1163

TA的帖子

7

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2014-12-12 13:39 | 显示全部楼层
吴鉴鹰. 发表于 2014-6-17 10:53
10、吴鉴鹰单片机实战项目精讲(连载)之超声波测距仪设计(一)——原理图相关资料请点击下载:






图1
1、超声波测距原理
发射器发出的超声波以速度v在空气中传播,在到达被测物体是被反射返回,由接受器接受,其往返时间为t,有s=vt/2即可算出被测物体的距离。由于超声波也是一种声波,其声速v与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应该通过温度补偿的方法加以校正。

1超声波测距仪原理框图单片机发出40khz的信号,经放大后通过超声波发射器输出;超声波接受器将接受到得超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行辨别、计算,得出距离数并送LCD显示并送语音播报模块播报。
2、吴鉴鹰的项目成品具有的功能
1) 具有超声波测距功能,测量距离0.20m~5.00m测距精度±1㎝。2) 具有测量距离数值无线传输功能。3) 实时显示测量的距离,显示格式为:X.XXm。4) 汉字提醒显示:距离在0.40m~1.00m,显示“危险距离”并用红色LED灯指示;距离在1.00m~2.00m,显示“保持距离”,并用黄书LED灯指示;距离在2.00m以上,显示“安全距离”并用绿色LED灯指示。5) 具有实时语音播报功能,实时播报测量距离数值,格式:X.XXm,实时播报时间间隔≤10s,实时播报声音清晰明亮、无明显失真,在1m距离处人耳能准确分辨。语音播报要与显示同步。

图2
3、超声波测距方法的选择
       超声波测距的原理一般采用渡越时间法TOF(time of flight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离。测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0MHZ晶振,所以此系统的测量精度理论上可以达到毫米级。由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。根据设计任务、控制对象和现有条件本系统硬件电路采用由单片机最小系统、温度补偿电路、超声波发射电路、超声波接收电路、显示电路无线通信电路以及语音播报电路构成。本超声波测距仪的具体工作过程如下,单片机控制的振荡源产生40kHz的频率信号来驱动超声传感器。每次发射包含6个脉冲左右,当第一个超声波脉冲发射后,计数器开始计数,在检测到第一个回波脉冲的瞬间,计数器停止计数,得到从发射到接收的时间t 后,单片机读取温度值补偿声速,利用测距公式可计算出被测距离,同时由无线通信模块将测量数据传到下位机进行显示和语音播报。系统总体框图如图所示。

图3 发射模块

图 4
图4 接收模块
4、超声波发生器选择
超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。测距仪的分辨率取决于对超声波传感器的选择。超声波传感器是一种采用压电效应的传感器,常用材料是压电式陶瓷。由于超声波在空气传播时会有相当的衰减,衰减的程度与频率的高低成正比;而频率高分辨率也高,故短距离测量时应选择高频率的传感器,而长距离测量时应用低频率的传感器。
5、超声波接受传感器
超声探头的核心是其塑料外套或者金属外套中的一块压电晶片。构成晶片的材料可以有许多种。晶片的大小,如直径和厚度也各不相同,因此每个探头的性能是不同的,我们使用前必须预先了解它的性能。超声波传感器的主要性能指标包括:工作频率。工作频率就是压电晶片的共振频率。当加到它两端的交流电压的频率和晶片的共振频率相等时,输出的能量最大,灵敏度也最高。工作温度。由于压电材料的居里点一般比较高,特别时诊断用超声波探头使用功率较小,所以工作温度比较低,可以长时间地工作而不失效。医疗用的超声探头的温度比较高,需要单独的制冷设备。灵敏度。主要取决于制造晶片本身。机电耦合系数大,灵敏度高;反之,灵敏度低。因此超声波接受传感器应该应用集成电路CX20106A,CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路(如图2-3)。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容CS的大小,可以改变接收电路的灵敏度和抗干扰能力。此部分电路在集成芯片上2.5显示单元选择显示单元是计算机系统开发时使用的主要设备之一,它可将计算机的运算结果、中间结果、存储器地址以及存储器、寄存器中的内容显示出来,从而实现人机对话。可以做显示器的有:LED,LCD,CRT等。CRT就是常见的显像管式的显示器。优点是颜色视觉效果好,视角宽,可靠性高,便宜;缺点是体积大耗电多,有微量的X射线辐射。LED就是发光二极管。LED一般适合做大屏幕的显示设备,最突出的有点那就是屏幕尺寸可以不受限制,亮度可以做的很高,其他的如显色性、对比度等都不如CRT显示器。但是考虑到本设计需要显示测量距离,补偿温度以及危险,保持 ,安全等警告信号。所以选择采用128*64液晶模块。2.6语音播报电路选择语音播报语音芯片有很多种,例如WT1380、WT588D等。WT1380具有多种报警功能,定时器功能,时钟输出功能,中断输出功能以及语音播报功能。它的语音功能和万年历功能可以同时工作,主频采用RC振荡,副频采用32.768K晶振精确分频。可以计算年、月、日、时、分、秒等信息,并可以将时间信息反馈给主控单片机。因而,WT1380是一款性价比极高的语音时钟芯片。但是本设计不要求芯片有可以计算年、月、日、时、分、秒等信息的复杂功能。所以播报电路采用WT588D系列的集单片机和语音电路于一体的可编辑语音芯片。WT588D系列语音单片机是广州唯创科技有限公司联合台湾华邦共同研发出来的集单片机和语音电路于一体的可编辑语音芯片。功能多音质好应用范围广性能稳定是WT588D系列语音单片机的特长,弥补了以往各类语音芯片应用领域狭小的缺陷,MP3控制模式、按键控制模式、按键组合控制模式、并口控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制I/O口扩展输出模式,让应用人员能将产品投放在几乎可以想象得到的场所。WT588D是一款功能强大的可重复擦除烧写的语音单片机芯片。WT588D让语音芯片不再为控制方式而寻找合适的外围单片机电路,高度集成的单片机技术足于取代复杂的外围控制电路。配套WT-APP上位机操作软件可随意更换WT588D语音单片机芯片的任何一种控制模式,把信息下载到SPI-Flash上即可。软件操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。2.7温度传感器的选择大家知道,声音在不同温度的空气中传播速度是不同的,所以这里要考虑到温度补偿的问题。温度传感器有很多种,例如温度传感器AD590。AD590是美国模拟器件公司生产的单片集成两端感温电流源。流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数。AD590的测温范围为-55℃~+150℃。AD590的电源电压范围为4V~30V。电源电压可在4V-6V范围变化,电流变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。输出电阻为710WM。它的精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。但是考虑到成本问题我选用TS-18B20数字温度传感器。该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需备用电源测量。温度范围为-55°C至+125℃ 。-10°C至+85°C范围内精度为±0.5°C
温度传感器可编程的分辨率为9~12位温度转换为12位数字格式最大值为750毫秒用户可定义的非易失性温度报警设置应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。


6、硬件电路的设计 --------------------------------------------

硬件电路的设计主要包括单片机系统及显示电路、语音播报电路、温度补偿电路、无线传输、超声波发射电路和超声波检测接受电路五部分。单片机采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定的时钟频率,减小测量误差。单片机用P3.6端口输出超声波换能器所需的40KHz的方波信号,利用外部中断1口检测超声波接受电路输出的返回信号。显示单元部分采用12864液晶模块。3.1 AT89S51单片机的功能及特点AT89S51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4K bytes的课反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度。非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89S51单片机可以为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。3.1.1主要性能参数Ø 与MCS—51产品指令系统完全兼容。Ø 4K字节可以重复擦写Flash闪速存储器。Ø 1000吃擦写周期。Ø 全静态操作:0Hz—24Hz。Ø 三级加密程序存储器。Ø 128*8字节内部RAM。Ø 32个可编程I/O口线。Ø 6个中断源。Ø 可编程串行UART通道。Ø 低功耗空闲和掉电模式。3.1.2功能特性概述AT89S51提供以下功能:Ø 4k字节Flash闪速存储器;Ø 128字节内部RAM;Ø 32个I/O口线;Ø 两个16位定时器/计时器;Ø 一个5向量两级中断结构;Ø 一个双工串行口通信;Ø 片内振荡器及时钟电路。同时,AT89S51可以降至0Hz的静态逻辑操作,并支持两种软件可选的节点工作模式。空闲方式停止CPU的工作,当允许RAM,定时/计数器,串行口及中断系统继续工作。掉电式保存RAM中的内容,但振荡器停止工作并禁止其他左右部件工作直到下一个硬件复位。

图5
图5,AT89S51单片机 3.2单片机最小系统其作用主要是为了保证单片机系统能正常工作。如图3-2所示,单片机最小系统主要由AT89S51单片机、外部振荡电路、复位电路和+5V电源组成。在外部振荡电路中,单片机的XTAL1和XTAL2管脚分别接至由12MHZ晶振和两个30PF电容构成的振荡电路两侧,为电路提供正常的时钟脉冲。在复位电路中,单片机RESET管脚一方面经20 F的电容接至电源正极,实现上电自动复位,另一方面经开关s接电源。其主要功能是把PC初始化为0000H,是单片机从0000H单元开始执行程序,除了进入系统的初始化之外,当由于程序出错或者操作错误使系统处于死锁状态时,为了摆脱困境,也需要按复位键重新启动。因此,复位电路是单片机系统中不可缺少的一部分。


图6
图6,单片机最小系统,单片机测距原理单片机发出超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差tr,然后求出距离S=Ct÷2  式中的C为超声波波速。限制该系统的最大可测距离存在4个因素:超声波的幅度、反射的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小的可测距离。为了增加所测量的覆盖范围、减小测量误差,可采用多个超声波换能器分别作为多路超声波发射/接收的设计方法,限于实际需要,本电路只采用单路超声波发射接收。由于超声波属于声波范围,其波速C与温度有关。
7、超声波发射电路
超声波发射电路压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部有两个压电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。

图7
发射电路主要由反相器74LS04和超声波发射换能器T构成,如图所示,单片机P2.7端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R2、R3一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。
8、超声波检测接收电路
超声波接收电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容C16
的大小,可以改变接收电路的灵敏度和抗干扰能力。其电路由图所示。

图8

CX20106A的引脚注释:1脚IN:超声波信号输入端,该脚的输入阻抗约为40kΩ。2脚AGC:该脚与GND之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益和频率特性。增大电阻R或减小C,将使负反馈量增大,放大倍数下降,反之则放大倍数增大。但C的改变会影响到频率特性,一般在实际使用中不必改动,推荐选用参数为R=4.7Ω,C=3.3μF。3脚C0:该脚与GND之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.3μF。4脚GND:接地端。5脚RC0:该脚与电源端VCC接入一个电阻,用以设置带通滤波器的中心频率f0,阻值越大,中心频率越低。例如,取R=200kΩ时,fn≈42kHz,若取R=220kΩ,则中心频率f0≈38kHz。6脚C:该脚与GND之间接入一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。7脚OUT:遥控命令输出端,它是集电极开路的输出方式,因此该引脚必须接上一个上拉电阻到电源端,该电阻推荐阻值为22kΩ,没有接收信号时该端输出为高电平,有信号时则会下降。8脚RC1:电源正极,4.5V~5V。9、温度补偿电路
DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,测温范围为-55~125℃,最大分辨率可达0.0625℃。DS18B20可以直接读出被测温度值,而且采用了一线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。测温电路图3-5所示。DS18B20温度传感器:(1):技术性能描述独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。Ø 测温范围-55℃~+125℃,固有测温分辨率0.5℃。Ø 工作电源:3~5V/DC。Ø 在使用中不需要任何外围元件。Ø 测量结果以9~12位数字量方式串行传送。Ø 不锈钢保护管直径Φ6。Ø 适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温。Ø 标准安装螺纹M10X1,M12X1.5,G1/2任选。Ø PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
10、显示模块
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64。内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字。12864液晶模块可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。


图9
11、语音播报电路
语音播报电路采用WT588D系列的集单片机和语音电路于一体的可编辑语音芯片。功能多音质好应用范围广性能稳定是WT588D系列语音单片机的特长,同时具有MP3控制模式、按键控制模式、按键组合控制模式、并口控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制I/O口扩展输出模式。可控制的语音地址位能达到220个!每个地址位里能加载可组合语音为128段语音。只需通过适当的访问地址就可以实现语音播报,使用方便,语音播报电路设计如图所示。


图  10
11、 APC240无线通信模块
无线发射与接收电路采用APC240无线通信模块。它是新一代的多通道嵌入式无线数传模块,其可设置众多的频道,发射功率高,而仍然具有较低的功耗。它可以在工业等强干扰的恶劣环境中使用。在任何状态下都可以1次传输256bytes的数据,当设置空中波特率大于串口波特率时,可1次传输无限长度的数据。同时它还提供标准的UART/TTL,RS485和RS232三种接口1200/2400/4800/9600bps四速率,和三种接口校验方式.采用串口设置模块参数。具有丰富便洁的软件编程设置选项。无线发射与接收电路见

图 11

图12

Ø 接口方式:232/485/TTL串口,格式有8N1/8E1/8O1可选;Ø 接受灵敏度高,视距可靠传输距离可达1200m;Ø 采用FSK的方式调制,支持OOK/ASK/MSK调制;Ø 载频433MHz,可定制315M/868M/915M等其他ISM频段;Ø 提供PC机配置软件,可以灵活设置模块的各种参数;Ø 串口速率:4800/9600/19200/38400/57600/115200bps;Ø 空中速率:5K/10K/20K/30K/40K/50K/77K/100K/150K/200K/250Kbps;Ø 功耗和休眠省电模式:功率<100 mw,接收电流<35mA,发射电流<100mA,休眠时电流<12uA;Ø 支持多个字网组群工作模式,网络地址配置相同的模块间才可以相互通讯;Ø 具有中继功能,可选择中继节点进行传输,有效扩大传输距离;Ø 支持透明传输方式和地址传输方式,可以组成点对点、点对多点、对点对多点等无线通信网络;Ø 5V直流供电(可以选择3.3V);3.9.2APC240无线通信模块主要技术指标工作频率:433M        调制方式:FSK发射功率:<20dBm(100mW)接收灵敏度:-119dB发射电流:<35mA接收电流:<100mA休眠电流:<12uA工作信道:32个频段选择数据接口:232/485/TTL串口数据格式:8N1/8E1/8O1串口速率:4800/9600/19200/38400/57600/115200bps空中速率:5K/10K/20K/30K/40K/50K/77K/100K/150K/200K/250Kbps硬件接口:2.0插针/插座通讯距离:0-700米(10dbm,10kbps,可视距离)天线阻抗:50Ω工作温度:-40-85℃供电方式:DC3.3V/5V尺寸:32.3x54.0mm(不包括天线)



硬件很彪!!!!!

回复

使用道具 举报

1163

TA的帖子

7

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2014-12-12 13:49 | 显示全部楼层
国土安全局 发表于 2014-10-25 21:26
CH340驱动在win8.1 64bit上装不了怎么办啊


可以装的,你这个是数字签名的问题吗?是在不行用驱动精灵装试一下

回复

使用道具 举报

1163

TA的帖子

7

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2014-12-12 13:50 | 显示全部楼层
期待楼主的更多大作

点评

谢谢鼓励支持,前段时间有点忙!现在会持续更新的!  详情 回复 发表于 2014-12-16 16:35

回复

使用道具 举报

21

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2014-12-15 21:54 | 显示全部楼层
跟老师好好学习下

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-12-16 16:35 | 显示全部楼层
dj狂人 发表于 2014-12-12 13:50
期待楼主的更多大作

谢谢鼓励支持,前段时间有点忙!现在会持续更新的!
为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

122

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-12-25 01:26 | 显示全部楼层
感谢老师的慷慨解囊,正好我有很多单片机不懂得地方,借鉴你老人家的经验丰满自己,多谢啦!

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-12-26 10:35 | 显示全部楼层
本帖最后由 吴鉴鹰. 于 2014-12-26 10:43 编辑

21、吴鉴鹰单片机项目征服12864系列(连载)之基于单片机驱动12864的拳击动画的显示(一)

上传完武术的动画,怎么能不上传拳击动画呢?吴鉴鹰业余时间可是很喜欢练练拳击的,强身健体,很有益处!所以鹰哥也建议大家有空多锻炼身体,有一个号的身体才是战斗单片机的本钱。Come on! Baby!
      下面来一段拳击的简单介绍,毕竟作为一个工科生多了解一点是没有错的!
   发展简史     古代拳击
    6a63f6246b600c33214449221b4c510fd9f9a11f.jpg
       拳击运动源远流长,它起源于人类产生之初。为了生存和竞争,人类发明了它。所以最初它是保护人们生命财产的一种主要手段。拳击和射箭都是人类古时的生存技巧,原始人用以强健体魄而可以于恶劣的环境之下生存。而在弓箭未面世前,人类则要以拳头和腿脚来进行自卫。这是拳击的雏形。最早见于历史记载是公元前四十世纪的埃及。
9128-12041023362273.jpg
你是不是感觉一名拳击运动员真的很需要勇气和执着的品格呢?
      大约在公元前十七世纪,拳击运动经过地中海的克里克岛传播到了古希腊。而考古学家在一个公元前五世纪爱琴海海岸遗址里面发掘出来的一对磁瓶上,则有两人相互攻防的拳击图案。并且在希腊神话中,传说雅典王子赛希阿斯(公元前一千年)就通晓拳术,并曾玩过这种拳击。在古希腊,这项运动被称为角力拳击,据说拳击手套里面装有铁蒺藜,激烈的搏斗常常以失败者的殒命而告终。而在美索不达米亚平原的考古发掘当中,也发现了一千七百年以前拳击活动的遗迹。
        自从古罗马皇帝西奥多雷斯下令禁止拳击后,拳坛几乎寂寞了四个多世纪。主要原因是由于人们受古罗马拳击的粗野方式影响而难以忘怀;另一方面则是因为欧洲各地时兴骑马斗剑,马上技术的发展抑制了拳击的发展。骑士体育这种体育方式是属于统治阶级和贵族阶层的运动体育方式,而且参与者必须是信奉基督教的教徒徒才能参与。而拳击作为一种自卫技术、娱乐活动,仍然在民间不断地流行着;虽然仍在持续流行,只是由于受到皇帝颁布的法令影响因此不能公开比赛。
78310a55b319ebc495019a758326cffc1f1716e4.jpg
      到了公元八世纪,由于古罗马帝国被人为地拆分为奥斯曼土耳其帝国和由原来的古罗马帝国延伸下来的保留部分;在奥斯曼大帝执政期间;法庭制定了一种新制度:“斗审”。并且规定:如果是贵族间的诉讼,就接贵族的习俗;产生诉讼的双方以骑马、穿护身的甲胄进行西洋剑击决斗等方式来决胜负;而如果是平民间的诉讼,则以拳击来决胜负。就是在审判中遇到疑难案件时,所谓的“斗审”就是命令进行诉讼的双方进行决斗;最终决斗胜利的其中一方将可以向法庭提出一些诉求,法庭将接纳决斗胜利者的诉求并加以考虑;如果诉求合理,则法庭会将决斗胜利者的诉求作为判决的最终请求,因此作为决斗的胜利者会在法庭“斗审”时获得胜诉。从此,拳击在平民百姓中更为广泛地流传了。

aa18972bd40735fa246264559f510fb30e24084f.jpg
       公元一千两百年间,传教士圣倍纳丁因为看到当时有许多青年在斗剑中丧生的悲剧,便想设法推行以拳击决斗来代替西洋剑击决斗。因此他废止了以古罗马时代为训练标准的拳击野蛮训练方法,并向大家提倡赤手拳击;希望青年在练习过拳击后会喜欢上这项决斗方式,进而使之成为以锻炼身体为原则的体育活动。为了推广这项运动,圣倍纳了在意大利的西纳开设了一所拳击训练学校;并且亲自担任校长与拳击教练。在举办拳赛时担任拳赛主持,执行裁判工作。在赛程中如果遇到有可能发生危险的紧急关头,他会及时命令停止比赛以防止不必要的伤害事故发生。这种经过改良的拳击,逐渐在青年中流行起来。圣倍纳了一生始终热衷于拳击运动,使中断了几个世纪的拳击东山再起,成为拳击史上不可磨灭的里程碑。到了十六世纪拳击运动越过了多巴海峡,传播到了英国。公元十七世纪末,拳击在英国复兴起来。公元十八世纪初在英国出现了有奖的拳击比赛。一七一九年产生了被称为现代拳击始祖的第一位英国拳击冠军——詹姆斯·菲格(一六九五至一七三四年),并把冠军保持了十一年之久,因此他获得了“无敌将军”的美称。当时菲格的拳击是没有防护的、徒手的“生死”型格斗。后来他创立的世界上最早的拳击学校,成为英国拳击运动员的培养摇篮。菲格死后,他的得意门生约翰·布劳顿(一七零四至一七八九年)则继承了他的拳击事业。为了使拳击减少伤害事故,他组织了拳击俱乐部。为了使拳击更富有体育精神,他于公元一七四三年八月十六日针对拳击比赛的混乱局面,制定出了最早的一份拳击规则,也是世界上最早的职业拳击运动比赛规则,并被命名为“布劳顿规则”。规则主要规定不准打击已倒地者和不准打击腰部以下任何部位。同时,布劳顿又在一七四七年设计了拳击手套,发明了第一种软皮手套以保护脸部皮肤。后来布劳顿还在伦敦建造了一所大型竞技场,作为专门教授拳击和组织拳赛的中心。由于布劳顿对
现代拳击运动
d1160924ab18972be0f89e1ae7cd7b899f510a1b.jpg
       近代拳击运动的开展做出了贡献,为拳击运动提出了新的方向;同时对拳击的健康发展起了重要作用,因此后人称他为“拳击之父”。
公元一七九二年,英国拳击冠军门道沙为了推广拳击;加入马戏团到英伦三岛各地做拳击表演,并积极宣传拳击。一七九八年他写成拳击史上第一本拳击指南并定名为“拳击艺术”,此指南深受人们的欢迎。门道沙是位研究拳击的先驱者,也是开展拳击运动的功臣。
        现代拳击运动于十八世纪起源于英国,当时比赛不戴拳套;亦无规则和时间限制,直至其中一方丧失继续比赛的能力为止。一八三八年在布劳顿最初制定的规则基础上,英国制定颁布了新的《伦敦拳击锦标赛规则》;此规则最后在一八三九年被用在了拳击比赛中。一八五三年还对这一规则进行了修改,禁止拳手在比赛时用足踢蹬、头撞、牙咬的低击等动作,并规定拳击台四周用绳围起。一八六七年,英国伦敦业余竞技俱乐部成员、记者约翰。古拉哈姆。千巴斯又进一步完善修订了新的拳击规则;英国昆士伯利的侯爵约翰。



QQ截图20140316124916.png


LCD12864显示拳击图片1
肖鲁图。道格拉斯担任了这个新规则的保证人,并把它命名为“昆士伯利拳击规则”。例如比赛必须使用手套的规定,从另一个角度来说,英国拳击爱好者的努力,为推动和促进现代拳击比赛的发展做出了不可磨灭的贡献。一八八零年英国业余拳击协会正式在伦敦成立,从此拳击开始传到世界各地。一八八一年举行了第一次英国锦标赛。这个规定才最终在拳击比赛规则中确   定下来,并被所有的拳击比赛所采用。一八九二年九月七日约翰。L。萨里班和基姆。哥培德戴着五盎司重的拳套进行了世界第一次重量级冠军赛,

一八九六年第一届现代夏季奥运会中,由于来自希腊的君王认为拳击太过于暴力、危险而且不为人道,因此不批准拳击列入该届的比赛项目之中。但在一九一二年举行瑞典斯德哥尔摩夏季现代奥运会中,由于瑞典的法律不准许拳击运动,因此拳击曾一度消失于奥运会的大家庭。直到一九二零年拳击运动才再次被列入到奥运比赛项目的名单之中一直到二零一二年,一九二四年第八届奥运会前夕成立了国际业余拳击联合会。同年的奥运会上参加这个项目的只有美国这一个国家的四十四名运动员,所以自然地获得了本届所设七个级别的所有冠军。一九四六年国际业余拳击联合会成立。到了一九六四年           在日本东京举行的第十八届奥运会上,就有来自五十六个国家的二百六十九名运动员参加。二零零八年世界业余拳击联合会改称为世界拳击联盟。


QQ截图20140316124958.png



LCD12864显示拳击图片2
中国现代拳击始于二十世纪二十年代后期,最初被国人称之为“西洋拳”。随后先有人翻译了一本《西洋拳术》。三十年代,旧中国南京国民党政府的中央国术(武术)馆、国立国术体育专科学校将拳击列为主课之一。香港特区拳击总会于一九五五年成立,是国际业余拳击协会(AIBA)及世界拳击协会(WBC)成员之一。一直以来香港选手在女子及青少年国际赛事中均能多次获得奖牌。目前为止,国际业余拳击协会的成员共为一百九十多个国家或地区。与此同时,第一届世界杯女子拳击锦标赛也于1999年在芬兰顺利举行。

QQ截图20140316124930.png

LCD12864显示拳击图片3

从历史角度方面来做说明并去作区分的话,拳击又分为古代拳击和现代拳击两种。从运动竞技角度方面来做说明并去作区分的话,拳击又分为运动竞技型拳击和非运动竞技型拳击。运动竞技型拳击又分为职业式和业余式两种,而奥运会和亚运会的拳击比赛都是属于业余式比赛。


为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-12-26 10:55 | 显示全部楼层
22、吴鉴鹰单片机项目征服12864系列(连载)之基于单片机驱动12864的拳击动画的显示(二)——程序的设计和资料的上传 Proteus仿真图 吴鉴鹰单片机征服12864系列之拳击动画的显示Proteus仿真.zip (16.26 KB, 下载次数: 58)
为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-12-26 11:06 | 显示全部楼层
23、吴鉴鹰单片机项目征服12864系列(连载)之基于单片机驱动12864的美女游泳动画的显示(一)

1. 可以使你皮肤光滑,美容,加快面部血液循环。
QQ截图20140317171215.png

游泳的时候,水流缓慢冲击皮肤,皮肤得到刺激,血液循环加快,更多的血液输送养分滋润皮肤表面。游几个月后,面部就变的很有光泽!看着年轻10岁。这种由里及外的皮肤养护效果远好于各种高档化装品。而且,游泳后的洗浴,可以让你更加清洁,还省了不少花在洗浴中心的银子。
QQ截图20140317171302.png

  2. 身材健美,我以前比较瘦,背还略有些弯(因为我个子比较高,1.78米。我发现个子高的年轻人都有点弯腰,显得很不自信),现在我的胸部肌肉非常明显,腹部一点没有赘肉,还有四个方块,而且走路的时候显的很挺拔,充满活力,这完全和游泳前的我是两个人,精神状态非常好。
QQ截图20140317171312.png


它能让瘦人都变得结实起来,不再显的单薄,让胖人匀称起来,不再臃肿。还有,这种游泳方式的健身和健身房的器材健身(还有跳操)完全是两种风格,我更喜欢游泳后的身材:自然,流畅,线条性感,就像奥运会的游泳运动员。而且对身体冲击不大。
QQ截图20140317171322.png



  3. 让你精力充沛,治疗失眠。游泳完都很疲劳,回家早早就呼呼大睡啦,一觉到天亮,连梦都没来的及做就到早上啦。第二天感觉精力无比充沛。工作学习起来,事半功倍!
QQ截图20140317171834.png


  4. 降低血糖。现代社会人的压力较大,身心疲惫,得糖尿病的人很多,没关系,游泳!只有游泳才能让你全身都运动起来,而且对身体的关节冲击几乎没有。经常这样游泳,会使没有糖尿病的人得到预防,有糖尿病的人减轻甚至消除症状。
QQ截图20140317171843.png

  5. 预防腰突。如果你是个办公室的工作人员,相信你一定比较痛苦:天天坐着!腰间盘突出发病的几率一定会比较高!
QQ截图20140317171853.png

那么,去游泳吧,游泳时,腰间的肌肉会得到不很剧烈的紧张,一定程度上刺激你的肌腱,使骨胳得到适当的润滑和营养。
QQ截图20140317171902.png


  6. 远离脂肪肝。游泳的时候,身体内积蓄的能量得到消耗,就不会转划成脂肪,囤积在体内。
QQ截图20140317171913.png

  7. 预防心血管疾病,降低血脂,加强肺的功能。游泳时,全身血液循环加快,心肺得到适度的刺激,加强自身功能。
QQ截图20140317171924.png

  8. 心灵得到放松。游的时候身体漂在水中,感觉无比自由,无比放松。这时候再多的烦恼都一扫而空,就像在大自然的青山绿水中飞翔。(宇航员训练失重时就在水中进行,你完全可以体会到太空人的失重状态)
QQ截图20140317171934.png

  9. 锻炼意志。初学时,你历尽千辛万苦,终于学会,有很大的成就感;学会的时候,你每次给自己定下1000米的目标,一旦完成,你会觉得任何目标只要通过努力就会搞定的。一旦你学会了游泳这个很多人认为终身也学不会的运动,你就认为再大的困难也不过如此!

QQ截图20140317175722.png

  10. 满足你的虚荣心。如果你学到一定程度,把蝶泳学会啦,当你戴着黑色泳镜,在泳池中展臂拍水的时候,再露出冷酷的表情(看看奥运的游泳比赛吧!尤其是男子),肩部肌肉凝成若干硬块,洁白的水花四溅。
QQ截图20140317175734.png


你会感觉自己是一个纯粹的猛男!性感!无数目光向你投来,包括异性那种羡慕崇拜的眼神,你要记住啊,那里可都是泳装啊!你一定会飘飘然的,有一种喝醉的感觉。我一直认为:当男人蝶泳那个浮出时拍打水面的瞬间是最性感的——强劲!率性!奋力拼搏!
QQ截图20140317175744.png


  11. 耐寒。你经常游泳,你的耐寒能力一定很强,尤其是在北方,耐寒能力很重要。经常看到有的孩子游泳完毕出来换衣服时,全身蜷成一团,样子很痛苦,这说明这个孩子耐寒能力不强,还让人联想到软弱的性格,
QQ截图20140317175755.png


如果你对寒冷无所不包畏惧,你就会看着非常坚强,刚毅!想起了“俺们那旮很很穷,交通基本靠走,通信基本靠吼,取暖基本靠抖。
QQ截图20140317175805.png

12.增强抵抗力
游泳池的水温常为26度到28度,在水中浸泡散热快,耗能大。为尽快补充身体散发的热量,以供冷热平衡的需要,神经系统便快速做出反应,使人体新陈代谢加快,增强人体对外界的适应能力,抵御寒冷。
QQ截图20140317175816.png



经常参加冬泳的人,由于体温调节功能改善,就不容易伤风感冒,还能提高人体内分泌功能,是脑垂体功能增加,从而提高对疾病的抵抗力和免疫力。

为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-12-26 13:18 | 显示全部楼层
24、吴鉴鹰单片机项目征服12864系列(连载)之基于单片机驱动12864的美女游泳动画的显示(二)——程序的而设计和Proteus仿真图的分享 相关资料请点击下载: Proteus仿真图 吴鉴鹰单片机征服12864系列之美女游泳动画的显示Proteus仿真.zip (16.15 KB, 下载次数: 64)
为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-12-26 13:29 | 显示全部楼层
25、吴鉴鹰单片机项目征服12864系列(连载)之基于12864的动态模拟时钟的显示(一)—— 时钟原理介绍

第一节:

      先来第一节,动态时钟的原理设计介绍以及时钟文化的介绍。

图片1.png


       大家知道现今,高精度的计时工具大多数都使用了石英体振荡器,于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式转动,用LCD12864显示器代替数码管显示时间,即减小了计时误差,又不失传统的指针风格。
图片3.jpg


    这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,灵活性好。本系统利用单片机实现数字时钟功能的主要内容,其中AT89C52是核心元件同时采用LCD12864显示模拟指针时钟的“时”,“分”,“秒”。它的计时周期为12小时,显满刻度为“11时59分59秒”,另外具有校时功能。

   一、12864点阵液晶显示器的原理介绍
通常所说的12864LCD显示块是所说的点阵液晶显示模块,就是由128*64个液晶显示点组成的一个128列*64行的阵列,所以也就叫成了12864。每个显示点都对应着有一位二进制数,0表示灭,1表示亮。存储这些点阵信息的RAM被称为显示数据存储器。如果要显示某个图形或汉字就是将相应的点阵信息写入到对应的存储单元中。图形或汉字的点阵信息是由自己设计,这时候问题的关键是显示点在液晶屏上的位置与其在存储器中的地址之间的关系。显示点在64*64液晶屏上的位置由列号(line,0~63)与行号(line,0~63)确定。512*8 bits RAM中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress,0~63)确定。每个存储单元存储8个液晶点的显示信息。
    由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8 bits显示数据RAM。左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。
如果点亮12864的屏中(20,30)位置上的液晶点,因列地址30小于64,该点在左半屏第29列,所以CS1有效;行地址20除以8取整得2,取余得4,该点在RAM中页地址为2,在字节中的序号为4;所以将二进制数单元中即点亮(20,30)上的液晶点。这是为了使液晶点位置信息与存储地址的对应关系更直观关,将64*64液晶屏从上至下8等分为8个显示块,每块包括8行*64列个点阵。每列中的8行点阵信息构成一个8bits二进制数,存储在一个存储单元中。(需要注意:二进制的高低有效位顺序与行号对应关系因不同商家而不同)存放一个显示块的RAM区称为存储页。即64*64液晶屏的点阵信息存储在8个存储页中,每页64个字节,每个字节存储一列(8行)点阵信息。因此存储单元地址包括列地址(Yaddress,0~63)和页地址(Xpage,0~7)。
据00010000(也可能是00001000,高低顺序取决于制造商)写入Xpage=2,Yaddress=29的存储。
二、点阵LCD的显示原理
在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示:
图片2.jpg

图1 “A”字模图

而中文的“你”在字模中的记载却如图2所示:

                                                                                                                 图2 “你”字模图

在编写软件代码之前必须要先掌握汉字取模的方法。要得到上表中的文字,我们可以借助取模软件来完成。目前点阵LCD的取模软件有很多,我们以本开发板配套的取模软件为例来介绍一下汉字的取模方法。如下图:“鉴鹰电子欢乐多”,输入该字,然后按住ctrl+enter键。
图片4.png



这是图片取模                               


图片5.png


在文字输入区输入“鉴鹰电子欢乐多”

图片6.png



点击取模方式
图片7.png

生成的字摸数组

     当按住ctrl+enter键
后,点击取模方式,点击c51取模会显示取模的代码:

三、钟表的简单介绍
图片8.jpg

      钟表的应用范围很广,品种甚多,可按振动原理、结构和用途特点分类。按振动原理可分为利用频率较低的机械振动的钟表,如摆钟、摆轮钟等;利用频率较高的电磁振荡和石英振荡的钟表,如同步电钟、石英钟表等;按结构特点可分为机械式的,如机械闹钟、自动、日历、双历、打簧等机械手表;电机械式的,如电摆钟、电摆轮钟表等;电子式的,如摆轮电子钟表、音叉电子钟表、指针式和数字显示式石英电子钟表 等。
    结构形式
机械钟表有多种结构形式,但其工作原理基本相同,都是由原动系、传动系、擒纵调速器、指针系和上条拨针系等部分组成。
机械钟表利用发条作为动力的原动系 ,经过一组齿轮组成的传动系来推动擒纵调速器工作;再由擒纵调速器反过来控制传动系的转速;传动系在推动擒纵调速器的同时还带动指针机构,传动系的转速受控于擒纵调速器,所以指针能按一定的规律在表盘上指示时刻 ;上条拨针系是上紧发条或拨动指针的机件。
此外,还有一些附加机构,可增加钟表的功能,如自动上条机构、日历(双历)机构、闹时装置、月相指示和测量时段机构等。
原动系
原动系是储存和传递工作能量的机构,通常由条盒轮、条盒盖、条轴、发条和发条外钩组成。发条在自由状态时是一个螺旋形或 S形的弹簧,它的内端有一个小孔,套在条轴的钩上。它的外端通过发条外钩,钩在条盒轮的内壁上。上条时,通过上条拨针系使条轴旋转将发条卷紧在条轴上。发条的弹性作用使条盒轮转动,从而驱动传动系。
传动系
传动系是将原动系的能量传至擒纵调速器的一组传动齿轮,它是由二轮(中心轮)、三轮(过轮)、四轮(秒轮)和擒纵轮齿轴组成,其中 轮片是主动齿轮,齿轴是从动齿轮。钟表传动系的齿形绝大部分是根据理论摆线的原理,经过修正而制作的修正摆线齿形。
擒纵调速器
擒纵调速器是由擒纵机构和振动系统两部分组成,它依靠振动系统的周期性震动,使擒纵机构保持精确和规律性的间歇运动,从而取得调速作用。叉瓦式擒纵机构是应用最广的一种擒纵机构。它由擒纵轮、擒纵叉、双圆盘和限位钉等组成。它的作用是把原动系的能量传递给振动系统,以便维持振动系统作等幅振动,并把振动系统的振动次数传递给指示机构,达到计量时间的目的。
振动系统主要由摆轮、摆轴、游丝、活动外桩环、快慢针等组成。游丝的内外端分别固定在摆轴和摆
夹板上;摆轮受外力偏离其平衡位置开始摆动时,游丝便被扭转而产生位能,称为恢复力矩。擒纵机构完成前述两动作的过程 ,振动系在游丝位能作用下,进行反方向摆动而完成另半个振动周期,这就是机械钟表在运转时擒纵调速器不断和重复循环工作的原理。
上条拨针系的作用是上条和拨针。它由柄头、柄轴、 立轮、离合轮、离合杆、离合杆簧、拉档、压簧、拨针轮、跨轮、时轮、分轮、大钢轮、小钢轮、棘爪、棘爪簧等组成。
上条和拨针
上条和拨针都是通过柄头部件来实现的。上条时,立轮和离合轮处于啮合状态,当转动柄头时,离合轮带动立轮,立轮又经小钢轮和大钢轮,使条轴卷紧发条。棘爪则阻止大钢轮逆转。拨针时,拉出柄头,拉档在拉档轴上旋转并推动离合杆,使离合轮与立轮脱开,与拨针轮啮合。此时转动柄头便拨针轮通过跨轮带动时轮和分轮,达到校正时针和分针的目的。
钟表要求走时准确,稳定可靠。但一些内部因素和外界环境条件都会影响钟表的走时精度。内部因素包括各组成系统的结构设计、工作性能、选用材料、加工工艺和装配质量等。例如,发条力矩的稳定性,传动系工作的平稳性,擒纵调速器的准确性等都影响走时精度。
精密手表标准
精密手表标准:QB/T 244799《具有摆轮游丝振荡系统的精密手表》(上)本标准规定了“具有摆轮游丝振荡系统的精密手表”(简称“精密手表”)的定义、分类、检验项目、测试程序和最低要求。本标准等同采用国际标准ISO 3159:1976,是对原GB 4032-83《具有摆轮游丝振荡系统的精密手表》的修订。本期介绍“精密手表”的定义、分类和最低要求,下期介绍“精密手表”的检验项目和测试程序。

为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-12-26 13:34 | 显示全部楼层

26、吴鉴鹰单片机项目征服12864系列(连载)之基于12864的动态模拟时钟的显示(二)—— 程序设计

  1. /******************************************************
  2. ** 本讲标题:  吴鉴鹰12864模拟时钟的显示
  3. ** 功能描述:  模拟闹钟的显示                                                
  4. ** 作 者:    吴鉴鹰
  5. ** 日 期:    14.03.26
  6. ******************************************************/
  7. #include <reg51.h>
  8. #include <intrins.h>
  9. #include<stdlib.h>
  10. #include<math.h>

  11. #define uchar unsigned char
  12. #define uint  unsigned int
  13. #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
  14. #define pi 3.1415926
  15. #define CIRCLE_X0 31   //表盘圆心坐标
  16. #define CIRCLE_Y0 31   //表盘圆心坐标

  17. /************* 12864LCD引脚定义 *************/
  18. #define LCD_12864_DATA  P0           //数据口
  19. sbit LCD_EN_OUT=P2^0;
  20. sbit LCD_RW_OUT=P2^1;
  21. sbit LCD_RS_OUT=P2^2;
  22. sbit LCD_CS2_OUT=P2^3;
  23. sbit LCD_CS1_OUT=P2^4;                     //端口定义
  24. sbit WJY_K1_IN=P3^5;                             //按键
  25. sbit WJY_K2_IN=P3^3;
  26. sbit WJY_K3_IN=P3^1;
  27. sbit WJY_K4_IN=P3^4;

  28. char datastring[13];   ////存放时间的数组

  29. uchar code shu0[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};/*"0",0*/
  30. uchar code shu1[]={0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};/*"1",0*/
  31. uchar code shu2[]={0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};/*"2",0*/
  32. uchar code shu3[]={0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};/*"3",0*/
  33. uchar code shu4[]={0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};/*"4",0*/
  34. uchar code shu5[]={0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};/*"5",0*/
  35. uchar code shu6[]={0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};/*"6",0*/
  36. uchar code shu7[]={0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};/*"7",0*/
  37. uchar code shu8[]={0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};/*"8",0*/
  38. uchar code shu9[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};/*"9",0*/

  39. uchar code maohao[] =
  40. { /*--  文字:  :  --*/
  41. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=8x16   --*/
  42. 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00};


  43. unsigned char code wuwu[] = {/*--  文字:  吴  --*/
  44. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  45. 0x00,0x00,0x80,0x9E,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x9E,0x80,0x00,0x00,0x00,
  46. 0x84,0x84,0x44,0x44,0x24,0x14,0x0C,0x07,0x0C,0x14,0x24,0x44,0x44,0x84,0x84,0x00};

  47. unsigned char code jianjian[] = {/*--  文字:  鉴  --*/
  48. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  49. 0x00,0x00,0x3E,0x00,0x80,0xBF,0x40,0x20,0x58,0x87,0x84,0x0C,0x34,0x04,0x00,0x00,
  50. 0x02,0x42,0x49,0x49,0x5A,0x6A,0x4A,0x7E,0x4A,0x6A,0x5A,0x49,0x49,0x42,0x02,0x00};

  51. unsigned char code yingY[] = {/*--  文字:  鹰  --*/
  52. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  53. 0x00,0x00,0xFE,0x22,0x12,0xFA,0x26,0x12,0xFB,0xAE,0xAA,0xFE,0xAA,0xAA,0x02,0x00,
  54. 0x40,0x30,0x0F,0x40,0x40,0x5E,0x52,0x53,0x56,0x52,0x1A,0x56,0x90,0x70,0x00,0x00};


  55. unsigned char code MOMO[] = {/*--  文字:  模  --*/
  56. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  57. 0x10,0x10,0xD0,0xFF,0x90,0x14,0xE4,0xAF,0xA4,0xA4,0xA4,0xAF,0xE4,0x04,0x00,0x00,
  58. 0x04,0x03,0x00,0xFF,0x00,0x89,0x4B,0x2A,0x1A,0x0E,0x1A,0x2A,0x4B,0x88,0x80,0x00};

  59. unsigned char code MINNIN[] = {/*--  文字:  拟  --*/
  60. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  61. 0x10,0x10,0x10,0xFF,0x90,0x00,0xF8,0x00,0x02,0x04,0x18,0x00,0xFF,0x00,0x00,0x00,
  62. 0x02,0x42,0x81,0x7F,0x00,0x00,0x3F,0x10,0x88,0x40,0x30,0x0C,0x0B,0x30,0xC0,0x00};

  63. unsigned char code SHISHI[] = {/*--  文字:  时  --*/
  64. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  65. 0x00,0xFC,0x84,0x84,0x84,0xFC,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x00,
  66. 0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x01,0x06,0x40,0x80,0x7F,0x00,0x00,0x00};

  67. unsigned char code ZHONG[] = {/*--  文字:  钟  --*/
  68. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  69. 0x20,0x10,0x2C,0xE7,0x24,0x24,0x00,0xF0,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,
  70. 0x01,0x01,0x01,0x7F,0x21,0x11,0x00,0x07,0x02,0x02,0xFF,0x02,0x02,0x07,0x00,0x00};




  71. unsigned char code DIAN[] = {/*--  文字:  电  --*/
  72. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  73. 0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,
  74. 0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00};

  75. unsigned char code ZIZI[] = {/*--  文字:  子  --*/
  76. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  77. 0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00,
  78. 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};


  79. unsigned char code HUAN[] = {/*--  文字:  欢  --*/
  80. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  81. 0x04,0x24,0x44,0x84,0x64,0x9C,0x40,0x30,0x0F,0xC8,0x08,0x08,0x28,0x18,0x00,0x00,
  82. 0x10,0x08,0x06,0x01,0x82,0x4C,0x20,0x18,0x06,0x01,0x06,0x18,0x20,0x40,0x80,0x00};

  83. unsigned char code LELE[] = {/*--  文字:  乐  --*/
  84. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  85. 0x00,0x00,0xE0,0x9C,0x84,0x84,0x84,0xF4,0x82,0x82,0x83,0x82,0x80,0x80,0x00,0x00,
  86. 0x00,0x20,0x10,0x08,0x06,0x40,0x80,0x7F,0x00,0x00,0x02,0x04,0x08,0x30,0x00,0x00};

  87. unsigned char code WUWUL[] = {/*--  文字:  无  --*/
  88. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  89. 0x00,0x40,0x42,0x42,0x42,0xC2,0x7E,0x42,0xC2,0x42,0x42,0x42,0x40,0x40,0x00,0x00,
  90. 0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x70,0x00,0x00};

  91. unsigned char code QIONG[] = {/*--  文字:  穷  --*/
  92. /*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
  93. 0x10,0x0C,0x44,0x24,0x14,0x04,0xC5,0x06,0x04,0x04,0x14,0x24,0x44,0x14,0x0C,0x00,
  94. 0x00,0x81,0x41,0x21,0x11,0x0D,0x03,0x01,0x41,0x81,0x41,0x3F,0x00,0x00,0x00,0x00};


  95. uchar code tan[]=
  96. {
  97. 0x20,0x20,0x10,0x90,0xA8,0xA4,0xAA,0xB1,0xA2,0xE4,0xA8,0x88,0x10,0x30,0x10,0x00,
  98. 0x00,0x00,0x80,0x9F,0x40,0x20,0x10,0x0E,0x10,0x20,0x60,0xDF,0x00,0x00,0x00,0x00,/*"贪",0*/
  99. };

  100. unsigned char  dis_flag = 0;
  101. sbit DQ = P2^0;                          //数据口define interface
  102. uchar a,b,c,count,num;
  103. uint temp;
  104. uchar tabbjsj[]="北京时间";
  105. uchar tabsswd[]="实时温度";
  106. uchar tab[]="01:00:00";
  107. uchar code table[]={/*--  调入了一幅图像:C:\Users\Administrator\Desktop\7308055_142022128173_2.bmp  --*/
  108. /*--  宽度x高度=128x64  --*/
  109. 0xFF,0x7F,0x7F,0xFF,0xF7,0xC3,0x87,0x07,0x0F,0x1F,0x1F,0x3F,0x7F,0x7F,0xFF,0xFF,
  110. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  111. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  112. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  113. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  114. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  115. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,
  116. 0xFF,0x7F,0x7F,0x3F,0x1F,0x1F,0x0F,0x87,0x87,0xC3,0xE1,0x7F,0x7F,0x7F,0xBF,0xFF,
  117. 0xFF,0xFF,0xF6,0xF6,0xA4,0xA4,0xA5,0xA1,0x81,0x80,0x80,0x00,0x00,0x00,0x00,0x00,
  118. 0x01,0x01,0x03,0x03,0x00,0x03,0x07,0x07,0x0F,0x1F,0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,
  119. 0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  120. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  121. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  122. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,
  123. 0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x0F,0x0F,0x07,0x03,0x01,0x00,0x02,0x01,0x01,0x00,
  124. 0x00,0x00,0x00,0x00,0x00,0x81,0x81,0xC0,0xD0,0xD4,0xD2,0xD2,0xFB,0xFB,0xFB,0xFF,
  125. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xF8,0xF0,
  126. 0xF0,0xE0,0xC0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  127. 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x03,0x03,0x07,0x07,0x0F,0x0F,0x1F,0x1F,0x3F,
  128. 0x7F,0x7F,0xFF,0xFF,0xFF,0xCF,0xEF,0xEF,0xC7,0x47,0x07,0x07,0x17,0x07,0x07,0x07,
  129. 0x0F,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0x1F,0x0F,
  130. 0x07,0x03,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  131. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xF0,0xF0,
  132. 0xF0,0xF8,0xFC,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  133. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  134. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFC,0xFC,0xF8,0xF0,0xF0,
  135. 0xF0,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
  136. 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  137. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  138. 0x00,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0x80,0xA0,0xE0,0xE0,0xE0,0xE0,0xF0,
  139. 0xF0,0xF8,0xF8,0xFC,0xFC,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  140. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  141. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  142. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  143. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,
  144. 0xFE,0xFE,0xFE,0xDC,0xDE,0xEC,0x8C,0xEC,0xE6,0x80,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,
  145. 0xE0,0xE0,0xE0,0xB0,0xD8,0xE0,0x80,0x8E,0xEC,0xDC,0xFE,0xFC,0xFE,0xFE,0xFE,0xFE,
  146. 0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  147. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  148. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  149. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0xFF,0x3F,0x3F,0xFF,0x3F,
  150. 0x3F,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
  151. 0xBF,0x3F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,
  152. 0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,
  153. 0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  154. 0xFF,0xFF,0xFF,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,
  155. 0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0xBF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  156. 0xFF,0xFF,0x7F,0x3F,0x3F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  157. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x98,0xD8,0x9F,0x88,0xA0,0x31,0x24,
  158. 0xAE,0x88,0xD2,0x96,0x9E,0xBE,0xFF,0xFF,0xFF,0xFF,0x00,0xFB,0xE1,0x20,0x39,0x20,
  159. 0x40,0x02,0xA0,0x20,0x22,0xA2,0xEE,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x76,0x76,0x00,
  160. 0x00,0x76,0x76,0x76,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xEF,0xEF,0xEF,0xEF,
  161. 0xEF,0x03,0x01,0xEC,0xEE,0xEE,0xEF,0xEF,0xEF,0xFF,0xFF,0xFF,0xFE,0xF2,0x26,0x06,
  162. 0x00,0x76,0xF1,0x70,0x06,0x06,0x36,0xF0,0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0xE3,0x60,
  163. 0x28,0x2F,0xAF,0x00,0x00,0xEF,0xAF,0x2F,0x6F,0xEF,0xEF,0xFF,0xFF,0xFF,0xFF,0xCD,
  164. 0x4C,0x6E,0x2C,0x81,0x53,0x03,0x41,0xCC,0x5E,0x1F,0x9F,0xDF,0xFF,0xFF,0xFF,0xFF,
  165. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFB,0xFA,0xF8,0xF8,0xFA,0xF8,0xF8,
  166. 0xFA,0xF8,0xF8,0xFA,0xFB,0xFB,0xFF,0xFF,0xFF,0xF8,0xF8,0xFB,0xFB,0xFA,0xFA,0xFA,
  167. 0xFA,0xFA,0xFA,0xFA,0xF6,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xF8,
  168. 0xF8,0xFB,0xFB,0xFB,0xFB,0xFB,0xF9,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,
  169. 0xFB,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFC,0xFE,0xFF,
  170. 0xFB,0xFA,0xF9,0xFC,0xFE,0xFF,0xFE,0xFC,0xF9,0xFB,0xFF,0xFF,0xFF,0xFD,0xFC,0xFC,
  171. 0xFE,0xFB,0xF3,0xF8,0xF8,0xFF,0xFF,0xFF,0xFE,0xFC,0xFD,0xFF,0xFF,0xFF,0xFF,0xF3,
  172. 0xF3,0xFB,0xFB,0xFB,0xF9,0xF8,0xFC,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

  173. };

  174. void play8(uchar ch,uchar row,uchar page,uchar *adr);
  175. /*******************************************************************************************
  176. ** 函数名称:  void delay(int ms)
  177. ** 功能描述:  精确延时ms函数                                             
  178. ** 输 入:   
  179. **         
  180. **        
  181. ** 输 出:   
  182. **         
  183. ** 全局变量:
  184. ** 调用模块:
  185. **
  186. ** 作 者:    吴鉴鹰
  187. ** 日 期:     14.03.26
  188. ********************************************************************************************/
  189. void delay(int ms)
  190. {
  191.     while(ms--)
  192.         {
  193.       uchar i;
  194.           for(i=0;i<150;i++)  
  195.            {
  196.             _nop_();                           
  197.                 _nop_();
  198.                 _nop_();
  199.                 _nop_();
  200.            }
  201.         }
  202. }


  203. /*******************************************************************************************
  204. ** 函数名称:  void Delay_S(void)   //延时1s误差 0us
  205. ** 功能描述:  精确延时函数,延时1秒,软件算得                                                
  206. ** 输 入:   
  207. **         
  208. **        
  209. ** 输 出:   
  210. **         
  211. ** 全局变量:
  212. ** 调用模块:
  213. **
  214. ** 作 者:    吴鉴鹰
  215. ** 日 期:     14.03.26
  216. ********************************************************************************************/
  217. void Delay_S(void)   //延时1s误差 0us
  218. {
  219.     unsigned char a,b,c;
  220.     for(c=167;c>0;c--)
  221.         for(b=171;b>0;b--)
  222.             for(a=16;a>0;a--);
  223.     _nop_();  //if Keil,require use intrins.h
  224. }        


  225. /*******************************************************************************************
  226. ** 函数名称:  void choose12864(uchar i)//i是要写的屏.0是左屏,1是右屏,2是双屏;
  227. ** 功能描述:  选屏的函数                                               
  228. ** 输 入:    i是要写的屏.0是左屏,1是右屏,2是双屏
  229. **         
  230. **        
  231. ** 输 出:   
  232. **         
  233. ** 全局变量:
  234. ** 调用模块:
  235. **
  236. ** 作 者:    吴鉴鹰
  237. ** 日 期:     14.03.26
  238. ********************************************************************************************/
  239. void choose12864(uchar i)//i是要写的屏.0是左屏,1是右屏,2是双屏;
  240. {                                                 //此处在硬件上运行时i的电平全部与程序相反;
  241.   switch (i)                         //此版本为仿真版;
  242.   {
  243.     case 0: LCD_CS1_OUT=0;LCD_CS2_OUT=1;break;        //比如此处如果要在电路上运行则应该改为CS=1;LCD_CS2_OUT=0;   
  244.     case 1: LCD_CS1_OUT=1;LCD_CS2_OUT=0;break;
  245.         case 2: LCD_CS1_OUT=0;LCD_CS2_OUT=0;break;
  246.         default: break;
  247.   }
  248. }

  249. /*******************************************************************/
  250. /*                                                                 */
  251. /*检查LCD忙状态                                                    */
  252. /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。      */
  253. /*                                                                 */
  254. /*******************************************************************/

  255. /*******************************************************************************************
  256. ** 函数名称:  bit lcd_busy()
  257. ** 功能描述:  判断忙碌是否的函数                                                
  258. ** 输 入:      
  259. **         
  260. **        
  261. ** 输 出:   
  262. **         
  263. ** 全局变量:
  264. ** 调用模块:
  265. **
  266. ** 作 者:    吴鉴鹰
  267. ** 日 期:     14.03.26
  268. ********************************************************************************************/

  269. /*bit lcd_busy()
  270. {                          

  271.   //  delayNOP();
  272. //   result = (bit)(P0&0x80);
  273. //   LCD_EN = 0;
  274. //   return(result);
  275. } */
  276. /*12864判忙 */               

  277. /*******************************************************************************************
  278. ** 函数名称:  void chekbusy12864(void)
  279. ** 功能描述:  判断忙碌是否的函数                                                
  280. ** 输 入:      
  281. **         
  282. **        
  283. ** 输 出:   
  284. **         
  285. ** 全局变量:
  286. ** 调用模块:
  287. **
  288. ** 作 者:    吴鉴鹰
  289. ** 日 期:     14.03.26
  290. ********************************************************************************************/
  291. void chekbusy12864(void)
  292. {
  293.   uchar dat;
  294.   // bit result;
  295.   //LCD_RS = 0;
  296.   //LCD_RW = 1;
  297.   // LCD_EN = 1;
  298.   EX0=0;
  299.   LCD_RS_OUT=0;       //指令模式
  300.   LCD_RW_OUT=1;       //读数据
  301.   do
  302.   {
  303.    P0=0x00;                         //
  304.    LCD_EN_OUT=1;
  305.    dat=P0&0x80;
  306.    LCD_EN_OUT=0;
  307.   }while(dat!=0x00);
  308.   EX0=1;
  309. }


  310. /*******************************************************************************************
  311. ** 函数名称:  void lcd_wcmd(uchar cmd)
  312. ** 功能描述:  写命令到LCD                                                
  313. ** LCD_RS_OUT=H,LCD_RW_OUT=L,LCD_EN_OUT=高脉冲,D0-D7=数据。
  314. ** 输 入:   cmd(要写入的命令)   
  315. **         
  316. **        
  317. ** 输 出:   
  318. **         
  319. ** 全局变量:
  320. ** 调用模块:
  321. **
  322. ** 作 者:    吴鉴鹰
  323. ** 日 期:     14.03.26
  324. ********************************************************************************************/
  325. /*void lcd_wcmd(uchar cmd)
  326. {                          
  327.    while(lcd_busy());
  328.     LCD_RS = 0;
  329.     LCD_RW = 0;
  330.     LCD_EN = 0;
  331.     _nop_();
  332.     _nop_();
  333.     LCD_12864_DATA = cmd;
  334.     delayNOP();
  335.     LCD_EN = 1;
  336.     delayNOP();
  337.     LCD_EN = 0;  
  338. } */


  339. /*******************************************************************************************
  340. ** 函数名称:  void lcd_wcmd(uchar cmd)                //写命令
  341. ** 功能描述:  写命令到LCD                                                
  342. ** LCD_RS_OUT=H,LCD_RW_OUT=L,LCD_EN_OUT=高脉冲,D0-D7=数据。
  343. ** 输 入:   cmd(要写入的命令)   
  344. **         
  345. **        
  346. ** 输 出:   
  347. **         
  348. ** 全局变量:
  349. ** 调用模块:
  350. **
  351. ** 作 者:    吴鉴鹰
  352. ** 日 期:     14.03.26
  353. ********************************************************************************************/
  354. void lcd_wcmd(uchar cmd)                //写命令
  355. {
  356.   chekbusy12864();
  357.   EX0=0;
  358.   LCD_RS_OUT=0;                    //指令模式
  359.   LCD_RW_OUT=0;             //写模式
  360.   LCD_EN_OUT=1;
  361.   P0=cmd;
  362.   LCD_EN_OUT=0;
  363.   EX0=1;
  364. }


  365. /*******************************************************************************************
  366. ** 函数名称:  void lcd_wdat(uchar dat)
  367. ** 功能描述:  写显示数据到LCD                                                
  368. ** LCD_RS_OUT=H,LCD_RW_OUT=L,LCD_EN_OUT=高脉冲,D0-D7=数据。
  369. ** 输 入:   dat(要写入的数据)   
  370. **         
  371. **        
  372. ** 输 出:   
  373. **         
  374. ** 全局变量:
  375. ** 调用模块:
  376. **
  377. ** 作 者:    吴鉴鹰
  378. ** 日 期:     14.03.26
  379. ********************************************************************************************/
  380. /*void lcd_wdat(uchar dat)
  381. {                          
  382.    while(lcd_busy());
  383.     LCD_RS = 1;
  384.     LCD_RW = 0;
  385.     LCD_EN = 0;
  386.     LCD_12864_DATA = dat;
  387.     delayNOP();
  388.     LCD_EN = 1;
  389.     delayNOP();
  390.     LCD_EN = 0;
  391. }  */

  392. /****写数据******/
  393. void  lcd_wdat(uchar dat)
  394. {
  395.   chekbusy12864();
  396.   EX0=0;
  397.   LCD_RS_OUT=1;
  398.   LCD_RW_OUT=0;
  399.   LCD_EN_OUT=1;
  400.   P0=dat;
  401.   LCD_EN_OUT=0;
  402.   EX0=1;
  403. }

  404. /*******************************************************************/
  405. /*                                                                 */
  406. /*从lcd读取数据到data                                              */
  407. /*LCD_RS_OUT=H,LCD_RW_OUT=L,E=高脉冲,D0-D7=数据。                               */
  408. /*                                                                 */
  409. /*******************************************************************/
  410. /*uchar lcd_rdat()
  411. {  
  412.         uchar dat;                        
  413.           while(lcd_busy());
  414.            LCD_12864_DATA = 0XFF;
  415.     LCD_RS = 1;
  416.     LCD_RW = 1;
  417.     LCD_EN = 0;
  418.     LCD_EN = 1;
  419.         dat = LCD_12864_DATA;
  420.     LCD_EN = 0;
  421.         return(dat);
  422. }        */

  423. uchar dat_r12864(uchar page,uchar arrange)  //page页地址.arrange列地址)
  424. {
  425.   uchar dat;
  426.   chekbusy12864();
  427.   EA=0;
  428.   lcd_wcmd(page+0xb8);
  429.   lcd_wcmd(arrange+0x40);
  430.   EX0=0;                                                
  431.   P0=0xff;
  432.   LCD_RW_OUT=1;
  433.   LCD_RS_OUT=1;
  434.   LCD_EN_OUT=1;
  435.   LCD_EN_OUT=0;                                 //12864读数据时第二次读才有效,第一次读取的值不采集
  436.   LCD_EN_OUT=1;
  437.   dat=P0;
  438.   LCD_EN_OUT=0;
  439.   EA=1;
  440.   return(dat);
  441.   //EX0=1;

  442.   }
  443. /*******************************************************************/
  444. /*                                                                 */
  445. /*  LCD初始化设定                                                  */
  446. /*                                                                 */
  447. /*******************************************************************/
  448. /*void lcd_init()
  449. {
  450.     LCD_PSB = 1;         //并口方式

  451.         LCD_RST = 0;                 //液晶复位
  452.     delay(3);                  
  453.     LCD_RST = 1;      
  454.     delay(3);

  455.     lcd_wcmd(0x34);      //扩充指令操作
  456.     delay(5);
  457.     lcd_wcmd(0x30);      //基本指令操作
  458.     delay(5);
  459.     lcd_wcmd(0x0C);      //显示开,关光标
  460.     delay(5);
  461.     lcd_wcmd(0x01);      //清除LCD的显示内容
  462.     delay(5);
  463. }*/


  464. /*******************************************************************************************
  465. ** 函数名称: void lcd_init(void)
  466. ** 功能描述:  初始化函数
  467. ** 输 入:   
  468. **         
  469. **        
  470. ** 输 出:
  471. **         
  472. ** 全局变量:
  473. ** 调用模块:
  474. **
  475. ** 作 者:    吴鉴鹰
  476. ** 日 期:     14.03.26
  477. ********************************************************************************************/
  478. void lcd_init(void)
  479. {
  480.   chekbusy12864();
  481.   lcd_wcmd(0xc0);          //从第零行开始显示
  482.   lcd_wcmd(0x3f);          //LCD显示RAM中的内容
  483. }

  484. /*******************************************************************************************
  485. ** 函数名称: void DrawPoint(unsigned char x,unsigned char y,unsigned char color)
  486. ** 功能描述:  画点函数
  487. ** 输 入:   打点位置(x0,y0);color=1,点亮;color=0,擦除
  488. **         
  489. **        
  490. ** 输 出:
  491. **         
  492. ** 全局变量:
  493. ** 调用模块:
  494. **
  495. ** 作 者:    吴鉴鹰
  496. ** 日 期:     14.03.26
  497. ********************************************************************************************/
  498. void DrawPoint(unsigned char x,unsigned char y,unsigned char color)
  499. {
  500.         unsigned char row,collum,cbite,dat;
  501.         unsigned char tempH,tempL;
  502.     //lcd_wcmd(0x34);//打开扩充指令集
  503.     //lcd_wcmd(0x36);//打开图形显示        
  504.         //collum=x>>4;
  505.         //cbite=x&0x0f;

  506.         if(x>63)
  507.         {
  508.             choose12864(1);
  509.                 x=x-64;
  510.         }
  511.         else
  512.         {
  513.             choose12864(0);
  514.     }

  515.         /*if(y<32)
  516.                 row=y;
  517.         else
  518.         {
  519.                 row=y-32;
  520.                 collum+=8;
  521.         } */

  522.         //lcd_wcmd(0x80+row);//先写Y坐标
  523.         //lcd_wcmd(0x80+collum);//再写X坐标
  524.         //lcd_rdat();
  525.         dat=dat_r12864(y/8,x);
  526.         //tempH = lcd_rdat();//先读出高字节
  527.         //tempL = lcd_rdat();//再读出低字节


  528.         lcd_wcmd(0x40|x);
  529.     lcd_wcmd(0xb8|y/8);
  530.         
  531.         //lcd_wcmd(0x80+row);//先写Y坐标
  532.         //lcd_wcmd(0x80+collum);//再写X坐标
  533.         if (color)
  534.         {
  535.                    dat |= (1<<y%8) ;
  536.                 /*if(cbite<8)
  537.                 {
  538.                         tempH|=(1<<(7-cbite));
  539.                 }
  540.                 else
  541.                 {
  542.                         tempL|=(1<<(15-cbite));
  543.                 }*/
  544.         }
  545.         else
  546.         {        
  547.                 dat &= ~(1<<y%8) ;
  548.                   /* if(cbite<8)
  549.                  {
  550.                          tempH&=~(1<<(7-cbite));         
  551.                  }
  552.                  else
  553.                  {        
  554.                          tempL&=~(1<<(15-cbite));
  555.                  }*/
  556.         }
  557.          lcd_wdat(dat);
  558.         //lcd_wdat((1<<(y%8))|dat);
  559.         //lcd_wdat(tempH);
  560.         //lcd_wdat(tempL);
  561.         
  562.         //lcd_wcmd(0x30);
  563. }


  564. /*******************************************************************************************
  565. ** 函数名称:
  566. void dot(uchar x,uchar y)
  567. ** 功能描述:  点的显示
  568. ** 输 入:   uchar x,uchar y 点的位置
  569. **         
  570. **        
  571. ** 输 出:
  572. **         
  573. ** 全局变量:
  574. ** 调用模块:
  575. **
  576. ** 作 者:    吴鉴鹰
  577. ** 日 期:     14.03.26
  578. ********************************************************************************************/
  579. /*void dot(uchar x,uchar y)
  580. {
  581.   uchar dat;
  582.   if(x>63)
  583.   {
  584.     choose12864(1);
  585.         x=x-64;
  586.   }
  587.   else
  588.   {
  589.     choose12864(0);
  590.   }
  591.   dat=dat_r12864(y/8,x);
  592.   cmd_w12864(0x40|x);
  593.   cmd_w12864(0xb8|y/8);
  594.   dat_w12864((1<<(y%8))|dat);
  595. }*/


  596. /*******************************************************************************************
  597. ** 函数名称:
  598. void DRAW_line_HS(unsigned char x0,unsigned char y0, unsigned char x1,unsigned char y1,unsigned char color)
  599. ** 功能描述:  画直线
  600. ** 输 入:   直线起始位置(x0,y0);终点(x1,y1)
  601. **         
  602. **        
  603. ** 输 出:
  604. **         
  605. ** 全局变量:
  606. ** 调用模块:
  607. **
  608. ** 作 者:    吴鉴鹰
  609. ** 日 期:     14.03.26
  610. ********************************************************************************************/
  611. void DRAW_line_HS(unsigned char x0,unsigned char y0, unsigned char x1,unsigned char y1,unsigned char color)
  612. {
  613.     int    dx;                         /* 直线x轴差值变量*/
  614.     int    dy;                         /* 直线y轴差值变量 */
  615.     char    dx_sym;                     /* x轴增长方向,为-1时减值方向,为1时增值方向 */
  616.     char    dy_sym;                     /* y轴增长方向,为-1时减值方向,为1时增值方向 */
  617.     int    dx_x2;                      /* dx*2值变量,用于加快运算速度*/
  618.     int    dy_x2;                      /* dy*2值变量,用于加快运算速度*/
  619.     int    di;                         /* 决策变量  */

  620.     if (x0 == x1)                       /* 画垂直线   */
  621.     {
  622.         if (y0 > y1)
  623.         {
  624.             dx = y0;
  625.             y0 = y1;
  626.             y1 = dx;
  627.         }
  628.         for (dx = y0; dx < y1+1; dx++)
  629.         {
  630.             DrawPoint(x0, dx,color);
  631.         }
  632.     }

  633.     if (y0 == y1)                       /* 画水平线   */
  634.     {
  635.         if(x0 > x1)
  636.         {
  637.             dy = x0;
  638.             x0 = x1;
  639.             x1 = dy;
  640.         }
  641.         for (dy = x0; dy < x1+1; dy++)
  642.         {
  643.             DrawPoint(dy, y0,color);
  644.         }
  645.     }

  646.         /****************************画斜线******************************/
  647.     dx = x1-x0;                         /* 求取两点之间的差值       */         
  648.     dy = y1-y0;
  649.     if (dx > 0)                         /* 判断x轴方向              */
  650.     {  
  651.         dx_sym = 1;                     /* dx>0,设置dx_sym=1       */
  652.     }
  653.     else
  654.     {  
  655.         if (dx < 0)
  656.         {  
  657.             dx_sym = -1;                /* dx<0,设置dx_sym=-1      */
  658.         }
  659.     }

  660.     if (dy > 0)                         /* 判断y轴方向              */
  661.     {  
  662.         dy_sym = 1;                     /* dy>0,设置dy_sym=1       */
  663.     }
  664.     else
  665.     {  
  666.         if (dy < 0)
  667.         {  
  668.             dy_sym = -1;                /* dy<0,设置dy_sym=-1      */
  669.         }
  670.     }


  671.     dx = dx_sym * dx;                   /* 将dx、dy取绝对值         */
  672.     dy = dy_sym * dy;                       
  673.     dx_x2 = dx*2;                       /* 计算2倍的dx及dy值        */
  674.     dy_x2 = dy*2;

  675.                                         /* 使用Bresenham法进行画直线    */
  676.     if (dx >= dy)                       /* 对于dx>=dy,则使用x轴为基准  */
  677.     {  
  678.         di = dy_x2 - dx;
  679.         while(x0!=x1)
  680.         {  
  681.             DrawPoint(x0, y0,color);
  682.             x0 += dx_sym;
  683.             if (di < 0)
  684.             {  
  685.                 di += dy_x2;            /* 计算出下一步的决策值         */
  686.             }
  687.             else
  688.             {  
  689.                 di += dy_x2 - dx_x2;
  690.                 y0 += dy_sym;
  691.             }
  692.         }
  693.         DrawPoint(x0, y0,color);             /* 显示最后一点                 */
  694.    }
  695.    else                                 /* 对于dx<dy,则使用y轴为基准   */
  696.    {  
  697.         di = dx_x2 - dy;
  698.         while(y0!=y1)
  699.         {  
  700.             DrawPoint(x0, y0,color);
  701.             y0 += dy_sym;
  702.             if (di < 0)
  703.             {
  704.                 di += dx_x2;
  705.             }
  706.             else
  707.             {
  708.                 di += dx_x2 - dy_x2;
  709.                 x0 += dx_sym;
  710.             }
  711.         }
  712.         DrawPoint(x0, y0,color);             /* 显示最后一点                 */
  713.    }
  714. }



  715. /*******************************************************************************************
  716. ** 函数名称: void circle(int x1, int y1, unsigned int r)
  717. ** 功能描述:  画圆
  718. ** 输 入:   (圆心坐标(x1,y1),半径r
  719. **         
  720. **        
  721. ** 输 出:
  722. **         
  723. ** 全局变量:
  724. ** 调用模块:
  725. **
  726. ** 作 者:    吴鉴鹰
  727. ** 日 期:     14.03.26
  728. ********************************************************************************************/
  729. void circle(int x1, int y1, unsigned int r)
  730. {
  731.     int   x, y, d;
  732.     x = 0;
  733.     y = r;
  734.     d = 1-r;                    /* 计算初始值                                           */

  735.     while (x <= y)
  736.     {
  737.         /* 绘制点(x,y)及其在八分圆中的另外7个对称点             */     
  738.         DrawPoint(x1+x, y1+y,1);
  739.         DrawPoint(x1+y, y1+x,1);
  740.         DrawPoint(x1-y, y1+x,1);
  741.         DrawPoint(x1-x, y1+y,1);
  742.         DrawPoint(x1-x, y1-y,1);
  743.         DrawPoint(x1-y, y1-x,1);
  744.         DrawPoint(x1+y, y1-x,1);
  745.         DrawPoint(x1+x, y1-y,1);

  746.         if (d < 0)
  747.         {
  748.             d += 2*x+3;         /* 根据误差项d的判断,决定非最大位移方向上是走还是不走   */
  749.         }
  750.         else
  751.         {
  752.             d += 2*(x-y)+5;
  753.             y--;
  754.         }
  755.         x++;
  756.     }
  757. }



  758. /*******************************************************************************************
  759. ** 函数名称: void DrawHand(char x0,char y0,char a,char b,char c,char color)
  760. ** 功能描述:  画时钟指针
  761. ** 输 入:   (CIRCLE_X0,CIRCLE_Y0)表盘圆心坐标,
  762.              R指针长度
  763.              Time指针所指刻度(秒、分60进制,时12进制)
  764.              step指针步长(秒、分为6,时为30)
  765.              color指针颜色  
  766. **         
  767. **        
  768. ** 输 出:
  769. **         
  770. ** 全局变量:
  771. ** 调用模块:
  772. **
  773. ** 作 者:    吴鉴鹰
  774. ** 日 期:     14.03.26
  775. ********************************************************************************************/
  776. void DrawHand(char x0,char y0,char R,char Time,char step,char color)
  777. {
  778.         char x,y;
  779.         x=R*cos(Time*step*pi/180-pi/2)+x0;   
  780.         y=R*sin(Time*step*pi/180-pi/2)+y0;   
  781.         DRAW_line_HS(x0,y0,x,y,color);
  782. }

  783. /*******************************************************************************************
  784. ** 函数名称: clr_screen(void)
  785. ** 功能描述:  清除液晶GDRAM内部的随机数据
  786. ** 输 入:     
  787. **         
  788. **        
  789. ** 输 出:
  790. **         
  791. ** 全局变量:
  792. ** 调用模块:
  793. **
  794. ** 作 者:    吴鉴鹰
  795. ** 日 期:     14.03.26
  796. ********************************************************************************************/
  797. /*void clr_screen(void)
  798. {
  799.         
  800.         uchar i,j;
  801.            for(j=0;j<64;j++)
  802.           {
  803.                 for(i=0;i<128;i++)
  804.                 {
  805.                         DrawPoint(i,j,0);
  806.                 }
  807.         }
  808. } */


  809. /*******************************************************************************************
  810. ** 函数名称: void clr_screen(void)
  811. ** 功能描述:  清屏函数
  812. ** 输 入:     
  813. **         
  814. **        
  815. ** 输 出:
  816. **         
  817. ** 全局变量:
  818. ** 调用模块:
  819. **
  820. ** 作 者:    吴鉴鹰
  821. ** 日 期:     14.03.26
  822. ********************************************************************************************/
  823. void clr_screen(void)
  824. {
  825.   uchar page,row;
  826.   for(page=0xb8;page<0xc0;page++)
  827.   {
  828.     lcd_wcmd(page);
  829.         lcd_wcmd(0x40);
  830.         for(row=0;row<64;row++)
  831.          {
  832.            lcd_wdat(0x00);          //对12864所有地址全部写零
  833.          }
  834.   }
  835. }




  836. /*******************************************************************************
  837. *  描述:                                                                       *
  838. *      12864标准字库液晶演示 数据p0,控制p2                                     *
  839. ********************************************************************************/
  840. /*******************************************************************************************
  841. ** 函数名称: void DISP_BP(void)
  842. ** 功能描述:  画表盘的函数
  843. ** 输 入:     
  844. **         
  845. **        
  846. ** 输 出:
  847. **         
  848. ** 全局变量:
  849. ** 调用模块:
  850. **
  851. ** 作 者:    吴鉴鹰
  852. ** 日 期:     14.03.26
  853. ********************************************************************************************/
  854. void DISP_BP(void)
  855. {
  856.         circle(CIRCLE_X0,CIRCLE_Y0,30);//画圆
  857.         circle(CIRCLE_X0,CIRCLE_Y0,31);//画圆

  858.         DRAW_line_HS(29,1,29,4,1);
  859.         DRAW_line_HS(31,1,31,4,1);//12点
  860.         DRAW_line_HS(30,1,30,4,1);
  861.         DRAW_line_HS(32,1,32,4,1);
  862.         DRAW_line_HS(33,1,33,4,1);


  863.         DRAW_line_HS(29,61,29,58,1);
  864.         DRAW_line_HS(31,61,31,58,1);//6点
  865.         DRAW_line_HS(30,61,30,58,1);
  866.         DRAW_line_HS(32,61,32,58,1);
  867.         DRAW_line_HS(33,61,33,58,1);

  868.         DRAW_line_HS(61,29,58,29,1);
  869.         DRAW_line_HS(61,31,58,31,1);//3点
  870.         DRAW_line_HS(61,30,58,30,1);
  871.         DRAW_line_HS(61,32,58,32,1);
  872.         DRAW_line_HS(61,33,58,33,1);

  873.         DRAW_line_HS(1,29,4,29,1);
  874.         DRAW_line_HS(1,31,4,31,1);  //9点        
  875.         DRAW_line_HS(1,30,4,30,1);
  876.         DRAW_line_HS(1,32,4,32,1);
  877.         DRAW_line_HS(1,33,4,33,1);

  878.     //DRAW_line_HS(31,3,31,7,1);  //后来修改的
  879.         //DRAW_line_HS(3,45,7,45,1);
  880.         //DRAW_line_HS(5,46,7,46,1);
  881.     //DRAW_line_HS(4,47,6,47,1); //4点
  882.         
  883.         DRAW_line_HS(55,45,57,45,1);
  884.         DRAW_line_HS(55,46,57,46,1);
  885.         DRAW_line_HS(55,47,56,47,1); //4点

  886.         DRAW_line_HS(45,55,47,55,1);
  887.         DRAW_line_HS(45,56,47,56,1);  
  888.         DRAW_line_HS(45,57,47,57,1);//5点

  889.         DRAW_line_HS(15,55,17,55,1);
  890.         DRAW_line_HS(15,56,17,56,1);  
  891.         DRAW_line_HS(15,57,17,57,1);//7点

  892.         DRAW_line_HS(5,45,7,45,1);
  893.         DRAW_line_HS(5,46,7,46,1);
  894.         DRAW_line_HS(5,47,7,47,1); //8点


  895.         /*DRAW_line_HS(109,51,111,51,1);//℃符号
  896.         DRAW_line_HS(109,50,111,50,1);
  897.         DRAW_line_HS(109,49,111,49,1);
  898.         DRAW_line_HS(110,50,110,50,0);        */

  899.         circle(8,8,8);        //耳朵左
  900.     circle(8,8,7);        //耳朵左

  901.         circle(8,8,5);        //耳朵左
  902.         circle(8,8,4);        //耳朵左

  903.         DRAW_line_HS(16,7,16,11,0);
  904.         DRAW_line_HS(7,16,12,16,0);
  905.         DRAW_line_HS(15,12,11,15,0);
  906.         DRAW_line_HS(15,11,12,17,0);
  907.         DRAW_line_HS(12,15,12,15,0);

  908.         DRAW_line_HS(15,8,15,10,0);//自己加的去掉左耳朵多余的
  909.         //DRAW_line_HS(15,9,15,9,0);//自己加的去掉左耳朵多余的
  910.         DRAW_line_HS(14,11,14,11,0);//自己加的去掉左耳朵多余的
  911.         DRAW_line_HS(13,13,13,13,0);//自己加的去掉左耳朵多余的
  912.         DRAW_line_HS(11,14,11,14,0);//自己加的去掉左耳朵多余的
  913.         DRAW_line_HS(8,15,10,15,0);//自己加的去掉左耳朵多余的

  914.         DRAW_line_HS(13,8,13,10,0);//自己加的去掉左耳朵多余的
  915.         DRAW_line_HS(12,9,12,11,0);//自己加的去掉左耳朵多余的
  916.         DRAW_line_HS(11,10,11,12,0);//自己加的去掉左耳朵多余的
  917.         DRAW_line_HS(10,11,10,13,0);//自己加的去掉左耳朵多余的
  918.         DRAW_line_HS(9,12,9,13,0);//自己加的去掉左耳朵多余的
  919.         DRAW_line_HS(8,13,8,13,0);//自己加的去掉左耳朵多余的

  920.         //DRAW_line_HS(5,22,13,14,0);  //10点到11点的连线


  921.         circle(54,8,8);        //耳朵右
  922.         circle(54,8,7);        //耳朵右

  923.         circle(54,8,5);        //耳朵右
  924.         circle(54,8,4);        //耳朵右

  925.         DRAW_line_HS(46,7,46,11,0);
  926.         DRAW_line_HS(55,16,50,16,0);
  927.         DRAW_line_HS(47,12,51,16,0);
  928.         DRAW_line_HS(47,11,47,11,0);
  929.     //DRAW_line_HS(48,14,48,14,1);
  930.         DRAW_line_HS(51,15,51,15,0);

  931.         DRAW_line_HS(47,7,47,10,0);  //自己加的去掉右耳朵多余的
  932.         DRAW_line_HS(48,11,48,12,0);  //自己加的去掉右耳朵多余的
  933.         DRAW_line_HS(49,8,49,13,0);  //自己加的去掉右耳朵多余的
  934.         DRAW_line_HS(50,9,50,15,0);  //自己加的去掉右耳朵多余的
  935.         DRAW_line_HS(51,10,51,15,0);  //自己加的去掉右耳朵多余的
  936.         DRAW_line_HS(52,11,52,15,0);  //自己加的去掉右耳朵多余的
  937.         DRAW_line_HS(53,12,53,16,0);  //自己加的去掉右耳朵多余的
  938.         DRAW_line_HS(54,13,54,16,0);  //自己加的去掉右耳朵多余的

  939.         DRAW_line_HS(45,5,47,5,1);
  940.         DRAW_line_HS(45,6,47,6,1);  
  941.         DRAW_line_HS(45,7,47,7,1);  //1点

  942.         DRAW_line_HS(55,15,57,15,1);
  943.         DRAW_line_HS(55,16,57,16,1);
  944.         DRAW_line_HS(55,17,57,17,1); //2点
  945.          
  946.         DRAW_line_HS(5,15,7,15,1);
  947.         DRAW_line_HS(5,16,7,16,1);
  948.         DRAW_line_HS(5,17,7,17,1); //10点

  949.         DRAW_line_HS(15,5,17,5,1);
  950.         DRAW_line_HS(15,6,17,6,1);  
  951.         DRAW_line_HS(15,7,17,7,1);//11点

  952.         DRAW_line_HS(45,2,55,12,1); //1点到二点的连线
  953.         DRAW_line_HS(5,14,13,6,1);  //10点到11点的连线
  954.         DRAW_line_HS(8,51,15,58,1); //10点到11点的连线
  955.     DRAW_line_HS(45,60,56,49,1); //10点到11点的连线

  956.         //DRAW_line_HS(6,61,56,61,1);
  957.         DRAW_line_HS(6,62,56,62,1);                //画底座的程序
  958.     DRAW_line_HS(6,63,56,63,1);

  959.         DRAW_line_HS(6,63,12,53,1);
  960.         DRAW_line_HS(7,63,13,53,1);


  961.         DRAW_line_HS(57,63,49,54,1);
  962.         DRAW_line_HS(56,63,48,54,1);

  963.         DRAW_line_HS(48,54,50,54,0);
  964.         DRAW_line_HS(11,53,13,53,0);

  965.         DRAW_line_HS(45,60,47,60,0);
  966.         DRAW_line_HS(43,59,43,59,1);

  967.         //DRAW_line_HS(0,64,63,64,0);        
  968.         //DRAW_line_HS(0,1,63,1,0);
  969.         //DRAW_line_HS(0,2,63,2,0);
  970. }


  971. /*****************显示时分秒*****************/
  972. /*void sfm(uchar add,uchar sfm)
  973. {
  974.         uchar sfm1,sfm2;
  975.         sfm1=sfm/10;
  976.         sfm2=sfm%10;
  977.         lcd_wcmd(0x90+add);
  978.         lcd_wdat(0x30+sfm1);
  979.         lcd_wdat(0x30+sfm2);
  980. }

  981. void sfmfen()
  982. {
  983.         uchar fen1,fen2;
  984.         fen1=b/10;
  985.         fen2=b%10;
  986.         lcd_wcmd(0x90+5);
  987.         lcd_wdat(0x3a);
  988.         lcd_wdat(0x30+fen1);
  989.         lcd_wdat(0x30+fen2);
  990. }
  991.   */

  992. /*******************************************************************************************
  993. ** 函数名称: void keyscan()
  994. ** 功能描述:  按键扫描函数
  995. ** 输 入:     
  996. **         
  997. **        
  998. ** 输 出:
  999. **         
  1000. ** 全局变量:
  1001. ** 调用模块:
  1002. **
  1003. ** 作 者:    吴鉴鹰
  1004. ** 日 期:     14.03.26
  1005. ********************************************************************************************/
  1006. void keyscan()
  1007. {
  1008.     //uchar i,j,k;  
  1009.     ET0 = 0;
  1010.            if(WJY_K1_IN==0)
  1011.         delay(5);
  1012.     if(WJY_K1_IN==0)
  1013.         {
  1014.                 while(!WJY_K1_IN);
  1015.                 //ET0 = 0;
  1016.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,0);        // 消除秒针位置
  1017.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1);        //显示新的分针位置
  1018.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,15,5*c,6,1);//显示新的时针位置        
  1019.             a++;
  1020.                 if(a==60)
  1021.                    a=0;
  1022.                 //sfm(7,a);
  1023.                 play8(1,6,3,(shu0+((a/10)<<4)));
  1024.                 play8(1,7,3,(shu0+((a%10)<<4)));        
  1025.                      DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,1);                 //显示秒针位置
  1026.                 //ET0 = 1;
  1027.         }

  1028.         if(WJY_K3_IN==0)
  1029.         delay(5);
  1030.         if(WJY_K3_IN==0)
  1031.         {
  1032.                 while(!WJY_K3_IN);
  1033.                 ET0 = 0;
  1034.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,15,5*c,6,0);//消除原来的时针位置
  1035.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,1); //显示秒针位置
  1036.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1);        //显示新的分针位置
  1037.                 c++;
  1038.                 if(c==12)
  1039.                         c=0;
  1040.                 //sfm(4,c/5);
  1041.                 play8(1,0,3,(shu0+((c/10)<<4)));
  1042.         play8(1,1,3,(shu0+((c%10)<<4)));        
  1043.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,15,5*c,6,1);//显示新的时针位置
  1044.                 //ET0 = 1;                                
  1045.         }

  1046.     if(WJY_K2_IN==0)
  1047.         delay(5);
  1048.         if(WJY_K2_IN==0)
  1049.         {           
  1050.                 while(!WJY_K2_IN);
  1051.                 ET0 = 0;
  1052.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,0);         //消除原来分针位置
  1053.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,15,5*c,6,1);       //显示新的时针位置
  1054.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,1);                 //显示秒针位置
  1055.                 b++;
  1056.                 if(b==60)
  1057.                     b=0;
  1058.                 //sfmfen();
  1059.                 play8(1,3,3,(shu0+((b/10)<<4)));
  1060.         play8(1,4,3,(shu0+((b%10)<<4)));
  1061.                 DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1);        //显示新的分针位置
  1062.                 ET0 = 1;
  1063.          }                  

  1064.         
  1065.         ET0 = 1;        
  1066. }           




  1067. /*******************画开机画面********************/

  1068. /*void GUI_CLEAR(const uchar *pic)
  1069. {
  1070. //        uchar i,j,k;
  1071. //   //lcd_wcmd(0X34);
  1072. //        lcd_wcmd(0X34);
  1073. //        for(i=0;i<2;i++)
  1074. //        {
  1075. //                for(j=0;j<32;j++)
  1076. //                {
  1077. //                        lcd_wcmd(0X80+j);
  1078. //                        delay(2);
  1079. //                        if(i==0)
  1080. //                        {
  1081. //                                lcd_wcmd(0X80);
  1082. //                                delay(2);
  1083. //                                
  1084. //                        }
  1085. //                        else
  1086. //                        {
  1087. //                                lcd_wcmd(0X88);
  1088. //                                delay(2);
  1089. //                        }
  1090. //                        for(k=0;k<16;k++)
  1091. //                        {
  1092. //                                lcd_wdat(*(pic++));
  1093. //                                //LCD_WRITE_DATA(0X00);
  1094. //                                delay(2);
  1095. //                        }
  1096. //                }
  1097. //        }
  1098.         
  1099. //lcd_wcmd(0X36);
  1100. //lcd_wcmd(0X30);
  1101. }
  1102. */
  1103.   /********************DS18B20***********************************/
  1104. void delay18b20(unsigned char i)
  1105. {
  1106. while(--i);
  1107. }

  1108. void Init_Ds18b20(void)     //DS18B20初始化send reset and initialization command
  1109. {
  1110. DQ = 1;                     //DQ复位,不要也可行。
  1111. delay18b20(1);                  //稍做延时
  1112. DQ = 0;                    //单片机拉低总线
  1113. delay18b20(250);                //精确延时,维持至少480us
  1114. DQ = 1;                    //释放总线,即拉高了总线
  1115. delay18b20(100);                //此处延时有足够,确保能让DS18B20发出存在脉冲。
  1116. }

  1117. /*******************************************************************************************
  1118. ** 函数名称: uchar Read_One_Byte()  
  1119. ** 功能描述:  读取一个字节的数据read a byte date
  1120. ** 输 入:     
  1121. **         
  1122. **        
  1123. ** 输 出:
  1124. **         
  1125. ** 全局变量:
  1126. ** 调用模块:
  1127. **
  1128. ** 作 者:    吴鉴鹰
  1129. ** 日 期:     14.03.26
  1130. ********************************************************************************************/
  1131. uchar Read_One_Byte()       //读取一个字节的数据read a byte date
  1132.                             //读数据时,数据以字节的最低有效位先从总线移出
  1133. {
  1134. uchar i   = 0;
  1135. uchar dat = 0;
  1136. for(i=8;i>0;i--)
  1137. {
  1138.    DQ = 0;                  //将总线拉低,要在1us之后释放总线
  1139.                            //单片机要在此下降沿后的15us内读数据才会有效。
  1140.    _nop_();                //至少维持了1us,表示读时序开始
  1141.    dat >>= 1;               //让从总线上读到的位数据,依次从高位移动到低位。
  1142.    DQ = 1;                  //释放总线,此后DS18B20会控制总线,把数据传输到总线上
  1143.    delay18b20(1);                 //延时7us,此处参照推荐的读时序图,尽量把控制器采样时间放到读时序后的15us内的最后部分
  1144.    if(DQ)                   //控制器进行采样
  1145.    {
  1146.     dat |= 0x80;            //若总线为1,即DQ为1,那就把dat的最高位置1;若为0,则不进行处理,保持为0
  1147.    }        
  1148.    delay18b20(10);               //此延时不能少,确保读时序的长度60us。
  1149. }
  1150. return (dat);
  1151. }




  1152. /*******************************************************************************************
  1153. ** 函数名称: void Write_One_Byte(uchar dat)
  1154. ** 功能描述:  写18B20的指令函数
  1155. ** 输 入:     
  1156. **         
  1157. **        
  1158. ** 输 出:
  1159. **         
  1160. ** 全局变量:
  1161. ** 调用模块:
  1162. **
  1163. ** 作 者:    吴鉴鹰
  1164. ** 日 期:     14.03.26
  1165. ********************************************************************************************/
  1166. void Write_One_Byte(uchar dat)
  1167. {
  1168. uchar i = 0;
  1169. for(i=8;i>0;i--)
  1170. {
  1171.    DQ = 0;                        //拉低总线
  1172.    _nop_();                       //至少维持了1us,表示写时序(包括写0时序或写1时序)开始
  1173.    DQ = dat&0x01;                 //从字节的最低位开始传输
  1174.                                  //指令dat的最低位赋予给总线,必须在拉低总线后的15us内,
  1175.                                  //因为15us后DS18B20会对总线采样。
  1176.    delay18b20(10);                     //必须让写时序持续至少60us
  1177.    DQ = 1;                        //写完后,必须释放总线,
  1178.    dat >>= 1;
  1179.    delay18b20(1);
  1180. }
  1181. }


  1182. uint Get_Tmp()                   //获取温度get the temperature
  1183. {
  1184. float tt;
  1185. uchar a,b;
  1186. Init_Ds18b20();                //初始化
  1187. Write_One_Byte(0xcc);          //忽略ROM指令
  1188. Write_One_Byte(0x44);          //温度转换指令
  1189. Init_Ds18b20();                 //初始化
  1190. Write_One_Byte(0xcc);          //忽略ROM指令
  1191. Write_One_Byte(0xbe);          //读暂存器指令
  1192. a = Read_One_Byte();           //读取到的第一个字节为温度LSB
  1193. b = Read_One_Byte();           //读取到的第一个字节为温度MSB
  1194. temp = b;                      //先把高八位有效数据赋于temp
  1195. temp <<= 8;                    //把以上8位数据从temp低八位移到高八位
  1196. temp = temp|a;                //两字节合成一个整型变量
  1197. tt = temp*0.0625;              //得到真实十进制温度值
  1198.                                 //因为DS18B20可以精确到0.0625度
  1199.                                 //所以读回数据的最低位代表的是0.0625度
  1200. temp = tt*10+0.5;               //放大十倍
  1201.                                 //这样做的目的将小数点后第一位也转换为可显示数字
  1202.                                 //同时进行一个四舍五入操作。
  1203. return temp;
  1204. }


  1205. /*******************************************************************************************
  1206. ** 函数名称:  void Display(uint temp)   //显示程序
  1207. ** 功能描述:  动态显示温度函数
  1208. ** 输 入:     
  1209. **         
  1210. **        
  1211. ** 输 出:
  1212. **         
  1213. ** 全局变量:
  1214. ** 调用模块:
  1215. **
  1216. ** 作 者:    吴鉴鹰
  1217. ** 日 期:     14.03.26
  1218. ********************************************************************************************/

  1219. void Display(uint temp)   //显示程序
  1220. {
  1221. uchar A1,A2,A3;
  1222. A1 = temp/100;    //百位
  1223. A2 = temp%100/10;   //十位
  1224. A3 = temp%10;    //个位

  1225. lcd_wcmd(0x98+4);
  1226. lcd_wdat(' ');
  1227. lcd_wdat(0x30+A1);
  1228. lcd_wdat(0x30+A2);
  1229. lcd_wdat('.');
  1230. lcd_wdat(0x30+A3);

  1231. }  


  1232. /*******************************************************************************************
  1233. ** 函数名称:  void play16(uchar ch,uchar row,uchar page,uchar *adr)
  1234. ** 功能描述:  /**16X16显示*汉字显示
  1235. ** 输 入:     
  1236. **         
  1237. **        
  1238. ** 输 出:
  1239. **         
  1240. ** 全局变量:
  1241. ** 调用模块:
  1242. **
  1243. ** 作 者:    吴鉴鹰
  1244. ** 日 期:     14.03.26
  1245. ********************************************************************************************/
  1246. /*void play16(uchar ch,uchar row,uchar page,uchar *adr)
  1247. {
  1248.   uchar i;
  1249.   choose12864(ch);
  1250.   page=page<<1;                                          
  1251.   row=row<<3;
  1252.   cmd_w12864(row+0x40);
  1253.   cmd_w12864(page+0xb8);
  1254.   for(i=0;i<16;i++)
  1255.   {
  1256.     dat_w12864(*(adr+i));
  1257.   }
  1258.   cmd_w12864(row+0x40);
  1259.   cmd_w12864(page+0xb9);
  1260.   for(i=16;i<32;i++)
  1261.   {
  1262.     dat_w12864(*(adr+i));
  1263.   }
  1264. } */        

  1265. /*******************************************************************************************
  1266. ** 函数名称:  void CHECK_busy()
  1267. ** 功能描述:  读“忙”函数,判断液晶当前是否忙碌  
  1268. ** 输 入:     
  1269. **         
  1270. **        
  1271. ** 输 出:
  1272. **         
  1273. ** 全局变量:
  1274. ** 调用模块:
  1275. **
  1276. ** 作 者:    吴鉴鹰
  1277. ** 日 期:     14.03.12
  1278. ********************************************************************************************/
  1279. void CHECK_busy()//读“忙”函数-----数据线的最高位DB71则busy               
  1280. {
  1281.         P0=0x00;
  1282.            LCD_RS_OUT=0;  
  1283.            LCD_RW_OUT=1;
  1284.         LCD_EN_OUT=1;
  1285.         while(P0 & 0x80);
  1286.         LCD_EN_OUT=0;
  1287. }

  1288. /*******************************************************************************************
  1289. ** 函数名称:  void SEL_SCREN(uchar screen)
  1290. ** 功能描述:  LCD选择屏幕  
  1291. ** 输 入:    uchar screen(选择屏幕0:全屏  1:左半屏 2:右半屏)  
  1292. **         
  1293. **        
  1294. ** 输 出:   
  1295. **         
  1296. ** 全局变量:
  1297. ** 调用模块:
  1298. **
  1299. ** 作 者:    吴鉴鹰
  1300. ** 日 期:     14.03.26
  1301. ********************************************************************************************/
  1302. void SEL_SCREN(uchar screen)        //选择屏幕
  1303. {                                                  
  1304.    switch(screen)
  1305.    {
  1306.             case 0: LCD_CS1_OUT=0;LCD_CS2_OUT=0;break; //全屏     
  1307.      case 1: LCD_CS1_OUT=0;LCD_CS2_OUT=1;break;//左半屏        
  1308.      case 2: LCD_CS1_OUT=1;LCD_CS2_OUT=0;break;//右半屏      
  1309.      default:break;
  1310.    }
  1311. }

  1312. /*******************************************************************************************
  1313. ** 函数名称:  void LCD_COM_WRI(uchar value)
  1314. ** 功能描述:  LCD液晶写命令函数  
  1315. ** 输 入:    uchar value(向LCD写入的命令)
  1316. **         
  1317. **        
  1318. ** 输 出:
  1319. **         
  1320. ** 全局变量:
  1321. ** 调用模块:
  1322. **
  1323. ** 作 者:    吴鉴鹰
  1324. ** 日 期:     14.03.26
  1325. ********************************************************************************************/
  1326. void LCD_COM_WRI(uchar value)        //写命令函数
  1327. {
  1328.    CHECK_busy();                                                //对LCD的每次读写都要读忙
  1329.    LCD_RS_OUT=0;                                                         //选择命令
  1330.    LCD_RW_OUT=0;                                                         //读操作
  1331.    LCD_12864_DATA = value;
  1332.    LCD_EN_OUT=1;                                                        //LCD_EN_OUT由1----0锁存有效数据
  1333.    _nop_();
  1334.    _nop_();
  1335.    LCD_EN_OUT=0;
  1336. }

  1337. /*******************************************************************************************
  1338. ** 函数名称:  void CHOOSE_PG(uchar page)
  1339. ** 功能描述:  设置“页”LCD12864共8页,一页是8行点阵点
  1340. ** 输 入:    uchar page(送入设置的页数)
  1341. **         
  1342. **        
  1343. ** 输 出:   
  1344. **         
  1345. ** 全局变量:
  1346. ** 调用模块:
  1347. **
  1348. ** 作 者:    吴鉴鹰
  1349. ** 日 期:     14.03.26
  1350. ********************************************************************************************/
  1351. void CHOOSE_PG(uchar page)                //设置“页”LCD12864共8页,一页是8行点阵点        
  1352. {
  1353.   page=0xb8|page;                                 //页的首地址为0xB8
  1354.   LCD_COM_WRI(page);
  1355. }

  1356. /*******************************************************************************************
  1357. ** 函数名称:  void CHOOSE_COLUMN(uchar column)
  1358. ** 功能描述:  设置显示的列
  1359. ** 输 入:    uchar column(设置显示的列)
  1360. **         
  1361. **        
  1362. ** 输 出:   
  1363. **         
  1364. ** 全局变量:
  1365. ** 调用模块:
  1366. **
  1367. ** 作 者:    吴鉴鹰
  1368. ** 日 期:     14.03.26
  1369. ********************************************************************************************/
  1370. void CHOOSE_COLUMN(uchar column)        //设置显示的列        
  1371. {
  1372.   column=column &0x3f;                         //列的最大值为64
  1373.   column= 0x40|column;                         //列的首地址为0x40
  1374.   LCD_COM_WRI(column);        //规定显示的列的位置
  1375. }

  1376. /*******************************************************************************************
  1377. ** 函数名称:  void LCD_DATA_WRI(uchar value)
  1378. ** 功能描述:  LCD液晶写数据的函数  
  1379. ** 输 入:    uchar value(向LCD写入的数据)
  1380. **         
  1381. **        
  1382. ** 输 出:
  1383. **         
  1384. ** 全局变量:
  1385. ** 调用模块:
  1386. **
  1387. ** 作 者:    吴鉴鹰
  1388. ** 日 期:     14.03.26
  1389. ********************************************************************************************/
  1390. void LCD_DATA_WRI(uchar value)//写数据函数        
  1391. {
  1392.    CHECK_busy();
  1393.    LCD_RS_OUT=1;                                                 //选择数据
  1394.    LCD_RW_OUT=0;        
  1395.    LCD_12864_DATA = value;
  1396.    LCD_EN_OUT=1;                                                //LCD_EN_OUT由1----0锁存有效数据
  1397.    _nop_();               
  1398.    _nop_();
  1399.    LCD_EN_OUT=0;
  1400. }

  1401. /*******************************************************************************************
  1402. ** 函数名称:  void Display_HZ(uchar screen,uchar page,uchar column,uchar *p)
  1403. ** 功能描述:  显示汉字  
  1404. ** 输 入:    uchar screen,uchar page,uchar column,uchar *p(屏数,页数,还有显示的数组首地址)  
  1405. **         
  1406. **        
  1407. ** 输 出:   
  1408. **         
  1409. ** 全局变量:
  1410. ** 调用模块:
  1411. **
  1412. ** 作 者:    吴鉴鹰
  1413. ** 日 期:     14.03.26
  1414. ********************************************************************************************/  

  1415. void DIS_HZ_HANSHU(uchar screen,uchar page,uchar column,uchar *p)
  1416. {
  1417.         uchar i;
  1418.         SEL_SCREN(screen);
  1419.         CHOOSE_PG(page);                                        //写上半页:16*8
  1420.         CHOOSE_COLUMN(column*16);                         //控制列
  1421.         for(i=0;i<16;i++)                                  //控制16列的数据输出
  1422.         {
  1423.                 LCD_DATA_WRI(p);                 //汉字的上半部分
  1424.         }
  1425.         CHOOSE_PG(page+1);                                //写下半页:16*8
  1426.         CHOOSE_COLUMN(column*16);                        //控制列
  1427.     for(i=0;i<16;i++)                                //控制16列的数据输出
  1428.         {
  1429.                 LCD_DATA_WRI(p[i+16]);        //汉字的下半部分
  1430.         }
  1431. }


  1432. /**8X16字符的显示**/
  1433. void play8(uchar ch,uchar row,uchar page,uchar *adr)
  1434. {
  1435.   uchar i;
  1436.   choose12864(ch);
  1437.   page=page<<1;                           //程序中采用的位移运算代替乘法运算,这样可以大大降低处理器的负担
  1438.   row=row<<3;
  1439.   LCD_COM_WRI(row+0x40);
  1440.   LCD_COM_WRI(page+0xb8);
  1441.   for(i=0;i<8;i++)
  1442.   {
  1443.     LCD_DATA_WRI(*(adr+i));
  1444.   }
  1445.   LCD_COM_WRI(row+0x40);
  1446.   LCD_COM_WRI(page+0xb9);
  1447.   for(i=8;i<16;i++)
  1448.   {
  1449.     LCD_DATA_WRI(*(adr+i));
  1450.   }
  1451. }


  1452. /*******************************************************************************************
  1453. ** 函数名称:  void Display_picture(uchar a[][64])
  1454. ** 功能描述:  显示图片的函数  
  1455. ** 输 入:    uchar a[][64](存放图片的数组)  
  1456. **         
  1457. **        
  1458. ** 输 出:   
  1459. **         
  1460. ** 全局变量:
  1461. ** 调用模块:
  1462. **
  1463. ** 作 者:    吴鉴鹰
  1464. ** 日 期:     14.03.26
  1465. ********************************************************************************************/
  1466. void GUI_CLEAR(uchar a[][64])//显示图形—128*64大小
  1467. {
  1468.         uchar i,j;
  1469.         
  1470.         for(j=0;j<8;j++)
  1471.         {        
  1472.                 SEL_SCREN(1);
  1473.                 CHOOSE_PG(j);
  1474.                 CHOOSE_COLUMN(0);
  1475.                 for(i=0;i<64;i++)
  1476.                 {
  1477.                         LCD_DATA_WRI(a[2*j]);//每隔一行取一次数组中的数据
  1478.                 }
  1479.                 SEL_SCREN(2);
  1480.                 CHOOSE_PG(j);
  1481.                 CHOOSE_COLUMN(0);
  1482.                 for(i=0;i<64;i++)
  1483.                 {
  1484.                         LCD_DATA_WRI(a[2*j+1]);//每隔一行取一次数组中的数据
  1485.                 }        
  1486.         }        
  1487. }

  1488. /*********************************************************
  1489. *                                                        *
  1490. * 主函数                                                 *
  1491. *                                                        *
  1492. *********************************************************/

  1493. void main()
  1494. {         
  1495.     unsigned char         dis_couts = 0;
  1496.     //lcd_init();
  1497.         //GUI_CLEAR(table);
  1498.         //while(1);
  1499.         //Delay_S(); Delay_S();Delay_S();
  1500.     //Delay_S(); Delay_S();Delay_S();
  1501.         P2=0xff;
  1502.         TMOD=0X01;
  1503.         TH0=(65536-50000)/256;
  1504.         TL0=(65536-50000)%256;
  1505.     //choose12864(2);        
  1506.         //EX1=1;                        
  1507.         a=8;
  1508.         b=8;
  1509.         c=8;
  1510.         delay(100);                 //上电,等待稳定
  1511.         choose12864(2);
  1512.         lcd_init();                 //初始化LCD
  1513.         clr_screen();                                //清屏
  1514.         //GUI_CLEAR(table);
  1515.     circle(31,31,30);
  1516.         //while(1);
  1517.         //play8(1,3,3,(shu0+(datastring[0]<<4)));
  1518.         //while(1);

  1519.         DISP_BP();                                        //画表盘

  1520.     //DrawHand(CIRCLE_X0,CIRCLE_Y0,15,c,6,1);          //显示时针

  1521.         //while(1);

  1522.         //while(1);
  1523.         //play16(0,4,0,tan);
  1524.         // while(1);
  1525.     /*DIS_HZ_HANSHU(2,0,0,wuwu);
  1526.         DIS_HZ_HANSHU(2,0,1,jianjian);
  1527.         DIS_HZ_HANSHU(2,0,2,yingY);*/

  1528.     DIS_HZ_HANSHU(2,2,0,MOMO);
  1529.         DIS_HZ_HANSHU(2,2,1,MINNIN);
  1530.         DIS_HZ_HANSHU(2,2,2,SHISHI);
  1531.         DIS_HZ_HANSHU(2,2,3,ZHONG);

  1532.         DIS_HZ_HANSHU(2,4,0,jianjian);
  1533.         DIS_HZ_HANSHU(2,4,1,yingY);
  1534.         DIS_HZ_HANSHU(2,4,2,DIAN);
  1535.         DIS_HZ_HANSHU(2,4,3,ZIZI);        

  1536.         /*DIS_HZ_HANSHU(2,6,0,HUAN);
  1537.         DIS_HZ_HANSHU(2,6,1,LELE);
  1538.         DIS_HZ_HANSHU(2,6,2,WUWUL);
  1539.         DIS_HZ_HANSHU(2,6,3,QIONG);        */


  1540.         DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,1);         //显示秒针
  1541.         DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1);           //显示分针
  1542.         DrawHand(CIRCLE_X0,CIRCLE_Y0,15,5*c,6,1);          //显示时针
  1543.     //while(1);
  1544.         //lcd_wcmd(0x90+4);                                 //显示初始时间
  1545.         /*for(num=0;num<8;num++)                  
  1546.         {
  1547.                 lcd_wdat(tab[num]);
  1548.         }*/
  1549.         //lcd_wcmd(0x98+7);                 //显示温度符号C
  1550.         //lcd_wdat('C');
  1551.         //lcd_wcmd(0x80+4);                                 //显示”北京时间“
  1552.         /*for(num=0;num<8;num++)                  
  1553.         {
  1554.                 lcd_wdat(tabbjsj[num]);
  1555.         } */
  1556.         //lcd_wcmd(0x88+4);                                 //显示"实时温度"
  1557.         /*for(num=0;num<8;num++)                  
  1558.         {
  1559.                 lcd_wdat(tabsswd[num]);
  1560.         } */
  1561.         /*c=8;
  1562.         b=8;
  1563.         a=8;   */
  1564.         /*DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,1);         //显示秒针
  1565.         //while(1);
  1566.         DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1);        //显示分针
  1567.         DrawHand(CIRCLE_X0,CIRCLE_Y0,15,c,6,1);          //显示时针 */

  1568.         play8(1,0,3,(shu0+((c/10)<<4)));
  1569.     play8(1,1,3,(shu0+((c%10)<<4)));
  1570.         play8(1,2,3,maohao);
  1571.         play8(1,3,3,(shu0+((b/10)<<4)));
  1572.         play8(1,4,3,(shu0+((b%10)<<4)));
  1573.         play8(1,5,3,maohao);
  1574.         //maohao
  1575.         //while(1);
  1576.         //DrawHand(CIRCLE_X0,CIRCLE_Y0,25,49,6,1);                  //显示新的秒针位置
  1577.         //while(1);
  1578.         EA=1;
  1579.         ET0=1;
  1580.         TR0=1;
  1581.         while(1)
  1582.         {
  1583.                 keyscan();
  1584.                 //Display(Get_Tmp());//显示温度
  1585.                 if(count==20)
  1586.                 {
  1587.                         count=0;
  1588.                         ET0 = 0;
  1589.                         DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,0); // 消除秒针位置
  1590.                         DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1); //显示新的分针位置
  1591.                         DrawHand(CIRCLE_X0,CIRCLE_Y0,15,5*c,6,1); //显示新的时针位置        
  1592.                         ET0 = 1;
  1593.                         a++;        
  1594.                         if(a==60)                                                                                                                                                                                   
  1595.                         {
  1596.                                 a=0;
  1597.                                 ET0 = 0;
  1598.                                 DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,0); //消除原来分针位置
  1599.                                 DrawHand(CIRCLE_X0,CIRCLE_Y0,15,5*c,6,1);//显示新的时针位置
  1600.                                 ET0 = 1;
  1601.                                 b++;
  1602.                                 if(b==60 )
  1603.                                 {
  1604.                                         b=0;
  1605.                                         ET0 = 0;
  1606.                                         DrawHand(CIRCLE_X0,CIRCLE_Y0,15,5*c,6,0);//消除原来的时针位置
  1607.                                         ET0 = 1;
  1608.                                         c++;
  1609.                                         if(c==60)
  1610.                                         {
  1611.                                                 c=0;
  1612.                                         }
  1613.                                         ET0 = 0;
  1614.                                         play8(1,0,3,(shu0+((c/10)<<4)));
  1615.                     play8(1,1,3,(shu0+((c%10)<<4)));
  1616.                                     //sfm(4,c/5);  
  1617.                                         DrawHand(CIRCLE_X0,CIRCLE_Y0,15,5*c,6,1);//显示新的时针位置
  1618.                                         ET0 = 1;
  1619.                                 }
  1620.                                  ET0 = 0;
  1621.                                  play8(1,3,3,(shu0+((b/10)<<4)));
  1622.                        play8(1,4,3,(shu0+((b%10)<<4)));
  1623.                              //sfmfen();        
  1624.                                  DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1);        //显示新的分针位置
  1625.                                  ET0 = 1;
  1626.                         }
  1627.                         //sfm(7,a);
  1628.                                 ET0 = 0;
  1629.                                  play8(1,6,3,(shu0+((a/10)<<4)));
  1630.                                 play8(1,7,3,(shu0+((a%10)<<4)));        
  1631.                             DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,1);                  //显示新的秒针位置

  1632.                                 if(a%3 == 0)
  1633.                                 {
  1634.                                    DIS_HZ_HANSHU(2,0,0,wuwu);
  1635.                                 }
  1636.                                 else if(a%3 == 1)
  1637.                                 {
  1638.                                    DIS_HZ_HANSHU(2,0,0,wuwu);
  1639.                                    DIS_HZ_HANSHU(2,0,1,jianjian);
  1640.                                 }

  1641.                                 else if(a%3 == 2)
  1642.                                 {
  1643.                                    DIS_HZ_HANSHU(2,0,0,wuwu);
  1644.                                    DIS_HZ_HANSHU(2,0,1,jianjian);
  1645.                                    DIS_HZ_HANSHU(2,0,2,yingY);
  1646.                                 }
  1647.                                 ET0 = 1;
  1648.                 }


  1649.                      /* if(dis_couts < 5)
  1650.                         {
  1651.                            dis_couts++;
  1652.                         }
  1653.                         else
  1654.                         {
  1655.                            dis_couts = 0;
  1656.                            if(dis_flag < 4)
  1657.                            {
  1658.                              dis_flag ++;
  1659.                            }
  1660.                            else
  1661.                            {
  1662.                               dis_flag = 0;
  1663.                            }
  1664.                         }
  1665.                         
  1666.                     if(dis_flag == 0)
  1667.                         {
  1668.                                         DIS_HZ_HANSHU(2,0,0,wuwu);
  1669.                                         DIS_HZ_HANSHU(2,0,1,jianjian);
  1670.                                         DIS_HZ_HANSHU(2,0,2,yingY);
  1671.                                 
  1672.                                     DIS_HZ_HANSHU(2,2,0,MOMO);
  1673.                                         DIS_HZ_HANSHU(2,2,1,MINNIN);
  1674.                                         DIS_HZ_HANSHU(2,2,2,SHISHI);
  1675.                                         DIS_HZ_HANSHU(2,2,3,ZHONG);
  1676.                                 
  1677.                                         DIS_HZ_HANSHU(2,4,0,jianjian);
  1678.                                         DIS_HZ_HANSHU(2,4,1,yingY);
  1679.                                         DIS_HZ_HANSHU(2,4,2,DIAN);
  1680.                                         DIS_HZ_HANSHU(2,4,3,ZIZI);
  1681.                                 
  1682.                                         DIS_HZ_HANSHU(2,6,0,HUAN);
  1683.                                         DIS_HZ_HANSHU(2,6,1,LELE);
  1684.                                         DIS_HZ_HANSHU(2,6,2,WUWUL);
  1685.                                         DIS_HZ_HANSHU(2,6,3,QIONG);        

  1686.                         }
  1687.                         else if(dis_flag == 1)        
  1688.                         {
  1689.                                 DIS_HZ_HANSHU(2,2,0,wuwu);
  1690.                                         DIS_HZ_HANSHU(2,2,1,jianjian);
  1691.                                         DIS_HZ_HANSHU(2,2,2,yingY);
  1692.                                 
  1693.                                     DIS_HZ_HANSHU(2,4,0,MOMO);
  1694.                                         DIS_HZ_HANSHU(2,4,1,MINNIN);
  1695.                                         DIS_HZ_HANSHU(2,4,2,SHISHI);
  1696.                                         DIS_HZ_HANSHU(2,4,3,ZHONG);
  1697.                                 
  1698.                                         DIS_HZ_HANSHU(2,6,0,jianjian);
  1699.                                         DIS_HZ_HANSHU(2,6,1,yingY);
  1700.                                         DIS_HZ_HANSHU(2,6,2,DIAN);
  1701.                                         DIS_HZ_HANSHU(2,6,3,ZIZI);
  1702.                                 
  1703.                                         DIS_HZ_HANSHU(2,0,0,HUAN);
  1704.                                         DIS_HZ_HANSHU(2,0,1,LELE);
  1705.                                         DIS_HZ_HANSHU(2,0,2,WUWUL);
  1706.                                         DIS_HZ_HANSHU(2,0,3,QIONG);         
  1707.                                                 
  1708.                         }
  1709.             else if(dis_flag == 2)        
  1710.                         {
  1711.                                        
  1712.                                         DIS_HZ_HANSHU(2,4,0,wuwu);
  1713.                                         DIS_HZ_HANSHU(2,4,1,jianjian);
  1714.                                         DIS_HZ_HANSHU(2,4,2,yingY);
  1715.                                 
  1716.                                     DIS_HZ_HANSHU(2,6,0,MOMO);
  1717.                                         DIS_HZ_HANSHU(2,6,1,MINNIN);
  1718.                                         DIS_HZ_HANSHU(2,6,2,SHISHI);
  1719.                                         DIS_HZ_HANSHU(2,6,3,ZHONG);
  1720.                                 
  1721.                                         DIS_HZ_HANSHU(2,0,0,jianjian);
  1722.                                         DIS_HZ_HANSHU(2,0,1,yingY);
  1723.                                         DIS_HZ_HANSHU(2,0,2,DIAN);
  1724.                                         DIS_HZ_HANSHU(2,0,3,ZIZI);
  1725.                                 
  1726.                                         DIS_HZ_HANSHU(2,2,0,HUAN);
  1727.                                         DIS_HZ_HANSHU(2,2,1,LELE);
  1728.                                         DIS_HZ_HANSHU(2,2,2,WUWUL);
  1729.                                         DIS_HZ_HANSHU(2,2,3,QIONG);         

  1730.                         }
  1731.                         else if(dis_flag == 3)        
  1732.                         {
  1733.                                        DIS_HZ_HANSHU(2,6,0,wuwu);
  1734.                                         DIS_HZ_HANSHU(2,6,1,jianjian);
  1735.                                         DIS_HZ_HANSHU(2,6,2,yingY);
  1736.                                 
  1737.                                     DIS_HZ_HANSHU(2,0,0,MOMO);
  1738.                                         DIS_HZ_HANSHU(2,0,1,MINNIN);
  1739.                                         DIS_HZ_HANSHU(2,0,2,SHISHI);
  1740.                                         DIS_HZ_HANSHU(2,0,3,ZHONG);
  1741.                                 
  1742.                                         DIS_HZ_HANSHU(2,2,0,jianjian);
  1743.                                         DIS_HZ_HANSHU(2,2,1,yingY);
  1744.                                         DIS_HZ_HANSHU(2,2,2,DIAN);
  1745.                                         DIS_HZ_HANSHU(2,2,3,ZIZI);
  1746.                                 
  1747.                                         DIS_HZ_HANSHU(2,4,0,HUAN);
  1748.                                         DIS_HZ_HANSHU(2,4,1,LELE);
  1749.                                         DIS_HZ_HANSHU(2,4,2,WUWUL);
  1750.                                         DIS_HZ_HANSHU(2,4,3,QIONG);         
  1751.                                 
  1752.                         }*/
  1753.         }         
  1754. }                 

  1755. /*******************************************************************************************
  1756. ** 函数名称:  void ser0()interrupt 1
  1757. ** 功能描述:  定时器中断函数
  1758. ** 输 入:     
  1759. **         
  1760. **        
  1761. ** 输 出:
  1762. **         
  1763. ** 全局变量:
  1764. ** 调用模块:
  1765. **
  1766. ** 作 者:    吴鉴鹰
  1767. ** 日 期:     14.03.26
  1768. ********************************************************************************************/
  1769. void ser0()interrupt 1
  1770. {
  1771.         TH0=(65536-50000)/256;
  1772.         TL0=(65536-50000)%256;
  1773.         count++;
  1774. }
复制代码

为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

364

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2014-12-26 13:38 | 显示全部楼层
27、吴鉴鹰12864系列(连载)之基于12864的动态模拟时钟的显示 (三)——完整资料

完整资料请点击下载:
吴鉴鹰单片机项目之12864实现圆形模拟时钟显示.pdf (890.32 KB, 下载次数: 99)
为了方便大家交流,建了两个QQ群:QQ群3号:198387118  【1000人群】QQ群5号: 239316959【2000人群】群内已有成员3000余人!
更多内容关注微信公众号:单片机精讲吴鉴鹰

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-3-31 15:58 , Processed in 0.583325 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表