ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:436.96KB ,
资源ID:15142929      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15142929.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PIC16F1938单片机编程样例Word格式文档下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PIC16F1938单片机编程样例Word格式文档下载.docx

1、CP a&nU匸-T LG耳111匚匚肥戈EM ve 甸+殳 uu r/vi1.4 *-hi. iH 仝心 lj!i =wn3sari: lkol tivuf0;iiYUIT町T rCF 丈L DlK bi4IT4ri*%JKI FJBII 皿 口1 陆1庐StRIPSiJP liiULLWRB?rfWTlilN2 XF iKLPaTOUCCB=:B+l/UF MiF 1 DJCXCN脅阳il tfliFS IGXO.IasicCLtncrcij-jGa-4 |RIT1 C IFDHiN E IDfllKHIf rnw SUM匸 Vii inc1、一些定义typedef void typede

2、f bitVOID;BIT;typedef un sig ned char UINT8; typedef int INT16;typedef un sig ned int UINT16; typedef long INT32;typedef un sig ned long UINT32;VOID delay( VOID )int i = 100;while( i-);2、EEPRO读写/*功 能:从EEPRO中读取一个字节的数据原 型: UINT8 EEPROM_read( UINT8 addr )参数说明:输入参数:addr输入地址输出参数:无返 回:读取的字节注 意:*/UINT8 EEP

3、ROM_read( UINT8 addr )UINT8 EE_data;EEADRL = addr;EEPGD = 0;CFGS = 0;GIE = 0; / 禁止所有中断RD = 1;asm( n op);EE_data = EEDATL;RD = 0;GIE = 1; / 恢复所有中断return EE_data;,* 功 能:向EEPRO中写入一个字节的数据原 型:VOID EEPROM_write( UINT8 addr, UINT8 ee_data ) 参数说明:addr输入地址,ee_data需要写入的数据 输出参数:*VOID EEPROM_write( UINT8 addr,

4、UINT8 ee_data )EEDATL = ee_data;EEPGD =0;CFGS = 0J/禁止所有中断WREN = 1; /运行执行编程/擦除操作EECON2:=0x55;必须按这样的时序=0xAA;WR = 1;while( WR=1 );等待写操作完成WREN = C禁止执行编程/擦除操作3、ADC模块/* ADC模块的初始化*/static VOID ADC_init( VOID )ADCON0 = 0b00110001; / 选择 AN12 通道、ADC使能位ADCON1 = 0b11100000; /AD 转换结果右对齐, 64分频作为转换时钟,选择 VSSVDD乍为参考

5、电压ADIF = 0; / 清楚AD转换标志static UINT16 throttle = 0;static VOID AD_Fu nctio n( VOID )UINT8 i;UINT16 AD_result;UINT16 AD_max = 0;UINT16 AD_min = 2000;throttle = 0;for( i=0; iAD_NUM; i+ ) ADRESH = 0;ADRESL = 0;delay();ADCON0 |= 0x02;while( 0 = ADIF ); / ADIF = 0;等待转换完成AD_result = ADRESH;AD_result = AD_re

6、sult AD_result ? AD_max : AD_result;AD_min = AD_min = 10 )timeco unt = 0; time10msflg = 1; timelmsflg = 1;/根据实际情况添加自己的代码5、IO初始化/* io 初始化*/static VOID IO_i nit(VOID) 所有IO为数字IO所有IO为output初始化所有IO输出电平为低电平/* PORT A */ANSELA = 0x00;TRISA = 0x00;PORTA = 0x00;/* PORT B */ANSELB = 0x03; RB0 和RB1都绑定为同一模拟 AD输入

7、6、PWM模块/* PWM模块的初始化*/static VOID PWMCCPnit(VOID)CCP1CON = 0b00001100; / 单输出,PWM模式CCPTMRS0 &= 0b11111100; /CCP1 选择 Timer2 作为定时器PR2 = 249;/PWM周期计算:(PR2 + 1)*0.0625*4(16Mhz 晶振四分频,即指令周期广预分频值,当 PR2为249时,PWM频率为16KT2CON = 0x00;预分频为1:1 ;TMR2ON = 1;使能定时器Timer2TRISC2 = 0;打开CCP1引脚输出驱动器CCP1CON &= 0b11001111; /*

8、PWM占空比设置VOID PWM_WidthSet( UINT8 width )width占空比的百分比分子,设置值从 0至100,例如width = 50 时,设置的占空比为50%static VOID PWM_WidthSet( UINT8 width )UINT16 PWM_width;UINT16 tmp;PWM_width = width * 10;if( 100 = width )/经过Protues仿真,100时至少比1000大于4才可以达到完全的PWM_width += 4;/* 高八位赋值*/CCPR1L = PWM_width 2 ;/*低两位赋值*/tmp = PWM_w

9、idth & 0x0003;tmp = tmp 4;CCP1CON |= tmp;7、串口通讯模块void uart_ in it(void)UINT8 ii;for(ii=0;ii_SUB_NUM_;ii+)get_uart_subii=0xff;RCSTA = 0xb0;/add by lihf for testTXSTA = 0x20;/TXSTA = 0x20;BAUDCONbits.BRG16=0;SPBRGH = 0; /8位定时器 Baud Rate GeneratorSPBRG = _FOSC_/64/_BAUD_-1; /23;TXIE = 0; / 发送不需要中断处理RCIE = 1;PEIE = 1;/ 没有开全局中断/发送数据static VOID UART_se nt( UINT8 byte )while( 0 = TXIF )/con ti nue;TXREG = byte;while( 0 = TRMT )/接收在中断里面调用 uart_handler() 函数#defi ne _SUB_NUM_ 50UINT

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1