《PIC单片机编程示例》由会员上传分享,可免费在线阅读。 更多相关内容在学术论文——天天图书馆。
1、PIC单片机编程示例MCU:PIC16F1938; 开发语言:C语言 开发工具: 编译环境:MPLABIED; C 编译器:HI-TECHPICCCcompiler 编辑软件:sourceinsight 烧录工具:MPLABICD2 仿真软件:Protues 说明:程序已编译完成,并已在仿真软硬件平台上成功运行; 目的:为使用PIC16F系列单片机开发软件的人们提供示例支持。 我希望这会有所帮助。 Protues仿真图: 1. typedefvoidVOID的一些定义; 类型defbitBIT; 类型defunsignedcharUINT8; 类型defintINT16; 打字的
2.efunsignedintUINT16; 类型deflongINT32; 类型defunsignedlongUINT32; VOIDdelay(VOID){inti=100;while(i–);} 2. EEPROM读写/**************************** ****************************************************** ***功能:从 EEPROM 中读取一个字节的数据 原型:UINT8EEPROM_read(UINT8addr) 参数说明: 输入参数:addr 输入地址 输出参数:无 返回值:读取字节 注:* *****
3.******************************************************** **********************/UINT8EEPROM_read(UINT8addr){UINT8EE_data;EEADRL=addr;EEPGD=0;CFGS=0;GIE=0;//禁用全部中断 RD=1;asm("nop");EE_data=EEDATL;RD=0;GIE=1;//恢复所有中断 returnEE_data;}/**************** * **********************************************
4. ****************** 功能:向 EEPROM 写入一字节数据 原型:VOIDEEPROM_write(UINT8addr,UINT8ee_data) 参数说明: 输入参数:addr 输入地址,ee_data 需要待写入数据 输出参数:无 返回:无 注:************************************ *** **************************************************/VOIDEEPROM_write(UINT8addr, UINT8ee_data ){EEADRL=addr;EEDATL=ee_data;EEPGD
5. =0;CFGS=0;GIE=0;//禁止所有中断 WREN=1;//运行并执行编程/擦除操作 EECON2=0x55;//必须遵循此时序 EECON2=0xAA;WR=1; while(WR==1);//等待写操作完成 GIE=1;WREN=0;//禁止编程/擦除操作} 3. ADC模块/**ADC模块初始化*/staticVOIDADC_init(VOID) { ADCON0=0b00110001;//选择AN12通道,ADC使能位 ADCON1=0b11100000;//AD转换结果右对齐,64分频作为转换时钟,选择VSS、VDD作为参考电压 ADIF=0;//清除
6、AD转换标志}staticUINT16throttle=0;staticVOIDAD_Function(VOID){UINT8i;UINT16AD_result;UINT16AD_max=0;UINT16AD_min=2000;throttle=0;for(i=0;i
7. =0x02;while(0==ADIF);//等待转换完成 ADIF=0;AD_result=ADRESH;AD_result=AD_resultAD_result?AD_max:AD_result;AD_min=AD_min
10.;//定时器0的中断间隔为1msTMR0IE=1;//定时器0开启并中断//中断总数