|
发表于 2012-4-26 17:44:18
|
显示全部楼层
本帖最后由 myrobot 于 2012-4-26 17:50 编辑
/***********检测放纸是否正确,是否存在纸张:******************************/
#include<stdio.h>
#include<absacc.h>
#include<intrins.h>
sbit PAPER=P1^5; /*纸张检测端口*/
void main(void)
{
delay(200);
do{}
while(PAPER==1); /*检测是否存在纸张;*/
print( ) ; /*纸张存在,就开始打印*/
)
/**************************打印程序*****************************/
程序包含:步进电机驱动runmotor()
字节读取read()
打印程序print()
/***************************************************************/
#include<stdio.h>
#include<absacc.h>
#include<intrins.h>
sbit DAT=P1^1;
sbit CLK=P1^2;
sbit DST=P1^3;
sbit LAT=P1^4;
sbit acc_0=ACC^0;
sbit acc_1=ACC^1;
sbit acc_2=ACC^2;
sbit acc_3=ACC^3;
sbit acc_4=ACC^4;
sbit acc_5=ACC^5;
sbit acc_6=ACC^6;
sbit acc_7=ACC^7;
char code motorcode[4]={0x6,0x0c,0x9,0x3};
void read(char hz)
{
ACC=hz; CLK=0; CLK=1;
DAT=acc_7; CLK=0; CLK=1;
DAT=acc_6; CLK=0; CLK=1;
DAT=acc_5; CLK=0; CLK=1;
DAT=acc_4; CLK=0; CLK=1;
DAT=acc_3; CLK=0; CLK=1;
DAT=acc_2; CLK=0; CLK=1;
DAT=acc_1; CLK=0; CLK=1;
DAT=acc_0;
}
char runmotor(int step,char flag) /*步进电机动作*/
{
int i;
char j,sp=0;
for(i=0;i<step;i++)
{
j=flag+1;
flag=flag+1;
if(flag==4)
{flag=0;j=0;}
sp=motorcode[j];
delay(110);
}
return j;
}
print( )
{
char i,j;
for(i=0;i<24;i++) /*24行*/
{
for(j=0;j<2;j++) /*3列*/
{
read (table[j]); /*读出数据*/
}
LAT=0;
LAT=1;
DST=1;
delay(500); /*500毫秒用于加热*/
LAT=0;
DST=0;
motorflag=runmotor(2,motorflag); /*步进电机走两步,打印一行*/
}
}
|
|