[程序源码] 单片机开发10年,单片机例程从易到难连载分享

[复制链接]
35672|172
创隆电子 发表于 2015-6-16 22:42 | 显示全部楼层
直接给文件好吗
创隆电子 发表于 2015-6-16 22:53 | 显示全部楼层
直接给文件可以吗?复制粘贴出来乱七八糟
 楼主| 吴鉴鹰 发表于 2015-6-17 08:44 | 显示全部楼层
创隆电子 发表于 2015-6-16 22:53
直接给文件可以吗?复制粘贴出来乱七八糟

直接看就可以了,复制再多如果不看也是枉然。
 楼主| 吴鉴鹰 发表于 2015-6-17 16:59 | 显示全部楼层
第七讲:单片机驱动12864多级菜单设计(一)——原理图







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
林中木 发表于 2015-6-17 20:53 | 显示全部楼层
战神LEBRON 发表于 2015-4-7 23:20
全局变量和局部变量最好不要取同名吧,容易搞混

支持
 楼主| 吴鉴鹰 发表于 2015-6-17 21:24 | 显示全部楼层

谢谢每一个支持的人:lol
 楼主| 吴鉴鹰 发表于 2015-6-18 15:30 | 显示全部楼层
samxyl_520 发表于 2015-6-7 11:17
不错的,学习了。

**学下去,你将收获良多:handshake
创隆电子 发表于 2015-6-23 07:09 | 显示全部楼层
不是这个,是你以前的单片机学的哪些
 楼主| 吴鉴鹰 发表于 2015-6-23 16:08 | 显示全部楼层
创隆电子 发表于 2015-6-23 07:09
不是这个,是你以前的单片机学的哪些

我学习的资料太多了,这个可没有整理。
 楼主| 吴鉴鹰 发表于 2015-7-1 10:39 | 显示全部楼层

第八讲:单片机驱动12864多级菜单设计(二)——主程序设计


/******************************************************
**作品:LCD12864多级菜单设计                                                           
**申明:转载请标明作品来源 知识产权归作者本人所有!                                                                                       
** 功能描述:  LCD12864多级菜单设计   
** 液晶:Proteus元件库—AMPIRE128X64(无字库)              
** 作 者:    吴鉴鹰
** 日 期:     14.06.12
**作者所属单位:鉴鹰电子工作室
**交流QQ群: 第一群:198387118   第二群: 239316959   联系QQ:1811728618
** 更多内容可以关注微信公众号:单片机精讲吴鉴鹰  微信号:wujianying_danpianji
**申明:转载请标明作品来源 知识产权归作者吴鉴鹰所有!
  1. #include"inc/ComCtrol.h"
  2. #include"inc/Uart_Function.h"
  3. #include"inc/Short_variabledefine.h"
  4. #include"inc/WjMath_Fun.h"
  5. #include<reg51.h>
  6. #include"inc/Menu_Function_Display.h"
  7. #include"inc/Key_Function.h"
  8. #include"inc/Com_Diaplay_Function.h"
  9. #include"inc/Menufun_Array.h"
  10. #include"inc/Lcd_12864_Function.h"
  11. #include "inc/1302.h"
  12. //#include"inc/main.h"
  13. extern uFlag Menu_SysFlag;
  14. extern U8 KeyVal;
  15. extern U8 MenuIndexSaved;
  16. extern sMenuItem *pMenuSelect;
  17. extern code sMenuItem MenuRoot_L1[4];
  18. extern code sMenuItem Homepage[4];
  19. extern U8 code ascii[][32];
  20. extern char datastring[13];   ////存放时间的数组
  21. extern sMenuItem *pMenuSelect;//定义了一个结构体数组指针
  22. extern U8 code Hour[];
  23. extern U8 Chao_Flag;
  24. U8  Display_Time_Flag;
  25. U8  Cun_Sec_B;

  26. systemtime realtime;

  27. #define _DEBUG
  28. #ifdef _DEBUG

  29. /*************************************************************
  30. ** 函数名称:void main()
  31. ** 功能描述: 主函数        
  32. ** 输 入:   
  33. ** 输 出:  
  34. **         
  35. ** 全局变量:
  36. ** 调用模块:
  37. **备注:
  38. ** 作 者:    吴鉴鹰
  39. ** 日 期:     14.06.12
  40. **************************************************************/
  41. void main()
  42. {
  43.         Menu_Init();

  44.         Lcd_Clear_Screen(2);
  45.         Lcd_Init_Fun();
  46.         Display_Time_Flag = 0;
  47.         Cun_Sec_B = datastring[11]+1;

  48.         Chao_Flag = 0;

  49.         /*while(1)
  50.         {
  51.                         Get_Time_Function(&realtime);
  52.                         
  53.                         Lcd_12864_Function_SendString(1,0, 0, ascii[datastring[0]]);
  54.                         Lcd_12864_Function_SendString(1,0, 1, ascii[datastring[1]]);
  55.                         Lcd_12864_Function_SendString(1,1, 2, ascii[datastring[2]]);
  56.                         Lcd_12864_Function_SendString(1,1, 3, ascii[datastring[3]]);
  57.                         Lcd_12864_Function_SendString(1,2, 4, ascii[datastring[4]]);
  58.                         Lcd_12864_Function_SendString(1,2, 5, ascii[datastring[5]]);
  59.                         Lcd_12864_Function_SendString(1,3, 6, ascii[datastring[6]]);
  60.                         Lcd_12864_Function_SendString(1,3, 7, ascii[datastring[7]]);

  61.          }*/
  62.         //更新屏幕内容
  63.         Menu_SysFlag.Bits.is_ScreenChanged = 1;        

  64.         while (1)
  65.         {
  66.                 Key_Get_Value();
  67.                 Get_Time_Function(&realtime);
  68.                
  69.                 if(((pMenuSelect->MenuTittle) == Hour)&&(Cun_Sec_B != datastring[11]))
  70.                 {
  71.                     Display_Time_Flag = 1;
  72.                     Cun_Sec_B = datastring[11];
  73.                 }
  74.                 else
  75.                 {
  76.                     Display_Time_Flag = 0;
  77.                 }

  78.                 //处于配置菜单模式
  79.                 if (Menu_SysFlag.Bits.is_InConfig)
  80.                 {
  81.                      Delay_1ms_Function(10);
  82.                
  83.                          Menu_Main();
  84.                 }
  85.                 //设置进入配置模式标志
  86.                 else if ((!Menu_SysFlag.Bits.is_InConfig)&&(Menu_SysFlag.Bits.is_KeyPressed)&&(KeyVal == KEY_ENTER))
  87.                 {
  88.                         Menu_SysFlag.Bits.is_InConfig = 1;
  89.                         KeyVal = 0x00;
  90.                         MenuIndexSaved = 0x00;
  91.                         pMenuSelect = MenuRoot_L1;//把结构体数组的首地址传输给指针
  92.                 }
  93.                 //处于显示模式,根据标志刷新显示内容
  94.                 else if ((!Menu_SysFlag.Bits.is_InConfig)&Menu_SysFlag.Bits.is_ScreenChanged)
  95.                 {
  96.                     //Menu_SysFlag.Bits.is_ScreenChanged = 0;
  97.                     //Lcd_Clear_Screen(2);
  98.                     //etOnOff(0);                //关显示
  99.                         ShowHomepage();
  100.                     Lcd_SetOnOff(1);
  101.                  }
  102.         }
  103.         while (1);               
  104. }
  105. #endif


评分

参与人数 1威望 +2 收起 理由
ningling_21 + 2 很给力!

查看全部评分

shenqihao 发表于 2015-7-2 15:28 | 显示全部楼层
看看,学习下,挺不错的
 楼主| 吴鉴鹰 发表于 2015-7-4 08:48 | 显示全部楼层
shenqihao 发表于 2015-7-2 15:28
看看,学习下,挺不错的

谢谢你的支持,我会持续分享的。
janock 发表于 2015-7-4 09:26 | 显示全部楼层
ywlzh 发表于 2015-7-4 12:38 | 显示全部楼层
吴鉴鹰 发表于 2015-4-7 14:33
第二讲:【愚人节特别奉献】今天被自己愚弄了一把,一个粗心大意引发的BUG,细节决定成败

导读今天吴鉴鹰 ...

没有一个好的编程习惯所导致的结果,为何要让全局变量与局部变量以同一个命名
 楼主| 吴鉴鹰 发表于 2015-7-4 15:22 | 显示全部楼层
ywlzh 发表于 2015-7-4 12:38
没有一个好的编程习惯所导致的结果,为何要让全局变量与局部变量以同一个命名 ...

我们是有一套标准的程序命名方法的,程序命名规则非常巧合的让这两个变量相同了,在实际项目是程序量是十几万行的,这个我只是举一个例子说明而已。
ywlzh 发表于 2015-7-5 11:34 | 显示全部楼层
吴鉴鹰 发表于 2015-7-4 15:22
我们是有一套标准的程序命名方法的,程序命名规则非常巧合的让这两个变量相同了,在实际项目是程序量是十 ...

十几万行?我滴天啊,要是我肯定在算发上去精简程序,谁愿意去写那么多的代码,全是泪!
 楼主| 吴鉴鹰 发表于 2015-7-5 17:23 | 显示全部楼层
ywlzh 发表于 2015-7-5 11:34
十几万行?我滴天啊,要是我肯定在算发上去精简程序,谁愿意去写那么多的代码,全是泪! ...

大型的项目,代码精简也是有限度的,不是无限的精简的。
zhitao2072 发表于 2015-7-6 11:51 | 显示全部楼层
第八讲,有所有的源码吗,急需
 楼主| 吴鉴鹰 发表于 2015-7-19 21:19 | 显示全部楼层
zhitao2072 发表于 2015-7-6 11:51
第八讲,有所有的源码吗,急需

已经齐全的,都下载就可以了。
ljc424 发表于 2015-7-20 10:50 | 显示全部楼层
转让韦博英语四个级别课程
https://bbs.21ic.com/forum.php?mo ... &fromuid=351131
(出处: 21ic电子技术论坛)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部