电路仿真

  • 格式:doc
  • 大小:275.00 KB
  • 文档页数:20

下载文档原格式

  / 20
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#define uint unsigned int

#define uchar unsigned char

uchar code FFW[]=

{

0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09 };

uchar code REV[]=

{

0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01 };

sbit K1 = P3^0;

sbit K2 = P3^1;

sbit K3 = P3^2;

void DelayMS(uint ms)

{

uchar i;

while(ms--)

{

for(i=0;i<120;i++);

}

}

void SETP_MOTOR_FFW(uchar n) {

uchar i,j;

for(i=0;i<5*n;i++)

{

for(j=0;j<8;j++)

{

if(K3 == 0) break;

P1 = FFW[j];

DelayMS(25);

}

}

}

void SETP_MOTOR_REV(uchar n) {

uchar i,j;

for(i=0;i<5*n;i++)

{

for(j=0;j<8;j++)

{

if(K3 == 0) break;

P1 = REV[j];

DelayMS(25);

}

}

}

void main()

{

uchar N = 3;

while(1)

{

if(K1 == 0)

{

P0 = 0xfe;

SETP_MOTOR_FFW(N);

if(K3 == 0) break;

}

else if(K2 == 0)

{

P0 = 0xfd;

SETP_MOTOR_REV(N);

if(K3 == 0) break;

}

else

{

P0 = 0xfb;

P1 = 0x03;

}

}

}

/*************** writer:shopping.w ******************/ #include

#include

#define uint unsigned int

#define uchar unsigned char

#define delayNOP() {_nop_();_nop_();_nop_();_nop_();}

sbit DQ = P3^3;

sbit LCD_RS = P2^0;

sbit LCD_RW = P2^1;

sbit LCD_EN = P2^2;

uchar code Temp_Disp_Title[]={"Current Temp : "}; uchar Current_Temp_Display_Buffer[]={" TEMP: "};

uchar code Temperature_Char[8] =

{

0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00

};

uchar code df_Table[]=

{

0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9

};

uchar CurrentT = 0;

uchar Temp_Value[]={0x00,0x00};

uchar Display_Digit[]={0,0,0,0};

bit DS18B20_IS_OK = 1;

void DelayXus(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<200;i++);

}

}

bit LCD_Busy_Check()

{

bit result;

LCD_RS = 0;

LCD_RW = 1;

LCD_EN = 1;

delayNOP();

result = (bit)(P0&0x80);

LCD_EN=0;

return result;

}

void Write_LCD_Command(uchar cmd)

{

while(LCD_Busy_Check());

LCD_RS = 0;

LCD_RW = 0;

LCD_EN = 0;

_nop_();

_nop_();

P0 = cmd;

delayNOP();

LCD_EN = 1;

delayNOP();

LCD_EN = 0;

}

void Write_LCD_Data(uchar dat)

{

while(LCD_Busy_Check());

LCD_RS = 1;

LCD_RW = 0;

LCD_EN = 0;

P0 = dat;

delayNOP();

LCD_EN = 1;

delayNOP();

LCD_EN = 0;

}

void LCD_Initialise()

{

Write_LCD_Command(0x01);

DelayXus(5);

Write_LCD_Command(0x38);

DelayXus(5);

Write_LCD_Command(0x0c);

DelayXus(5);

Write_LCD_Command(0x06);

DelayXus(5);

}

void Set_LCD_POS(uchar pos)

{

Write_LCD_Command(pos|0x80); }

void Delay(uint x)

{

while(--x);