IO口模块程序示例.doc

IO口模块程序示例.doc

ID:51333471

大小:41.00 KB

页数:13页

时间:2020-03-21

IO口模块程序示例.doc_第1页
IO口模块程序示例.doc_第2页
IO口模块程序示例.doc_第3页
IO口模块程序示例.doc_第4页
IO口模块程序示例.doc_第5页
资源描述:

《IO口模块程序示例.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、IO口模块程序示例VoidPORTB_Init(void){DDRB=0xff;//PB口作输出使用,1为输出,0为输入PORTB=0x00;//PB口数据寄存器值}注意:IO口要注意以下几点:(1)每个IO口的数据寄存器名可能不同(2)AN口只能作输入用(3)PH,PJ(高两位,低两位),PP可用输入中断功能使用(4)IO口作输入与输出时有不同的寄存器对应(5)IO口作复用时不能作IO口用,相反也不行IO口可用作:调试接口(接数码管、液晶、拨码开关等等)所以必须掌握使用拨码开关要注意这样用;DDRB=0XFF;//输出                             

2、                                   PORTB=0XFF;DDRB=0X00;//输入AD模块程序示例VoidATD_Init(void){ATD0CTL1=0x00;//8位精度,不放电ATD0CTL2=0x42;//快速清除标志位,禁止外部触发,使能中断ATD0CTL3=0x8a;//右对齐,每序列4次转换,不用FIFO,进入FreezeMode完成当前转换ATD0CTL4=0x03;//采样用4个ATD周期,F(ATD)=1MHz[busclock为8MHz]ATD0CTL5=0x29;//SCAN模式,单通道,通道9ATD0DIEN=0

3、x00;//禁止数据输入}Voidmain(void){ATD_Init();………………………………………}#pragmaCODE_SEGNON_BANKEDvoidinterrupt22Int_AD0(void){DisableInterrupts;AD_wData=ATD0DR0L;//读ATD转换的寄存器值(低八位)ATD0STAT0_SCF=0;//(当AFFC为1时,写0清零;为1时写1清零)EnableInterrupts;}注意:ATD模块要着重注意:(1)标志位清零(比较复杂)(2)多通道转换后的储存顺序(3)精度的选择和转换速度(4)单个通道与多通道转换的区

4、别定时器模块程序示例VoidTimer_Init(void){TSCR1=0X90;//使能定时器并设置为自动清除标志TFLG1TSCR2=0X03;//设置分频系数为8,及23TIE=0X01;//定时器通道0中断使能TIOS_IOS0=1;//PT0口为输出比较TC0=TCNT+1677;//设定初值//定的时间就是从0加到1677要的时间EnableInterrupts;Voidmain(void){Timer_Init();…………………..}#pragmaCODE_SEGNON_BANKEDvoidinterrupt8Timer(void){DisableInterr

5、upts;TC0=TCNT+1677;//设定比较器下次中断时间TSCR1=0x00;//关定时器(一般情况定没必要用这个)EnableInterrupts;}注意:定时器模块要关重注意以下几点:(1)初值的设定,每次中断都要置初值(2)标志位的清零方式(3)PT口作为输入捕捉时的设置区别脉冲累加模块示例VoidPT7_Init(void){PACTL=0X40;//脉冲累加系统使能,下降没触发,使用预分频因子定义的时钟PACNT=0X0000;//设定脉冲累加计数寄存器初值}注意:脉冲累加模块注意以下几点:(1)PACTL中的各位配合使用表,可以在自备次料上查PWM脉宽调制模

6、块示例VoidPWM_Init(void){PWME=0X02;//使能PWM1口,及PP1口PWMCTL=0X10;//级连PP0和PP1PWMPRCLK=0X07;//预分频A系数为128PWMCLK_PCLK1=0;//级连通道01选择时钟APWMPOL=0X02;//级连通道01极性们为先高电平输出PWMCAE=0X00;//级连通道01为左边对齐输出PWMDTY01=1000;//占空比寄存器值PWMPER01=1500;//周期寄存器值}注意:PWM模块要注意以下几点:(1)PWM级联时寄存器名称区别(2)预分频与分频的联合应用串行口SCI程序示例VoidSCI_I

7、nit(void){SCI0BDL=(byte)(8000000/9600/16);//设置总线为8M时SCI波特率为9600HzSCI0CR1=0x00;//数据格式为8位(没有奇偶校验位)SCI0CR2=0x2c;//接收中断使能,发送使能,接收器使能}Voidmain(void){SCI_Init();………………………}#pragmaCODE_SEGNON_BANKEDinterrupt20voidSCI_RX_IRS(void){byteRxData,RX;DisableInter

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。