PIC单片机编程样例.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PIC单片机编程样例

PIC单片机编程样例MCU:PIC16F1938;开发语言:C语言开发工具:编译环境:MPLAB IED;C 编译器:HI-TECH PICC C compiler编辑软件:source insight烧录工具:MPLAB ICD2仿真软件:Protues说明:程序已经通过编译并在仿真软件和硬件平台上成功跑起来;目的:对用到PIC16F系列单片机开发软件的群众提供样例支持,希望有帮助。Protues仿真图:1、一些定义typedef void VOID;typedef bit BIT;typedef unsigned char UINT8;typedef int INT16;typedef unsigned int UINT16;typedef long INT32;typedef unsigned long UINT32;VOID delay( VOID ){int i = 100;while( i-- );}2、EEPROM读写/******************************************************************************功能:从EEPROM中读取一个字节的数据原型:UINT8 EEPROM_read( UINT8 addr )参数说明:输入参数:addr 输入地址输出参数:无返回:读取的字节注意: ******************************************************************************/UINT8 EEPROM_read( UINT8 addr ){UINT8 EE_data;EEADRL = addr;EEPGD = 0;CFGS = 0;GIE = 0; //禁止所有中断RD = 1;asm(nop);EE_data = EEDATL;RD = 0;GIE = 1; //恢复所有中断return EE_data;}/******************************************************************************功能:向EEPROM中写入一个字节的数据原型:VOID EEPROM_write( UINT8 addr, UINT8 ee_data )参数说明:输入参数:addr 输入地址,ee_data 需要写入的数据输出参数:无返回:无注意: ******************************************************************************/VOID EEPROM_write( UINT8 addr, UINT8 ee_data ){EEADRL = addr;EEDATL = ee_data;EEPGD = 0;CFGS = 0;GIE = 0; //禁止所有中断WREN = 1; //运行执行编程/擦除操作EECON2 = 0x55; //必须按这样的时序EECON2 = 0xAA;WR = 1;while( WR==1 ); //等待写操作完成GIE = 1;WREN = 0; //禁止执行编程/擦除操作}3、ADC模块/** ADC模块的初始化 */static VOID ADC_init( VOID ){ADCON0 = 0 //选择AN12通道、ADC使能位ADCON1 = 0 //AD转换结果右对齐,64分频作为转换时钟,选择VSS,VDD作为参考电压ADIF = 0; //清楚AD转换标志}static UINT16 throttle = 0;static VOID AD_Function( VOID ){UINT8 i;UINT16 AD_result;UINT16 AD_max = 0;UINT16 AD_min = 2000;throttle = 0;for( i=0; iAD_NUM; i++ ){ADIF = 0;ADRESH = 0;ADRESL = 0;delay();ADCON0 |= 0x02;while( 0 == ADIF ); //等待转换完成ADIF = 0;AD_result = ADRESH;AD_result = AD_result 8;AD_result = AD_result | ADRESL;throttle += AD_result;AD_max = AD_max AD_result ? AD_max : A

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档