173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

52单片机考程序

htxw 2023-03-14 资讯中心 18 ℃

用52单片机C语言编写程序,实现00~59计时。要求用T0,工作方式1。

#include reg52.h

#define uint unsigned int

#define uchar unsigned char

sbit dula=P2^6; //段选

sbit wela=P2^7; //位选

uchar shi,ge,num1,num2; //变量

uchar code table[]={0x3f,0x06,0x5b,0x4f, //共阴极字型码

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void delay(uint x) //延时子程序

{

uint i,j;

for(i=0;ix;i++)

for(j=0;j120;j++);

}

void init()

{

TMOD=0x01; //设置定时器0的工作方式

TH0=(65536-50000)/256; //装初值

TL0=(65536-50000)%256;

EA=1; //开总中断

ET0=1; //开定时器0中断

TR0=1; //启动定时器0

}

void display() //显示子程序

{

dula=1;

P0=table[ge]; //送段选数据

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);

}

void main()

{

init();

while(1)

{

display();

}

}

void timer() interrupt 1

{

TH0=(65536-50000)/256; //重装初值

TL0=(65536-50000)%256;

num1++;

if(num1==20) //到了20次,1秒时间到

{

num1=0; //清0重新计数

num2++;

if(num2==60)

num2=0;

P1=0x00;

delay(500);

P1=0xff;

shi=num2/10; //把一个2位数分离后分别送数码管显示

ge=num2%10; //十位和个位

}

}

试了的,可以放心,采纳吧!

求52单片机流水灯程序

//单片机流水灯程序,是学习单片机的最简单的程序。

//流水灯

#include REG51.h  //51头文件

#define DY_PORT P1 //设置LED连接的I/O组

#define DY_SPEED  100 //设置每一个明亮级的停留时间(值域:0~65535)

void delay (unsigned int a){ // 1ms延时程序

unsigned int i;

while( --a != 0){

for(i = 0; i 600; i++);

}    

}

void main(void){

unsigned int i;

unsigned int temp;

while(1){

temp=0x01;

for(i=0;i8;i++){ //8个流水灯逐个闪动

DY_PORT=~temp;

delay(DY_SPEED);   //调用延时函数

temp=1;

}

temp=0x80;

for(i=0;i8;i++){ //8个流水灯反向逐个闪动

DY_PORT=~temp;

delay(DY_SPEED);   //调用延时函数

temp=1;

}

temp=0xFE;

for(i=0;i8;i++){ //8个流水灯依次全部点亮

DY_PORT=temp;

delay(DY_SPEED);   //调用延时函数

temp=1;

}

temp=0x7F;

for(i=0;i8;i++){ //8个流水灯依次反向全部点亮

DY_PORT=temp;

delay(DY_SPEED);   //调用延时函数

temp=1;

}

}

}

求52单片机程序代码

程序代码如下:

#includereg51.h

sbit K1=P1^0;

sbit K2=P1^1;

void delay(int a)

{

int i;

while(a--)for(i=0;i120;i++);

}

main()

{

unsigned char keyval=0,led=0xfe;

while(1)

    {

    if(K1==0)

        {

        delay(10);

        if(K1==0)

            {

            keyval==1;

            while(K1==0);

            }

        }

    if(K2==0)

        {

        delay(10);

        if(K2==0)

            {

            keyval==2;

            while(K2==0);

            }

        }

    if(keyval==1)P0=0xfe;

    if(keyval==2)

        {

        P0=led;

        led=_crol_(led,1);

        delay(200);

        }

    }

}

52单片机直流电机正反转程序

52单片机如51单片机的指令集是一样的,写电机的正反转程序,就是用一个电桥啊,就是4个三极管组成桥B,然后对应的墙壁打通就可以让电系症状,另外的对对比对面的桥臂导通可以用电机反转,所以直接用单片机的io口引脚输出高低电平就可以控制电机的症状和反转的。

52单片机考程序的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:52单片机考程序

<