📄 moto.c
字号:
#include <C8051F020.H>
#include <absacc.h>
#include <intrins.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
#define BAUDRATE 9600 // Baud rate of UART in bps
#define SYSCLK 22118400 // SYSCLK frequency in Hz
uchar code moto_rd[8]={0x8,0xc,0x4,0x6,0x2,0x3,0x1,0x9,};
//uchar code moto_rd[8]={0xc,0xc,0x6,0x6,0x3,0x3,0x9,0x9,};
//uchar code moto_rd[8]={0x3,0x3,0x6,0x6,0xc,0xC,0x9,0x9,};
uchar mty;
void SYSCLK_Init (void)
{
int i; // delay counter
OSCXCN = 0x67; // start external oscillator with
// 22.1184MHz crystal
for (i=0; i < 256; i++) ; // XTLVLD blanking interval (>1ms)
while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
OSCICN = 0x88; // select external oscillator as SYSCLK
// source and enable missing clock
// detector
}
void xspdelay(unsigned int x)
{
while(x--){}
}
void mb_moto_y(bit fx,unsigned int i)
{
unsigned int ii;
unsigned char mt;
mt=moto_rd[mty]<<4;
P6=mt;
xspdelay(1000);
for (ii=0;ii<i;ii++)
{
if(fx==1) mty=(mty+1)&0x07;
else mty=(mty-1)&0x07;
mt=moto_rd[mty]<<4;
P6=mt;
xspdelay(1000);
}
}
void main()
{
WDTCN = 0xde; // disable watchdog timer
WDTCN = 0xad;
SYSCLK_Init ();
P74OUT |= 0x30;
P6=0;
mb_moto_y(1,500);
while(1)
{
// mb_moto_y(0,500);
P6=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -