1.安装MPLAB X IDE与XC8 C语言编译器

• 安装 MPLAB X IDE,到此链接免费下载 http://www.microchip.com/mplabx

使用教程下载:http://www.microchip.com/mplabx

• 安装 MPLAB XC8 C 编译器,到此链接免费下载 http://www.microchip.com/xc

MPLAB XC8 C:用于MPLAB X IDE 编程8位单片C语言编译器。
使用教程下载:http://www.microchip.com/xc
安装完毕IDE会得到以下两个快捷方式:

IPE为烧录芯片用的工具,IDE为编写程序用的工具;XC8安装后的快捷方式,需要配置后与IDE一起用。
更多使用资料查看:https://microchipdeveloper.com

2.配置IDE使用XC8 C语言编译器

双击IDE快捷方式,打开菜单:Tools>Options>Embedded>Build Tools.
然后按下图添加与配置IDE使用XC8 编译器:
此时开发环境已搭建完毕!

3.新建一个工程

3.1、新建工程的3种方法:

3.2、选择“Standalone Pronject”,点击Next:

3.3、选择单片机类型和型号,点击Next:

3.4、默认选项,直接点击Next

3.5、选择编程器,根据个人需求选择,也可以任意选择一个,后续再根据需求修改,这里选择“PICkit3”,点击Next:

3.6、选择编译器,这里选择上面安装的XC8编译器,点击Next:

3.7、填写工程名字和选择工程保存路径,点击Finish即可新建完一个工程

4、PIC12F508功能位在IDE的配置

PIC12F508的时钟选择、看门狗、程序保护,GP3引脚的使用,是在IDE的菜单:Window -> Target Memory Views -> Configration Bits 里面配置好,然后在点击“generate source code to Output”,如下图:

将输出的代码拷贝到源文件中,即可配置完。

接着即可根据以下文档编写程序。
PIC12F508规格书、编程手册等:https://www.microchip.com/wwwproducts/en/PIC12F508

对IO口的操作,可以参考XC8安装目录下的include文件夹,如下图:

贴一个我写的代码:

/** File:   main.c* Author: Administrator** Created on April 20, 2020, 11:30 AM*/#include <xc.h>//适用于所有PIC 8位单片机,包含了所有PIC 8位单片机的头文件
#include <stdint.h>// CONFIG
#pragma config OSC = IntRC// Oscillator Selection bits (internal RC oscillator)
#pragma config WDT = OFF// Watchdog Timer Enable bit (WDT disabled)
#pragma config CP = ON// Code Protection bit (Code protection on)
#pragma config MCLRE = OFF// GP3/MCLR Pin Function Select bit (GP3/MCLR pin function is digital input, MCLR internally tied to VDD)int tc = 0;
uint8_t dice_start = 1;
uint8_t dice_data[6]={1,2,3,4,5,6};
uint8_t flag = 0;
uint8_t start_time = 0;
//uint8_t stop_time = 0;
///
void pic12f508_init(void){OPTION = 0xd7;     //time0 select internal clock,Fosc/4, prescale=1:256TRISGPIO = 0x08;   //G0,G1,G2,G4,G5 as output mode,G3 as input modeGPIO = 0x00;       //turn off all ledTMR0 = 0x3f;       //initialization timer,timing 0.05second
}
///
void check_time(void){if(TMR0 == 0xff){TMR0 = 0x3f;       //initialization timerif(++tc == 3600){   //timing 180secondtc = 0;}}
}
///
void led_display(char dat){switch(dat){case 0:GP0=0;GP1=0;GP2=0;GP4=0;break;case 1:GP0=0;GP1=1;GP2=0;GP4=0;break;case 2:GP0=0;GP1=0;GP2=0;GP4=1;break;case 3:GP0=0;GP1=1;GP2=1;GP4=0;break;case 4:GP0=0;GP1=0;GP2=1;GP4=1;break;case 5:GP0=0;GP1=1;GP2=1;GP4=1;break;case 6:GP0=1;GP1=0;GP2=1;GP4=1;break;default:break;}
}
///
void delay(int t){uint8_t a=0,b=0;while(t>1){for(a=0;a<200;a++){while(b<200){b++;}}    t--;}
}
///
void main(void) {pic12f508_init();while(1){check_time();if(GP3 == 1 && dice_start == 1){dice_data[5] = dice_data[4];dice_data[4] = dice_data[3];dice_data[3] = dice_data[2];dice_data[2] = dice_data[1];dice_data[1] = dice_data[0];do{dice_data[0] = (TMR0 - 0x3f)%7;}while(dice_data[0] == 0);led_display(dice_data[2]);dice_start = 0;start_time = tc;flag = 1;}if(GP3 == 0 && dice_start == 0){dice_start = 1;start_time = tc;flag = 1;}char time = 0;time = tc - start_time;if(15 < time && time < 25 && flag == 1){uint8_t i;for(i=6;i>0;i--){led_display(dice_data[i-1]);delay(80);}//led_display(dice_data[0]);flag = 2;}time = tc - start_time;if(time > 60 && flag == 2){uint8_t c;for(c=0;c<5;c++){led_display(0);delay(30);led_display(dice_data[0]); // display the resultdelay(30);}flag = 3;}time = tc - start_time;if(time >= 240 && flag == 3){led_display(0);flag = 0;}}
}

5.搭建IC烧录电路

工程生成的HEX文件,一般在工程目录下的dist -> default -> production目录下,如下图:

烧录电路:


PICkit 3 的使用教程可以到PIC官网下载,方法如下:
https://www.microchip.com/sitesearch/search/All/12f508?&mns=PICkit%203%20User%E2%80%99s%20Guide&mnc=All


注意:在使用PICkit 3烧录固件时,IC必须外接电源,不能只由PICkit 3烧录器供电,否则烧录会失败。

烧录:
PICkit 3连接电脑USB口,可以通过IDE点击进行烧录,也可以使用IPE
进行烧录,请自行查看教程。

结束!

PIC12F508 单片机使用教程相关推荐

  1. 51单片机入门教程(6)——外部中断

    51单片机入门教程(6)--外部中断 一.外部中断 1.1 中断 1.2 外部中断 二.中断优先级 一.外部中断 1.1 中断 关于中断的概念在上一篇博客中已经提到了.(传送门:51单片机入门教程(5 ...

  2. 51单片机入门教程(5)——定时器中断

    51单片机入门教程(5)--定时器中断 一.中断的概念 二.定时器中断 2.1 软件延时的不足 2.2 中断寄存器 2.2.1 中断允许控制寄存器 IE 2.2.2 定时器工作方式寄存器 TMOD 2 ...

  3. 51单片机入门教程(1)——点亮一个LED灯

    51单片机入门教程(1)--点亮一个LED灯 一.什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器 ...

  4. ESP8266wifi模块与51单片机通信教程

    ** ESP8266wifi模块与51单片机通信教程 准备两个200欧左右的电阻 准备6根杜邦线 然后将ES8266通过如图这种方式连接起来 注意:必须先配置ESP8266模块,配置需要用到ESP82 ...

  5. 《STM32单片机开发应用教程(HAL库版)—基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第四章4.9 TIM---输入捕获(脉冲频率测量)实验

    写在前面-- <STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>第四章4.9 TIM-输入捕获(脉冲频率测量)实验,讲解TIM输入捕获的原 ...

  6. STM32单片机开发应用教程 (HAL库版) ---基于国信长天嵌入式竞赛实训平台(CT117E-M4)教程汇总 与第一章 硬件平台简介

    写在前面-- 作为<STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>教程汇总,第一章将介绍国信长天嵌入式竞赛实训平台(CT117E-M4) ...

  7. 《STM32单片机开发应用教程(HAL库版)---基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第二章 软件安装与使用

    写在前面-- 作为<STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>系列之第二章,本章节将介绍开发软件STM32CubeMX和KEIL5的 ...

  8. Microchip PIC系列8位单片机入门教程(一)开发环境建立

    Microchip PIC系列8位单片机入门教程(一)开发环境建立 作者:Greg 第一节 开发环境建立条件 软件: (1)MPLAB X:集成开发环境下载地址:https://www.microch ...

  9. 33、基于CACX和R7F0C004M的瑞萨单片机入门教程

    代码资源下载:https://download.csdn.net/download/BaoTTing/58444918 一.开发环境介绍 CS+ for CACX: 瑞萨单片机开发环境,已经停止更新, ...

  10. 使用st-link+keil下载和调试华大单片机的教程

    使用st-link+keil下载和调试华大单片机的教程 首先说明一下,手里只有M0和M4内核的芯片,也就只测试了这两种,但是理论上讲这个方法是通用的 一.下载支持包 从华大官网找到你芯片资料页,下载D ...

最新文章

  1. PyTorch开源物体检测工具包
  2. python processpoolexector 释放内存_一起看看python 中日志异步发送到远程服务器
  3. 【Python-ML】电影评论数据集文本挖掘
  4. 定义一个计算字符串有效长度的_一个正方形的小抽屉柜,根据设计草图计算出所需四片木板的长度...
  5. win7下ffmpeg编译动态链接库整理
  6. 【Java】一文搞懂 Java 中的枚举,写得非常好!
  7. c语言中指,C语言程序设计中指教学要点分析.doc
  8. Atitit db access req数据库访问规范jdo jdbc jpa pdo sql 目录 1. 常见特性 1 1.1. 元数据 API 1 1.2. 分布式事务 vs事务中使用 Sav
  9. 什么是Adobe Creative Cloud,值得吗?
  10. python解决鸡兔同笼_python解决鸡兔同笼问题
  11. photoshop柔光模式原理和案例教程
  12. 电脑技巧:Win10操作系统关闭这几个功能,可以大幅度提升电脑的运行速度
  13. JS验证用户真实姓名
  14. Python 入门之控制结构 - 顺序与选择结构
  15. FreeMarker导出excel打不开,特殊字符问题
  16. Fadeln()方法
  17. 产业分析:抖音三农行业分析
  18. 销售宝:软件销售技巧,月入10万销冠的经验
  19. linux-clamav
  20. new Data()、set Data()、get Data()方法、时间戳转换

热门文章

  1. (5)Spring框架----Bean作用域
  2. 阿里云SLB负载均衡ESS弹性伸缩
  3. dlib疲劳检测_用Dlib和OpenCV还能做什么?这个开源项目实现了驾驶员疲劳检测
  4. 龙哥手把手教你学LabVIEW视觉-深度学习简明教程【halcon篇】
  5. 简约个性个人简历自我介绍PPT模板
  6. 记一次基于公众号的微信H5开发项目(一)
  7. 大学四年总结与感悟及给刚上大学的同学的一些建议
  8. 【竖排日语OCR识别】如何识别图片上竖排的日语 ?如何识别图片上横排的日语?如何将竖排日语转横排日语,下面说清楚方法
  9. NMF(非负矩阵分解)
  10. 【广东大学生网络攻防大赛-WriteUp(非官方)】Web | in