您好,欢迎来到爱站旅游。
搜索
您的当前位置:首页哈工大单片机与PLC技术实验程序附录

哈工大单片机与PLC技术实验程序附录

来源:爱站旅游
附录1

#include // 16位特殊寄存器定义

sfr16 TMR3RL = 0x92; sfr16 TMR3 = 0x94; // 常量定义 #define

SYSCLK

//调用模块: 无 voidPORT_Init (void) {

XBR2 = 0x40; }

//函数名称: Timer3_Init ()

2000000 // 函数功能 : 定时器3初始化

/*使能交叉开关*/

P74OUT |= 0x000; /*推挽输出*/

附录2 #include

// SFR declarations #include // Function PROTOTYPES voidPORT_Init (void); 函数名称: voidsleep_ms(WORD count)

{

/*步进电机正转*/

/*A相通电*/

SendData=0x0e;

P5=SendData; sleep_ms(250); SendData=0x0c; /*AB相通电*/

//系统工作频率- //全局变量定义 unsigned char i=0xfe; // 函数定义 voidPORT_Init (void); void Timer3_Init (int counts); void Timer3_ISR (void); // 主程序 void main (void) {

WDTCN = 0xde;

WDTCN = 0xad; //禁止看门狗定时器 PORT_Init (); Timer3_Init(SYSCLK * 1024 ); REF0CN=0x02; EA = 1;

while (1) {

} }

//函数名称: PORT_Init ()

//函数功能: 通用I/O口及交叉开关初始化

//入口参数: 无 //出口参数: 无 //全局变量引用: 无

//入口参数: int counts //出口参数: 无 //全局变量引用: 无 //调用模块: 无 void Timer3_Init (int counts) {

TMR3CN = 0x00; TMR3RL = -counts; TMR3 = 0xffff; EIE2 |= 0x01; TMR3CN |= 0x04; }

//函数名称: Timer3_ISR () // 函数功能 : 定时器 3中断服务程序 //入口参数: 无 //出口参数: 无 //全局变量引用: 无 //调用模块: 无

void Timer3_ISR (void) interrupt 14 {

TMR3CN &= ~(0x80);

/*清中断标志*/ P4=P5; }

功能描述: 延时

输入:

WORD count(所要延时的长

度) 输出:

无 全局变量: 无 调用模块: _nop_()

voidsleep_ms(unsigned char count) {

unsigned char ii,jj; for(ii=0;iifor(jj=0;jj<40;jj++) _nop_();

}

}

// MAIN Routine void main (void) { unsigned char k; unsigned char SendData; /*无效看门狗*/ WDTCN = 0xde; WDTCN = 0xad; PORT_Init ();

SendData=0xff; /*4相线圈都截止*/

while(1)

P5=SendData; sleep_ms(250); SendData=0x0d;

/*B相通电*/ P5=SendData; sleep_ms(250); SendData=0x09;

/*BC相通电*/ P5=SendData; sleep_ms(250); SendData=0x0b;

/*C相通电*/ P5=SendData; sleep_ms(250); SendData=0x03; /*CD相通电*/ P5=SendData; sleep_ms(250); SendData=0x07; /*D相通电*/ P5=SendData; sleep_ms(250); SendData=0x06; /*DA相通电*/ P5=SendData;

sleep_ms(250); }

}

函数名称: voidPORT_Init(void) 功能描述: 初始化I/O 输入: 无 输出:

全局变量: XBR2,P74OUT 调用模块: 无

voidPORT_Init (void) {

XBR2 = 0x40; /*使能交叉开关和弱上拉*/

P74OUT |= 0x0f; /*P5低4位为推挽输出,其余口为开漏输出*/ }

附录3

#include

/*SFR定义*/

// Function PROTOTYPES voidPORT_Init (void); voidPCA_Init (void); void PCA_ISR (void); // MAIN Routine void main (void) { /*关看门狗*/ WDTCN = 0xde; WDTCN = 0xad;

PORT_Init ();

/*初始化IO口*/ PCA_Init ();

/*PCA初始化成16位脉

宽调置方式*/ EA = 1;

/*开总中断*/

while (1) {

} }

voidPORT_Init (void) {

XBR0 = 0x0f;

/*CEX0-->P0.0*/

XBR2 = 0x40; /*使能交叉开关和

弱闪拉*/

P1MDOUT |= 0x00f; /*使能P1.6脚推挽输出*/ }

voidPCA_Init (void) { EIE1 = 0x08;

//PCA0MD = 0x01; /*PCA定时器/计

数器溢出中断禁止*/

PCA0L

= 0x00;

PCA0H = 0x00;

PCA0CPM0 = 0x42;

/*8位PWM方式,

当CCF0=1时,允许辅捉/比较标志的中断申请

*/ PCA0CPL0 = 0x00; /*置初值*/

PCA0CPH0 = 0x80;

PCA0CN = 0x40;

/*允许PCA定时器/计数器*/}

/*PCA中断子程序*/ void PCA_ISR (void) interrupt 9 { CF = 0; /*清溢出中断标志*/ CCF0 = 0; /*清匹配中断标志*/

//PCA0L = 0x00; //PCA0H = 0x40;

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- azee.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务