打印

C语言与汇编

[复制链接]
1792|10
手机看帖
扫描二维码
随时随地手机跟帖
沙发
sxfyyy|  楼主 | 2010-5-11 16:39 | 只看该作者
咋没人帮忙呢

使用特权

评论回复
板凳
ayb_ice| | 2010-5-11 16:48 | 只看该作者
C51
#pragma asm
    MOV a,#0xff;
#pragma endasm

使用特权

评论回复
地板
lovewwy| | 2010-5-11 20:01 | 只看该作者
哪种单片机要说清楚呀

使用特权

评论回复
5
sxfyyy|  楼主 | 2010-5-12 09:12 | 只看该作者
51 单片机的啊

使用特权

评论回复
6
sxfyyy|  楼主 | 2010-5-12 09:13 | 只看该作者
三楼那   要不要加什么头文件什么的,我也是那样弄的,为什么KEIL 编译不通过啊

使用特权

评论回复
7
ayb_ice| | 2010-5-12 09:55 | 只看该作者
确实有个地方要设置一下,建议去看帮助文档

使用特权

评论回复
8
a1311651| | 2010-5-12 12:47 | 只看该作者
学习学习

使用特权

评论回复
9
zhzy724| | 2010-5-12 13:02 | 只看该作者
/***************   writer:shopping.w   ******************/
#include <reg52.h>
#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<1*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<1*n;i++)
        {
                 for(j=0;j<8;j++)
                {
                         if(K3 == 0)        break;
                        P1 = REV[j];
                        DelayMS(25);
                }
        }
}

void main()
{
        uchar N = 1;
        while(1)
        {
                 if(K1 == 0)
                {  while(K1==0);
                         P0 = 0xfe; //正转LED指示
                        SETP_MOTOR_FFW(N);
                        if(K3 == 0) break;
                }
                else if(K2 == 0)
                {        while(K2==0);
                         P0 = 0xfd;        //反转LED指示
                        SETP_MOTOR_REV(N);
                        if(K3 == 0) break;
                }
                else
                {
                         P0 = 0xfb;          //停LED指示
                        P1 = 0x03;
                }
        }
}
当按下K1(K2)时怎么每次都正转72°(反转72°)?
程序怎么改让它只转9°?
请各位大侠帮忙

使用特权

评论回复
10
jimlyliao| | 2010-5-12 13:04 | 只看该作者
飞思卡尔单片机:
void  SCL_TxD(void)
{

   byte  cnt;
   Input = 0;   
   ID_Local = 3;

   asm   //这里开始嵌入汇编     
      {
        LDA     Input
        STA     TxDat_Local:1
        EOR     ID_Local
        STA     TxDat_Local:2
        LDA     ID_Local
        STA     TxDat_Local:0
      }//嵌入汇编 结束   

   TPM1SC_CLKSA = 1;      // 开启PWM
    _SCI1S1;
    _SCI1D;
    while(SCI1S2_RAF)
    __RESET_WATCHDOG();

使用特权

评论回复
11
mbutterfly| | 2010-5-12 16:05 | 只看该作者
建议9楼自己开个帖子,也许有人会回答你的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

27

帖子

0

粉丝