1、 N Y五、实验程序:/-/程序说明:/ 此程序用于测试教学实验机上的8个发光二极管,正常情况下应轮流点亮.定时时间为0.3s/-/ 头文件包含/-#include / 16位特殊寄存器定义/-sfr16 TMR3RL = 0x92;sfr16 TMR3 = 0x94;/-/ 常量定义/-#define SYSCLK 2000000 /系统工作频率/全局变量定义 unsigned char i=0xfe;/ 函数定义void PORT_Init (void);void Timer3_Init (int counts);void Timer3_ISR (void);/ 主程序void main
2、(void) WDTCN = 0xde; WDTCN = 0xad; /禁止看门狗定时器 PORT_Init (); Timer3_Init(0xc350 ); /定时时间为0.3s REF0CN=0x02; EA = 1; while (1) /函数名称: PORT_Init ()/函数功能: 通用I/O口及交叉开关初始化/入口参数: 无/出口参数:/全局变量引用:/调用模块:void PORT_Init (void) XBR2 = 0x40; /*使能交叉开关*/ P74OUT |= 0x000; /*推挽输出*/- Timer3_Init () 定时器3初始化 int countsvoi
3、d Timer3_Init (int counts) TMR3CN = 0x00; /用十二分频 TMR3RL = -counts; TMR3 = 0xffff; EIE2 |= 0x01; TMR3CN |= 0x04;/- Timer3_ISR () 定时器3中断服务程序void Timer3_ISR (void) interrupt 14 int j; TMR3CN &= (0x80); /*清中断标志*/ P4=i; /*送数据到P4*/ i/ Function PROTOTYPES/*函数名称: void sleep_ms(WORD count)功能描述: 延时输入: WORD co
4、unt(所要延时的长度)输出: 无全局变量:调用模块: _nop_()*/void sleep_ms(unsigned char count) unsigned char ii,jj; for(ii=0;iicount;ii+) for(jj=0;jj250;jj+) _nop_(); / MAIN Routine unsigned char k; unsigned char SendData; /*无效看门狗*/ WDTCN = 0xde; WDTCN = 0xad; PORT_Init (); SendData=0xff; /*4相线圈都截止*/ while(1) /步进电机正转 Send
5、Data=0x0e; /*A相通电*/ P5=SendData; sleep_ms(250); SendData=0x0c; /*AB相通电*/ SendData=0x0d; /*B相通电*/ SendData=0x09; /*BC相通电*/ SendData=0x0b; /*C相通电*/ SendData=0x03; /*CD相通电*/ SendData=0x07; /*D相通电*/ SendData=0x06; /*DA相通电*/ void PORT_Init(void) 初始化I/O XBR2,P74OUT /*使能交叉开关和弱上拉*/ P74OUT |= 0x0f; /*P5低4位为推挽输出,其余口为开漏输出*/2. 步进电机反: 此程序通过I/O口驱动步进电机反转/*函数名称:*/ /*步进电机反转*/ while(1) /*/3. 步进电机定速运转: 此程序通过I/O口驱动步进电机定速运转,且每分钟30转/-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1