求助,谁有WT588D的一线和三线串口的32例程,或者如何将51单片机的程序转换为32单片机

2019-08-14 18:57发布

这是c51的
/**************************************************************************
   File Name:       main.c
   Description:     WT588D test programme
   compiler:        Keil C51 9.02a
   Author:          LJW
   Created:         2011/09/02
   Modified:        NO
   Revision:        1.0
   MCU:             STC10F04
   Oscillator Crystal Frequency:    11.0592MHz
***************************************************************************/

/****************************************************/
/*                                                  */
/* Included files                                   */
/*                                                  */
/****************************************************/
#include "STC8051.H"            /* STC8051 definitions       */
#include <Delay.h>


/****************************************************/
/*                                                  */
/* 1ü&#189;&#197;&#182;¨ò&#229;                     */
/*                                                  */
/****************************************************/
/////////////////////////////////
sbit         key1 = P3^7;
sbit         key2 = P3^6;
sbit         key3 = P2^4;
sbit         key4 = P2^3;

sbit    LED_OUT   = P2^0;
sbit    FLAG_OUT   = P2^1;

//1Line_A
sbit         P_DATA    = P0^0;                        //&#182;¨ò&#229;êy&#190;Y′&#171;ê&#228;&#182;&#203;&#191;ú&#182;&#212;ó|ó&#239;ò&#244;D&#190;&#198;&#17203

//3Line_A
sbit         P_DATA_3A = P0^0;                        //&#182;¨ò&#229;êy&#190;Y′&#171;ê&#228;&#182;&#203;&#191;ú
sbit         CS_3A     = P0^1;                         //&#182;¨ò&#229;&#198;&#172;&#209;&#161;D&#197;o&#197;&#182;&#203;&#191;ú
sbit         CLK_3A    = P0^2;                         //&#182;¨ò&#229;ê±&#214;ó&#182;&#203;&#191;ú



//ò&#187;&#207;&#223;£&#172;&#182;t&#207;&#223;£&#172;èy&#207;&#223;óD1&#216;
#define         H                  1        //&#182;¨ò&#229;1&#206;a&#184;&#223;μ&#231;&#198;&#189;
#define         L                 0        //&#182;¨ò&#229;0&#206;aμíμ&#231;&#198;&#189;

//////////////±&#228;á&#191;/////////////////
//bit         flag           = 1;
bit         B_DATA;                                                //′&#171;ê&#228;êy&#190;Yò&#187;&#206;&#187;
unsigned char          SB_DATA   = 0;                                //ò&#187;×&#214;&#189;ú1&#171;ó&#195;êy&#190;Y&#187;o′&#230;&#198;÷
unsigned char          S_DATA    = 0x00;

/******************************************
   &#188;ü&#197;ìé¨&#195;èoˉêy
*******************************************/


unsigned char         key,key_zhi;

unsigned int ADJ_NUM = 6;
unsigned int S_time = 5;

/*--------------------------------------
;&#196;£&#191;é&#195;&#251;3&#198;ine_1A(void)
;1|    &#196;ü:êμ&#207;&#214;ò&#187;&#207;&#223;μ¥×&#214;&#189;úμí&#206;&#187;&#212;ú&#199;°′&#174;&#191;úí¨D&#197;oˉêy
;è&#235;    2&#206;:&#206;T
;3&#246;    2&#206;:0           ·μ&#187;&#216;&#214;÷oˉêy
;-------------------------------------*/
void Line_1A(unsigned char dat)
{
        unsigned char i;
       
       
//********************************************************

        P_DATA = 0;

        Delay_1ms(5);                                   //à-μí&#214;áéù5ms

        B_DATA = dat&0X01;
        for(i=0;i<8;i++)
        {
                P_DATA = 1;                                //à-&#184;&#223;êy&#190;Y′&#171;ê&#228;&#207;&#223;£&#172;×&#188;±&#184;′&#171;ê&#228;êy&#190;Y
                if(B_DATA==0)
                {        /*±íê&#190;&#194;&#223;&#188;-μ&#231;&#198;&#189;0*/
                        Delay_10us(20);     // &#209;óê±200us
                        P_DATA = 0;
                        Delay_10us(20);            // &#209;óê±600us
                        Delay_10us(20);
                        Delay_10us(20);            
                }
                else
                {  /*±íê&#190;&#194;&#223;&#188;-μ&#231;&#198;&#189;1*/
                        Delay_10us(20);
                        Delay_10us(20);
                        Delay_10us(20);
                        P_DATA = 0;
                        Delay_10us(20);
                }
                dat = dat>>1;
                B_DATA = dat&0X01;
        }
        P_DATA = 1;                                        //à-&#184;&#223;μ&#231;&#198;&#189;
}

/*--------------------------------------
;&#196;£&#191;é&#195;&#251;3&#198;ine_3A(void)
;1|    &#196;ü:êμ&#207;&#214;èy&#207;&#223;μ¥×&#214;&#189;úμí&#206;&#187;&#212;ú&#199;°′&#174;&#191;úí¨D&#197;oˉêyêêó&#195;óúWT588D
;è&#235;    2&#206;:&#206;T
;3&#246;    2&#206;:0           ·μ&#187;&#216;&#214;÷oˉêy
;-------------------------------------*/
void Line_3A(unsigned char dat)
{
        unsigned char i,key_copy = 0X00;
        P_DATA = 1;
        CLK_3A    = H;                                 //à-&#184;&#223;
       
        CS_3A= L;                                                          //à-μí&#198;&#172;&#209;&#161;D&#197;o&#197;
        Delay_1ms(5);                                                  //5ms
        B_DATA = dat&0X01;
               
        for(i=0;i<8;i++)
        {
                CLK_3A    = L;                                        // à-μí
                P_DATA_3A = B_DATA;                        //′&#171;ê&#228;êy&#190;Yò&#187;&#206;&#187;
               
                Delay_10us(15);                                         //&#209;óê±150us
                CLK_3A    = H;                                 //à-&#184;&#223;
                Delay_10us(15);                                   //&#209;óê±150us
                                                       
                dat = dat>>1;                                
                B_DATA = dat&0X01;          
        }
        P_DATA_3A  = 1;                                                //à-&#184;&#223;μ&#231;&#198;&#189;
        CS_3A  = H;                  
        CLK_3A = H;                                 
}

/*************************************************
  Function:       Main
  Description:    Main Function
  Input:          void
  Output:         NULL
  Return:         void
*************************************************/
void main()
{
        //P0&#191;úéè&#206;a&#191;a&#194;&#169;&#188;&#171;ê&#228;3&#246;·&#189;ê&#189;
        P0M0 = 0xff;
        P0M1 = 0xff;
        P0 = 0xFF;

        //P0&#191;úéè&#206;aí&#198;íìê&#228;3&#246;·&#189;ê&#189;
        P2M0 = 0x01;

        P4SW = (1<<6);        //P4.6&#206;aIO&#191;ú
        P_DATA  = 1;                        //à-&#184;&#223;êy&#190;Y&#182;&#203;&#191;ú
        P_DATA_3A  = 1;                                                //à-&#184;&#223;μ&#231;&#198;&#189;
        CS_3A  = H;                  
        CLK_3A = H;

        while(1)
        {               
                if(key1 == 0)
                {
                        Delay_1ms(30);
                        if(key1 == 0)
                        {
                                LED_OUT = !LED_OUT;
                                ADJ_NUM ++;
                                //Line_1A(ADJ_NUM);
                                Line_3A(ADJ_NUM);
                        }
                        while(key1 == 0);
                }
                if(key2 == 0)
                {
                        Delay_1ms(30);
                        if(key2 == 0)
                        {
                                LED_OUT = !LED_OUT;
                                ADJ_NUM --;
                                //Line_1A(ADJ_NUM);
                                Line_3A(ADJ_NUM);
                        }
                        while(key2 == 0);
                }
                Delay_10ms(150);
        }

}

/*----------------------------------------------------------------------------
* end of file
*---------------------------------------------------------------------------*/


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。