单片机C语言试题求解

Python018

单片机C语言试题求解,第1张

定时器计数频率为12MHz/12=1MHz,则计一个数为1us,最大65536*1us=65.536ms,计数器向上计数,则定时50ms为65536-50000=15536=0x3CB0,所以TH0=0x3C, TL0=0xB0

#include"AT89X52.h"sbit BUTTON = P1^1sbite LED= P1^0 unsigned int regvoid main(void){while(1){if (!BUTTON){reg= 5000while(--reg)if (!BUTTON){LED = ~LEDwhile(!BUTTON)}}}}

1、错  形参之间可以出现空格,但是宏名和形参表之间不能有空格出现

2、

#include<reg52.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

sbit key1=P3^4

sbit key2=P3^5

void delayms(uint xms)

{

    uint i,j

    for(i=xmsi>0i--)

        for(j=110j>0j--)

}

void mian()

{

    P1=0xfe

    while(1)

    {

        if(key1==0)

        {

            delayms(10)

            if(key1==0)

            {

                while(!key1)

                P1=_crol_(P1,1)//松开按键时 左移1位

            }

        }

        if(key2==0)

        {

            delayms(10)

            if(key2==0)

            {

                while(!key2)

                P1=_cror_(P1,1)//松开按键时 右移1位 

            }

        }

    }

    

}