微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求一个8051单片机的简单程序段

求一个8051单片机的简单程序段

时间:10-02 整理:3721RD 点击:
本人是小白。急需一个8051的单片机的简单,且具有一定使用作用的单片机小程序。希望大家帮帮我

这问题提的,就好像:你要吃你喜欢的菜,让大家随便做一道给你,这怎么下手

这人太懒了,鉴定完毕

百度吧

这个是什么问题呢?我研究几个月先。

这个还是自己百度吧

......我实在是要的急。不然我能上来问么?我C语言实在是不行

给你 这是P1.0口 控制LED一闪一灭的程序 希望能帮到你吧 想问啥你就回复吧
#include "reg51.h"
sbit LED = P1^0;
void delay(void);
void main()
{
        LED = 1;
        delay();
        LED = 0;
        delay();
}
void delay(void)
{
        unsigned int i,j;
        for(i=0;i<255;i++)
                for(j=0;j<255;j++);
}

谢谢了。

这孩子,做啥菜啊,不告诉人家怎么知道你喜欢吃啥啊

#include<reg52.h>
unsigned char code table[16]={
                              0x3f,0x06,0x5b,0x4f,
                              0x66,0x6d,0x7d,0x07,
                              0x7f,0x6f,0x77,0x7c,
                              0x39,0x5e,0x79,0x71
                              };
sbit dula=P2^6;
sbit wela=P2^7;
unsigned int z,tt;
void display(unsigned int z);
void delay(int num);
void timer0();
/***************************************
每当定时器0进入中断后才执行tt++,没进入中断时一直执行display(z)子函数。
****************************************/
void main()
{
  tt=0;
  z=0;
  timer0();
  while(1)
  {
    if(tt==20)
      {
        tt=0;
        z++;
        if(z == 100) z=0;  
       }
    display(z);//判断放在外面就会在未进入中断时执行这个语句。
  }  
}
void display(unsigned int z)
{
  int temp,bai,shi,ge;
  temp=z;
  bai=temp/100;
  shi=temp%100/10;
  ge=temp%10;
  // while(1)
  //{
    dula=1;
    P0=table[bai];
    dula=0;//送百位
    P0=0xff;//消隐关闭位选全部高电平
    wela=1;
    P0=0xfe;
    wela=0;
    delay(5);
   
  
    dula=1;
    P0=table[shi];
    dula=0;
    P0=0xff;//消隐,短时间内位选打开,此时段选信号还未改变
    wela=1;
    P0=0xfd;
    wela=0;
    delay(5);
   
    dula=1;
    P0=table[ge];
    dula=0;
    P0=0xff;//消隐,短时间内位选打开,此时段选信号还未改变
    wela=1;
    P0=0xfb;
    wela=0;
    delay(5);
}
void delay(int num)
{
  int x,y;
  for(x=num;x>0;x--)
   for(y=110;y>0;y--);
}
void timer0()
{
  TMOD=0x01;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  EA=1;
  ET0=1;
  TR0=1;
}
void inter0() interrupt 1
{
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  tt++;
}

数码管自动加1,慢慢来一步步的看

此问题无解啊。

从摇摇棒开始吧

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top