?? motor.c.091702
字號:
#include <reg52.h>
#include<absacc.h>
#include <intrins.h>
sbit cflag=ACC^7;
/*
sbit L297_CLK=P1^3;
sbit L297_CW=P1^2;
sbit L297_EN=P1^0;
sbit L297_HALF=P1^4;
sbit L297_RST=P1^5;
sbit L297_CTL=P1^1;
*/
sbit L298_A=P1^0;
sbit L298_B=P1^1;
sbit L298_C=P1^2;
sbit L298_D=P1^3;
sbit L298_I1=P1^4;
sbit L298_I2=P1^5;
#define uchar unsigned char
#define uint unsigned int
#define ctrl8279 XBYTE[0X0100]
#define data8279 XBYTE[0X0000]
/*********************************/
void msec(unsigned int x){
uchar j;
while(x--){
for(j=0;j<125;j++)
{;}
}
}
/*************************/
uchar code table[]={0x0fc,0x60,0x0da,0x0f2,0x66,0x0b6,0x0be,0x0e0,0x0fe,0x0f6,0x8e};
/****************************/
void wdat_8279(uchar d){
msec(1);
do
{ACC=ctrl8279;}
while (cflag==1);
data8279=d;
}
/*******************************************/
void wcom_8279(uchar c){
msec(1);
do
{ACC=ctrl8279;}
while (cflag==1);
ctrl8279=c;
}
/********************/
void init8279()
{
//unsigned char i;
ctrl8279=0x32; //biancheng minglin shizhong :ale 18 fenping 00110010
ctrl8279=0x00; //8zifuxianshi you ru kou ,bianma sao miao jianpan,shuang jian suo
ctrl8279=0xd0; //xianshi ram qing 0,quan zhi 1;
}
/******************/
void display_xy(int x, int y , uchar ch){
if (y<1) y=1;
if (y>2) y=2;
if (x<1) x=1;
if (x>4) x=4;
if (ch<0) ch=0;
if (ch>15) ch=15;
if (y==1) {
switch (x) {
case 1: wcom_8279(0x87);
wdat_8279(table[ch]);
break;
case 2: wcom_8279(0x83);
wdat_8279(table[ch]);
break;
case 3: wcom_8279(0x85);
wdat_8279(table[ch]);
break;
case 4: wcom_8279(0x81);
wdat_8279(table[ch]);
break;
}
}else {
switch (x) {
case 1: wcom_8279(0x86);
wdat_8279(table[ch]);
break;
case 2: wcom_8279(0x82);
wdat_8279(table[ch]);
break;
case 3: wcom_8279(0x84);
wdat_8279(table[ch]);
break;
case 4: wcom_8279(0x80);
wdat_8279(table[ch]);
break;
}
}
}
void display2( int k){
uint s=0,a=0,d=0, m=0,f=0,n=0,i;
if(k>=0&&k<=9999)
{
// ctrl8279=0x00;
s=k/1000;
wcom_8279(0x86);
wdat_8279(table[s]);
a=k%1000;
d=a/100;
wcom_8279(0x82);
i=0x80;
wdat_8279(table[d]);
//
m=a%100;
f=m/10;
wcom_8279(0x84);
i=0x80;
wdat_8279(table[f]);
n=m%10;
wcom_8279(0x80);
wdat_8279(table[n]);
}
}
void display1( int k)
{
uint s=0,a=0,d=0, m=0,f=0,n=0,i;
if(k>=0&&k<=9999)
{
// ctrl8279=0x00;
s=k/1000;
wcom_8279(0x87);
wdat_8279(table[s]);
a=k%1000;
d=a/100;
wcom_8279(0x83);
i=0x80;
wdat_8279(table[d]);
//
m=a%100;
f=m/10;
wcom_8279(0x85);
i=0x80;
wdat_8279(table[f]);
n=m%10;
wcom_8279(0x81);
wdat_8279(table[n]);
//
}
}
/***********************/
uchar key_pressed(void) //判斷FIFO有鍵按下函數
{uchar k;
k=ctrl8279;
return(k&0x0f); //非0,有鍵按下
}
uchar keyin(void)
{uchar i,k;
while(key_pressed()==0);
wcom_8279(0x40); //讀FIFO RAM命令
i=data8279;
k=0;
switch(i)
{
case 196:
display1(0);
k=0;
break;
case 228:
display1(1);
k=1;
break;
case 192:
display1(2);
k=2;
break;
case 224:
display1(3);
k=3;
break;
case 197:
display1(4);
k=4;
break;
case 229:
display1(5);
k=5;
break;
case 193:
display1(6);
k=6;
break;
case 225:
display1(7);
k=7;
break;
case 198:
display1(8);
k=8;
break;
case 230:
display1(9);
k=9;
break;
case 194:
display1(10);
k=10;
break;
case 226:
display1(11);
k=11;
break;
case 199:
display1(12);
k=12;
break;
case 231:
display1(13);
k=13;
break;
case 195:
display1(14);
k=14;
break;
case 227:
display1(15);
k=15;
break;
}
return(k);
}
/**************************/
void clear_led(){
wcom_8279(0xd0);
}
void initL298(){
L298_I1=1;
L298_I2=1;
}
bit int_flag;
//extern ReadTemperature(void);
main() {
unsigned int i,j;
int_flag=0;
IT1=1;
IE=0X84;
init8279();
display1(1200);
display2(0000);
msec(2000);
clear_led();
for(i=1;i<3;i++)
{for(j=1;j<5;j++) {
display_xy(j,i,2);
msec(100);
clear_led();
}
}
display1(1234);
display2(5678);
initL298();
do{
L298_I1=1;
L298_I2=1;
L298_A=0;
L298_B=1;
L298_C=0;
L298_D=0;
msec(100);
L298_I1=1;
L298_I2=1;
L298_A=0;
L298_B=0;
L298_C=0;
L298_D=1;
msec(100);
/*
L298_A=1;
L298_B=0;
L298_C=0;
L298_D=0;
msec(50);
L298_A=0;
L298_B=0;
L298_C=1;
L298_D=0;
msec(2000);
*/
}
while(1);
}
void int1() interrupt 2{
int_flag=1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -