您好, 登录| 注册|
论坛导航
  1. 鸿运国际网址
  2. 技术
  3. 公开课
  4. 下载
  5. 论坛
  6. 招聘
  7. 子站
  8. 活动
  9. 会议
  10. 商务
  11. askFAE
您好, 登录| 注册|
子站:
商城:
  1. 东方中科
  1. 论坛版区
  2. 论坛鸿运国际网址
  3. 测评
  4. 免费试用
  5. 问答
  6. 特色干货
  7. 活动
  8. 鸿运国际网址福利社
  9. 牛逼帖
论坛鸿运国际网址    单片机MCU/嵌入式
  1.  发帖
  2. 收藏

PIC单片机入门学习
阅读: 7395 |  回复: 72 楼层直达

2016/06/17 15:21:10
1
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长

QQ截图20160321155901 宝箱升级喽!开启探秘地宫之旅! QQ截图20160321155901  【有奖DIY】工程师本色上演 设计征集活动

    这段时间工作中用到了单片机,很长时间没有去琢磨单片机了,准备开一帖,把自己学习单片机的历程写下来.
标签 MCU PIC
鸿运国际网址网-天边在2016-07-06打赏该贴 +9 鸿运国际网址币 打赏理由:c版辛苦~
8位微处理器兼容,双缓冲D/A转换器 面向自动PFC的电容组控制和HMI子系统 具有高效休眠模式的 LMR14003/6 300/600mA 降压稳压器
30V N沟道MOSFET -55至150 智能电子式电表的3.3V低成本非隔离离线转换器 3.5 – 60V 2A 低静态电流降压转换器
4.5V至17V输入,6A同步降压SWIFT™转换器 太阳能电池充电高效同步开关模式充电器控制器 具有 40μA 静态电流的 SIMPLE SWITCHER® 降压稳压器
2016/06/17 15:24:04
2
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    很多的模拟电子工程师在单片机这一块是短板,不知道如何下手.     我也有过这样痛苦的经历,我准备把自己写的PCI单片机的程序贴上来,共享给大家,还是老套路,每天更新一点.     这里需要提及一点,在单片机的学习过程中,我得到了很多人的帮助,其中我最感谢的是鸿哥.如果大家还不了解鸿哥是何须人也,请百度.     我的程序的大框架就是脱胎于鸿哥在网上共享的那种结构,个人觉得挺好,思路很清晰.     
2016/06/17 15:32:25
3
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    PIC单片机点亮LED. 原理图
2016/06/17 15:35:16
4
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    源程序 实测已经调试通过,共享给大家.
2016/06/17 16:43:30
5
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    我个人习惯的程序书写方法. 第一步:头文件; 第二步:字符型,整型,长整型缩写定义; 第三步:需使用的数值或变量缩写定义; 第四步,单片机端口定义; 第五步,全局变量定义;(各功能函数中包括的变量放在一起,并注明) 第六步,初始化函数定义;通常是单片机初始化以及外设初始化; 第七步,功能函数定义; 第八步,中断函数定义; 第九步,延时函数定义; 第十步,主函数模块; 第十一步,功能函数模块; 第十二步,中断函数模块; 第十三步,延时函数模块.     这是我自己总结的单片机程序的十三步套路法,个人觉得还是比较管用的.
2016/06/27 14:34:04
6
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    这几天埋头调试程序,将已经调试通过的程序共享给大家. 1,通过延时函数实现LED亮灭 1_LED.rar 2,通过主循环实现LED亮灭 2_LED_recycle.rar 3,通过主循环实现流水灯 3_water_lamp.rar 4,通过中断实现LED亮灭 4_interrupt_led.rar 5,通过中断实现流水灯 5_interrupt_water_lamp.rar
2016/06/27 14:35:28
7
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    懒的自己搭电路,花了将近两百大洋买了一块慧静的PIC单片机开发板,原理图共享给大家 慧静PIC单片机原理图.pdf
2016/06/28 15:29:58
8
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新,通过中断实现LED闪烁以及蜂鸣器鸣响功能. 6_interrupt_alarm_led.rar
2016/06/29 15:06:48
9
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
   继续更新,通过主循环实现独立按键扫描触发蜂鸣器鸣响 7_recycle_key_trigger_alarm.rar
2016/07/01 15:39:30
10
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新,通过中断扫描实现矩阵键盘检测,触发蜂鸣器鸣响 8_recycle_key_trigger_alarm.rar
2017/09/10 14:12:38
73
redel
鸿运国际网址币:8 | 积分:0 主题帖:12 | 回复帖:17
LV3
排长
版主,这个B口的扫描程序,没有用到RBIE是吗?是直接读取B口的状态吗?
2016/07/31 16:26:32
32
aiohu3
鸿运国际网址币:0 | 积分:3 主题帖:0 | 回复帖:1
LV1
士兵
对于8位单片机,大家不要买开发板,仿真软件里都有的   89s51deng等,电路的搭建在 PROTEUS里就可以完成,测试可以在仿真中作
2016/07/01 15:41:07
11
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    帖子拉正,     目前PIC单片机采用型号为PIC16F877A,个人觉得还是比较强大的一款芯片.我写的程序个人觉得还是比较易于理解的,希望对大家有帮助.
2016/07/02 10:43:00
12
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新,通过中断扫描按键实现数码管触发显示 9_interrupt_key_trigger_tube.rar
2016/07/04 09:08:37
13
fzzz321
鸿运国际网址币:0 | 积分:0 主题帖:0 | 回复帖:3
LV1
士兵
发现你真的是学无止境啊
2016/07/04 14:36:00
14
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.     通过配置PIC的CPP寄存器实现PWM输出,同时通过按键触发实现PWM可调 输出波形1 输出波形2 两路波形对比
2016/07/05 16:44:46
15
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.     搞定看门狗的配置,通过看门狗复位实现LED闪烁 12_watch_dog_led.rar 开发板实物
2016/07/06 16:26:35
16
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.     今天搞定PCI单片机的CCP功能,也就是所谓的捕获功能.     RC2端口输入PWM方波,通过单片机捕获上升沿或者下降沿等在数码管上显示出来 实物 信号波形 源代码 15_capture_tube.rar
2016/07/06 16:26:59
17
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    妈的,调试了差不多大半天,两眼都发黑,需要休息了.
2016/07/06 16:27:45
18
鸿运国际网址网-天边
上一次鸿运国际网址头条
鸿运国际网址币:457 | 积分:402 主题帖:43 | 回复帖:1065
LV9
军长
注意休息呀  c版~~
2016/07/07 08:22:30
19
lihui710884923[实习版主]
鸿运国际网址币:5589 | 积分:12 主题帖:123 | 回复帖:315
LV8
师长
你好这个可以和stc单片机通用吗
2016/07/07 10:36:52
20
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    寄存器配置不同而已
2016/07/07 15:39:40
21
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.     搞定CCP1的比较功能,通过CCP1寄存器的数值与TMR1的累计数值进行比较,当二者相同,则比较中断触发,CPU响应中断请求,实现某一动作.     在该实例中,通过CCP1中断触发实现LED的亮灭. 实物 源代码 16_compare_interrupt_led.rar
2016/07/08 21:12:48
22
12zm
鸿运国际网址币:125 | 积分:0 主题帖:6 | 回复帖:137
LV5
营长
你的51这么快就玩熟悉了,又开始PIC了
2016/07/11 11:01:10
23
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更行.     搞定PIC单片机的ADC采样功能显示     实物 源程序1,直接通过主循环扫描实现adc采样 17_adc_tube.rar 源程序2,通过ADC中断实现ADC采样 18_adc_tube_interrupt.rar
2016/07/12 13:12:21
24
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新,搞定eeprom以及usart串口通信. 程序功能,PC机通过232接口向单片机发送数据,单片机接收到数值后,通过串口软件原值返回给PC机 实物 串口数据接收发送界面 串口软件 串口调试助手.rar 源代码 20_eeprom_usart.rar
2016/07/19 11:17:58
25
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.     通过IIC协议对24c02进行读写操作 实物 源代码 21_iic_24c02.rar
2016/07/23 08:13:57
26
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.     单片机通过串口对24c02进行读写操作,并将接收的数值返回给计算机,同时使用数码管显示对应数值.     实物 串口调试 源程序 22_24c02_usart.rar
2016/07/23 08:15:19
27
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    目前帖子更新速度慢了,主要是工作多了,目前需要调试一些电路产品,所以没有太多的时间更新帖子,望大家谅解,只要抽出时间,我都会取更新帖子.希望对持续关注我帖子的朋友打声招呼,谢谢.
2016/07/27 22:23:40
29
黑夜11
鸿运国际网址币:51 | 积分:0 主题帖:18 | 回复帖:152
LV5
营长
我也是pic学习过来的,用它做过好几款逆变驱动板,用着用着就会感觉处理器很低端(个人觉得,说的时钟60M,但是实际情况非得除以4,头大),后来改用stm32,价格也一样
2016/07/28 06:57:43
30
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    PIC单片机号称是业内最稳定的单片机,目前因为有项目用到他,所以学习了.他有很多的系列.目前接触的是8位的,他也有16位和32位的,不过用的人较少.     目前感觉PIC单片机还可以,不过编译器没有keil人性化,同时对于8位机的支持效果不好.     等PIC搞定了,就开始学习STM32.谢谢你,楼主,谢谢你关注我的帖子.
2016/07/26 09:47:52
28
鸿运国际网址网-fqd
鸿运国际网址币:5053 | 积分:15061 主题帖:291 | 回复帖:4842
LV11
统帅
帖子已被设置为头条,恭喜楼主可添加鸿运国际网址网私人官网微信(dianyuan_com)为好友,领取现金红包(备注信息:头条红包)       注:现金红包仅限当日领取
      活动介绍:http://www.dianyuan.com/bbs/1529195.html      
2016/07/31 09:13:07
31
越凌鸿运国际网址
鸿运国际网址币:49 | 积分:6 主题帖:17 | 回复帖:171
LV6
团长
    好帖!  赞一个!  我两年前买了一个80C52的开发板!到现在都木有摸到进门的路呢!继续加油!跟进中·····
2016/07/31 16:38:31
33
bing198986
鸿运国际网址币:1 | 积分:3 主题帖:3 | 回复帖:4
LV2
班长
能根我说一下你那开发板型号不,PIC33F系列是多少位的去了
2016/08/01 08:58:25
34
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    慧静开发板,PIC的单片机,不过这款开发板硬件本身没有问题,但是他写的例程确很垃圾,个人觉得不是很好.
2016/08/03 15:44:36
35
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    这段时间事情较多,更新帖子较慢,还望大家谅解.     花了两天的时间搞定数字时钟,两眼发黑,头昏脑胀,好累     通过PIC单片机控制DS1302实现数字时钟功能,     可以实现闰年非闰年月份校正功能,     通过按键切换可以实现日期显示和时间显示的切换     通过按键可以实现时间日期的调整     可以实现备用电池电压不足提示报警功能     实物照片 源码: 23_ds1302.rar
2016/08/03 15:48:58
36
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    由于手头上没有纽扣电池,于是通过一个大电容来代替纽扣电池     初始上电,如果备用电池电压不足,蜂鸣器会鸣响,提示备用电池电压不足,这里通过一个大电容代替纽扣电池,可以实现备用电池电压不足报警功能.     大家可以试一试,源码比较长,我没有写成模块化的代码,主要是方便大家直接调取学习.     累并快乐着,数字时钟功能的实现,个人觉得自己的技术又上了一层楼,和大家共享.
2016/08/04 14:58:14
37
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新,今天搞定1602的显示驱动     实物 源代码: 24_lcd_1602.rar
2016/08/04 14:58:54
38
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    接下来准备将数字时钟升级一下,通过液晶屏幕显示数值,代替数码管显示.
2016/08/05 21:33:18
39
黑夜11
鸿运国际网址币:51 | 积分:0 主题帖:18 | 回复帖:152
LV5
营长
给你个1602的菜单显示界面,哈哈 #ifndef _Menu_ #define _Menu_ #include"Function.h"//功能函数 #include <msp430x14x.h> //================================================== //LCD1602多级菜单显示 //BY:JH单片机 //If you want to use the program or the program referenced in the article, //please specify in which data and procedures from JHMCU.com // //Web:www.JHMCU.com 出自傻孩子菜单界面 //================================================== #define keyin (P1IN & 0x0f) #define ADD 0xfb//上页 #define SUB 0xf7//下页 #define SET 0x0e//设置、确定 #define BACK 0x0d//返回 #define Null 0 //菜单目录结构体声明 struct MenuItem MainMenu_zhu[2]; struct MenuItem MainMenu[7]; struct MenuItem Priority_Menu[2]; struct MenuItem Baud_Menu[6]; struct MenuItem Pmax_Menu[1]; struct MenuItem Buzzer_Menu[2]; struct MenuItem About_Menu[2]; unsigned char keysacn(void); void ShowMenu(); void ChangeMenu(unsigned char keynum); void L_R_Move(); void Buzzer_ON(void); void Buzzer_OFF(void); void Exit_o(void); //菜单使用的全局变量 #define LcdMaxLine 2 //定义LCD最多显示菜单数目 struct MenuItem (*MenuPoint) = MainMenu_zhu; //结构体菜单指针指向主菜单 const unsigned char shuzi[10] = {"0123456789"};//固定字符串 //const unsigned char yt[16]={"T:24.3°P: 510W"};//15个字符串 unsigned char yu[16]={" 52400 W "};//可更改字符串 //unsigned char Buz_flag=1; unsigned char DisplayStart=0; //显示菜单的开始位置 unsigned char UserChoose=0; //用户的选择 unsigned char DisplayPoint=0; //显示菜单的编号 unsigned char R_L_cnt=0; //全局变量 unsigned char MaxItems=0; //菜单的数量 unsigned char Up_Down=0; //========================================================================== //目录结构体定义 //========================================================================== struct MenuItem { unsigned char MenuCount; //菜单的数目 unsigned char *DisplayString; //显示的字符串 void (*Subs)(); //菜单指向的功能函数 使用方法:Subs=& 函数名字 ; struct MenuItem *ChildrenMenus; //子节点 struct MenuItem *ParentMenus; //父节点 unsigned char Type_o;//显示类型 }; //========================================================================== // 菜单结构体链表 //========================================================================== //主界面显示 struct MenuItem MainMenu_zhu[2] = { {2," System is ",NullSubs,MainMenu,MainMenu_zhu,0x01}, //->显示主界面 {2," being tested ",NullSubs,MainMenu,MainMenu_zhu,0x01}, //->显示主界面 } ; //========================================================================== // 菜单结构体链表 //========================================================================== //主菜单-第一级菜单 struct MenuItem MainMenu[7] = //结构体主菜单 { {7," S/N_Priority ",NullSubs,Priority_Menu,Null,0x00}, //->逆变优先级设置 {7,"Set Baud Rate ",NullSubs,Baud_Menu,Null,0x00}, //->设置波特率 {7," Set Pmax ",NullSubs,Pmax_Menu,Null,0x00}, //->设置最大功率 {7," Buzzer SW ",NullSubs,Buzzer_Menu,Null,0x00}, //->蜂鸣器开关 {7," Exit ",NullSubs,MainMenu_zhu,Null,0x00}, //->退出(返回主界面) {7," About ",NullSubs,About_Menu,Null,0x00}, //->关于 {7," Power_off ",Power_off,Null,Null,0x00}, //->关机 }; struct MenuItem Priority_Menu[2] = //优先级菜单 { {2,"Electric City ",NullSubs,Null,MainMenu,0x00}, {2," Inverter ",NullSubs,Null,MainMenu,0x00}, }; struct MenuItem Baud_Menu[6] = //波特率菜单 { {6," 2400 ",NullSubs,Null,MainMenu,0x00}, {6," 4800 ",NullSubs,Null,MainMenu,0x00}, {6," 9600 ",NullSubs,Null,MainMenu,0x00}, {6," 19200 ",NullSubs,Null,MainMenu,0x00}, {6," 38400 ",NullSubs,Null,MainMenu,0x00}, {6," 76800 ",NullSubs,Null,MainMenu,0x00}, }; struct MenuItem Pmax_Menu[1] = //最大功率设置 { {1,yu,L_R_Move,Null,MainMenu,0x02}, }; struct MenuItem Buzzer_Menu[2] = //蜂鸣器开关 { {2," Buzzer ON ",Buzzer_ON,Null,MainMenu,0x00}, {2," Buzzer OFF ",Buzzer_OFF,Null,MainMenu,0x00}, }; struct MenuItem About_Menu[2] = //关于 { {2,"Small raccoon ",NullSubs,Null,MainMenu,0x00},//小浣熊 {2," Electronics ",NullSubs,Null,MainMenu,0x00},//电子 }; unsigned char keysacn(void)// { unsigned char temp,k_num; if(keyin != 0x0f) //键值有改变 { IE1 |=WDTIE;//开看门狗中断 _NOP(); //延时消抖 if(keyin != 0x0f) //再次检测按键状态 { temp=keyin; while(keyin != 0x0f); //等待按键被放开 IE1 &=~WDTIE;//关闭看门狗中断 P6OUT|=BIT7;//输出高电平 switch(temp) //转换键值 { case 0x0e://设置、确定 k_num = SET;break; case 0x0d://返回 k_num = BACK;break; case 0x0b://上页 k_num = ADD;break; case 0x07://下页 k_num = SUB;break; default: k_num = Null;break; } } } return k_num;//输出键值 } //================================================== //功能能函数 //INPUT: //OUTPUT: //FUNCTION: //================================================== void Power_off(void)//关机程序 { ;//P2OUT^=BIT0;//灯全灭 } void Buzzer_ON(void) {_EINT();} void Buzzer_OFF(void) {_DINT();} //================================================== //最大功率设置光标移动函数 //INPUT: //OUTPUT: //FUNCTION: //================================================== void L_R_Move() { DispStr(0,1," Maximum power ");//显示最大功率字符 if(++R_L_cnt>4)R_L_cnt=0;//右移5次 // P2OUT^=BIT1;//灯全灭 } //================================================== //LCD1602菜单显示通用函数 //INPUT:结构体链表,UserChoose //OUTPUT:NONE //FUNCTION:LCD1602液晶显示屏上显示菜单功能 //================================================== void ShowMenu() { for(unsigned char i=0;i<LcdMaxLine;i++) //循环显示当前菜单 { if(DisplayPoint < MaxItems){//如果当前显示节点小于菜单数 if(DisplayPoint==UserChoose)//如果用户选中该菜单,则在菜单前打印"->" DispStr(0,i,"->"); else DispStr(0,i," "); DispStr(2,i,MenuPoint[DisplayPoint++].DisplayString); }else //显示最后一页菜单,并只有一项菜单时,清除最后一行 { DispStr(2,LcdMaxLine-1," "); //将上一次显示清屏 } } //菜单定位逻辑 if(UserChoose%LcdMaxLine==0){ DisplayStart = UserChoose; }else{ //逻辑:如果用户选择的菜单是奇数,则将显示定位在偶尔页 for(unsigned char i=0;i<=MaxItems;i++){ if(UserChoose!=(i%LcdMaxLine)) DisplayStart = UserChoose-1; //菜单滚屏 } } } //================================================== //按键显示函数 //INPUT:结构体链表,UserChoose //OUTPUT:NONE //FUNCTION:LCD1602液晶显示屏上显示菜单功能 //================================================== void ChangeMenu(unsigned char keynum) { switch(keynum){ case ADD: if (--UserChoose==255) { UserChoose = 0; //上翻停止赋值为0,回滚赋值为MaxItems-1 } if(++Up_Down>=9)Up_Down=9;//参数设置变量 break; case SUB: if (++UserChoose == MaxItems) { UserChoose = MaxItems-1;//上翻停止赋值为MaxItems-1,回滚赋值为0 } if(--Up_Down<=0)Up_Down=0;//参数设置变量 break; case SET: //如果用户选择的菜单指向的函数不是空函数,则执行功能函数。 if (MenuPoint[UserChoose].Subs != NullSubs) { (*MenuPoint[UserChoose].Subs)(); //执行菜单功能函数 } //如果是空函数,则找子菜单,找不到子菜单,就退出 else if (MenuPoint[UserChoose].ChildrenMenus != Null) { MenuPoint = MenuPoint[UserChoose].ChildrenMenus; UserChoose = 0; DisplayStart = 0; } break; case BACK: if (MenuPoint[UserChoose].ParentMenus != Null) { MenuPoint = MenuPoint[UserChoose].ParentMenus; UserChoose = 0; DisplayStart = 0; } break; default:break; } MaxItems = MenuPoint[UserChoose].MenuCount; //获取当前菜单的条目数 DisplayPoint = DisplayStart; //选中第一项菜单 //========================显==示==分==配================================ switch(MenuPoint[UserChoose].Type_o){ //查找显示类型 case 0x01://指向主界面 //按下设置后关闭所有中断,只有主界面时才稳压 // DisplayPoint = DisplayStart; //选中第一项菜单 for(unsigned char i=0;i<2;i++) DispStr(0,i,MenuPoint[DisplayPoint++].DisplayString); //显示电流,电压,功率,CPU温度 break; case 0x02://指向最大功率设置 yu[4+R_L_cnt]=shuzi[Up_Down];//按键码转字符串 DispStr(0,0,MenuPoint[0].DisplayString); //显示最大功率字符串 LocateXY(4+R_L_cnt,0);//确定光标位置 LcdWriteCommand(0x0f, 1); //打开游标 break; default://出去特殊显示外,显示功能函数 LcdWriteCommand(0x0c, 1); //关闭游标 ShowMenu();//显示主菜单 break; } } #endif
2017/04/13 14:42:31
70
一千个爱你的理由
鸿运国际网址币:2 | 积分:0 主题帖:5 | 回复帖:19
LV3
排长
程序够把人写傻
2016/08/09 14:56:15
40
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.
2016/08/09 14:56:46
41
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    搞定数字时钟,通过液晶显示 实物
2016/08/09 14:58:36
42
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
源码 25_cd1602_ds1302_key.rar 这段代码,折腾了至少3天,遇到的问题各种各样,不过最终还是克服了.共享给大家. 以前搞程序不多,需要边学边用,同时工作上的事情很多,更新速度会比较慢,望谅解.
2016/08/10 15:18:13
43
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新,搞定ds18b20,同时在lcd上显示 实物 源代码 26_lcd1602_ds18b20.rar
2016/08/11 10:10:04
44
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.     今天的代码相对来说比较简单,就是将温度与时间在1602上显示出来.其实就是25,26两端代码的整合. 需要注意的事项是,因为我使用了中断,ds18b20对于时序要求较高,所以当实现温度采集时,需要将中断关闭,采集完成再打开,否则温度采集会出错. 实物 源代码 27_lcd1602_ds1302_ds18b20.rar
2016/08/11 10:13:42
45
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    代码可能比较乱,我没有花太多的时间去整理代码,但是功能已经实现了,而且上电工作了差不多1个小时,没有出现问题.     希望对大家有帮助.     PIC单片机,个人觉得还是很不错的,比较有意思.     据说其稳定性很高,我想在很长一段时间里,我可能会一直使用PIC单片机,其系列很多,有8位的,16位的,32位的.     虽说现在STM32很流行,不过我还是觉得专心致志的玩好一款单片机很重要.
2016/08/12 09:43:51
47
daihui713
鸿运国际网址币:180 | 积分:6 主题帖:17 | 回复帖:191
LV6
团长
支持一下,又有一个玩PIC的同志了。PIC内部资源还算蛮丰富的,想要什么功能,熟悉寄存器然后操作寄存器就可以,如4XPLL倍频、电容传感、门控定时器、可关断PWM、内部EEP、比较器、波形互补、CLC等
2016/08/11 11:53:21
46
zhiliposuili
鸿运国际网址币:0 | 积分:3 主题帖:0 | 回复帖:1
LV1
士兵
haoyangde
2016/08/13 15:20:45
48
新铺居士
鸿运国际网址币:687 | 积分:0 主题帖:21 | 回复帖:90
LV5
营长
这个单片机是只能写一次程序吗。
2016/08/17 08:52:14
49
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    抱歉,回复的较迟,我目前使用的这款PIC单片机是可擦除的,型号是PIC16F877A.
2016/08/17 14:36:35
50
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.     今天搞定ds18b20温度上下限报警程序 实物 源代码 28_temperature_alarm.rar
2016/08/17 14:39:29
51
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    话说PIC的单片机事情就是多,这段代码通过51单片机调试通过,实测也没有问题.移植到PIC单片机上,一大堆问题出来了,不过都已经解决了.     最头疼的是DS18B20的时序问题,这个问题卡了我一天半,心情超级不爽,反复调试ds18b20的延时函数,可谓死去活来.     调的恨不得把电脑砸了,后来实在没有办法,过度昂放弃这一思路,将之前调试通过的18b20的程序修修改改移植过来了,问题总算是搞定了.
2016/08/17 14:42:05
52
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    后面准备用lcd1602实现两级菜单以及多级菜单,网上找了一堆程序,基本上都不能直接使用,还得自己重新想办法梳理思路,好烦.     工程师的生活好枯燥,后悔入错行,可是想想,还是觉得这一行适合我.每日精进是我的追求,痛并快乐着.和大家共勉.
2016/08/19 16:46:42
53
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    搞定lcd12864液晶显示     共享给大家,花了大半天的时间去调试该程序,开发板竟然还有一个小bug.     实物 源代码 29_lcd12864.rar
2016/08/22 14:16:33
54
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    搞定12864制作万年历 实物 源代码 30_lcd12864_ds1302_ds18b20.rar
2016/08/22 14:19:19
55
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    实现的功能,1:通过12864实时显示时间日期温度                     2:通过按键可以实现时间日期的调节 总体感觉12864功能还是比较强大的,目前仅仅将它的一般使用方法掌握了,个人觉得12864还有很多的功能可以深挖.
2016/08/25 12:01:35
56
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    继续更新.     这几天通过51单片机搞定模拟时钟,但是移植到PIC单片机,却不正常,纠结了很长时间. 51单片机实测画面 开机画面
工作画面
源代码 模拟时钟.rar

2016/08/25 12:05:29
57
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    昨天找了差不多大半天的时间,问题找到了.PIC单片机驱动12864时,12864液晶必须将其绘图功能关闭才能正常工作.但是绘图功能关闭了,这个液晶对我有什么意义呢. 不正常画面
2016/08/25 12:06:26
58
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    如果同仁遇到同样的问题,并解决的,希望能指导一下,谢谢.模拟时钟通过PIC单片机实现这个项目,我可能暂时要放一放了.
2016/08/26 17:20:33
59
zhaowenming
鸿运国际网址币:23 | 积分:0 主题帖:42 | 回复帖:256
LV6
团长
我也是做鸿运国际网址的,也学了一段时间单片机,只是一直没实际做产品。等待你的分享。
2016/08/29 11:14:20
60
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    搞定呼吸灯,这个程序其实很简单     采用两种方式实现呼吸灯效果,第一种方式通过主函数内延时实现,第二种方式通过中断延时实现. 源代码 32_breath_lamp_1.rar 33_breath_lamp_2.rar
2017/06/03 21:25:31
71
liuqiwei85
鸿运国际网址币:567 | 积分:0 主题帖:41 | 回复帖:196
LV6
团长
也一样,工作中用不上,学一段时间放一段时间,扳手指数一数好多年了
2016/08/29 11:28:45
61
bv3xxx
鸿运国际网址币:0 | 积分:0 主题帖:0 | 回复帖:25
LV2
班长
很棒的思维,支持你  
2016/08/31 11:02:02
62
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    这几天一直想把PIC单片机的开发板的4M晶振换成更高频率的晶振.     查了一下技术手册,PIC16F877A最大支持频率为20M.手头上正好有11.0592M以及12M晶振,直接将4M晶振替换为11.0592M晶振,但是单片机不能正常工作.     纠结了好几天,因为示波器一直不在身边,今天把示波器带过来,实际测试了一下晶振波形,发现只要示波器探头一点到晶振上,开发板立马正常工作了.     我以为是晶振的起振电容不对,换了好几个电容,均不行.只好查找技术手册,发现PIC单片机外接不同的晶振,需要配置单片机的寄存器,以适应不同的晶振频率.     其实也就是在配置字中配置一下晶振模式就行了,不过由于我不熟悉PIC单片机,所以纠结了两天,现在共享给大家
2016/08/31 11:08:20
63
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    至此,PIC单片机常规的寄存器配置,个人觉得已经差不多了.这一帖,我也准备结束了.     我个人的定位是鸿运国际网址工程师,目前常规的模拟鸿运国际网址,基本上没有什么问题,现阶段主要想拿下数字鸿运国际网址这一块.     学习数字鸿运国际网址必须跨过的一道坎就是单片机编程,目前PIC单片机常规的使用方法以及寄存器配置,个人觉得没有什么问题.     数字鸿运国际网址接下来需要搞定的是算法类的程序问题,开始着手程序算法类的编程学习.     单片机常规的应用代码,我理解几乎没有问题,但是只要接触到大段的计算类的代码,我就不知道从何下手,这是我的薄弱环节,接下来程序类的算法是我需要突破的重头戏.     努力奋斗,每日精进是我的追求,和志同道合的朋友共勉.
2016/09/05 16:16:49
64
cjhk[版主]
鸿运国际网址币:624 | 积分:83 主题帖:30 | 回复帖:131
LV9
军长
    今天再共享两个有用的例程. 按键单击双击功能 key_single_double_click.rar 按键组合功能 key_combined_trigger.rar
这两个功能比较实用,脱胎于鸿哥的51按键功能,希望对大家有帮助.
2017/02/09 15:26:45
68
工部侍郎
鸿运国际网址币:0 | 积分:0 主题帖:4 | 回复帖:10
LV2
班长
mark 跟LZ一起学习
2016/09/16 14:44:59
65
樱桃1号
鸿运国际网址币:0 | 积分:3 主题帖:0 | 回复帖:9
LV1
士兵
学习中...
2016/10/24 16:51:02
66
一千个爱你的理由
鸿运国际网址币:2 | 积分:0 主题帖:5 | 回复帖:19
LV3
排长
单片机学习还是一个很复杂的过程,如果有一款芯片直接用中文描述和定义功能,然后达到和单片机编程的效果那就不错了。
2017/02/04 07:42:05
67
mulunliang
鸿运国际网址币:61 | 积分:0 主题帖:4 | 回复帖:8
LV5
营长
http://www.dianyuan.com/bbs/1531322.html,欢迎楼主一起改造数字鸿运国际网址
2017/03/23 13:16:25
69
ruohan
鸿运国际网址币:3 | 积分:9 主题帖:44 | 回复帖:1031
LV9
军长
开发版有没有对应的书啊, 现在也在学这个,想找个简单的入门的书籍和开发版一起试试  
2017/07/13 08:43:49
72
王秋冬
鸿运国际网址币:24 | 积分:0 主题帖:4 | 回复帖:230
LV5
营长
有的,郭天祥有开发的51学习,你百度一下。
关注我们
新浪微博
官方Q群
客服热线
服务时间:周一至周五9:00-18:00
微信关注
免费技术研讨会
获取一手干货分享
  1. 鸿运国际网址网版权2002-2017 津ICP备11006234号 增值电信业务经营许可证:津B2-20120058
  2. 网博互动旗下网站: 鸿运国际网址网| 电子信息网| 亿硕商城
  3. 营业执照
鸿运国际网址