51单片机数据搬运c语言程序

Python016

51单片机数据搬运c语言程序,第1张

这个很简单,可以利用单片机的定时器来完成

当有脉冲输入的时候,启动定时器,并对定时器的计数值进行清零

每一次脉冲输入都清零计数值,当脉冲消失后,定时器的计数值达到指定时间则关闭

关闭的同时,调用其它函数,例如你的继电器控制

需要说明的是,我使用的开发板和你的不见得一样,所以端口的使用只能你自己修改了

但程序已经经过硬件测试成功,请放心使用,如果满意记得采纳哦

/***************************************************************************/

#include <reg51.h> //51单片机通用头文件

sbit P24=P1^0sbit P25=P1^1sbit P26=P1^2sbit P27=P1^3//数码管位选端口

char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}//数码管显示编码

sbit k=P3^7sbit KK=P1^4//定义按键和继电器端口

int t,n,s,fe=0

/***************************************************************************/

void YS(int hs){int hkfor(hs>0hs--){for(hk=100hk>0hk--)}}//延时函数

/***************************************************************************/

void XS(int xs)//数码管显示

{

char d1,d2,d3,d4

d1=(xs/1)%10 d2=(xs/10)%10 d3=(xs/100)%10 d4=(xs/1000)%10

P0=table[d1]P27=0YS(5)P27=1

P0=table[d2]P26=0YS(5)P26=1

P0=table[d3]P25=0YS(5)P25=1

P0=table[d4]P24=0YS(5)P24=1

}

/***************************************************************************/

void main(void)//主函数

{

TMOD=0x01EA=1ET0=1KK=0//定时器初始化

TH0=(65536-921)/256TL0=(65536-921)%256//定时器初值

while(1)

{

XS(t)//调用数码管显示函数

if(k==0)//如果按键被按下

{

YS(10)//延时去抖动

if(k==0)//如果是有效按键

{

TR0=1//启动定时器,开始计时

n=0//每次按键都清空定时计数

t++//按键值累加一次

KK=1//继电器打开

while(!k){XS(t)}//等待按键松开,并调用数码管显示,避免黑屏

}

}

if(fe==1)//如果没按键输入

{

fe=0t=0//清空按键计数值,并设置标识符

KK=0//继电器吸合

}

}

}

/***************************************************************************/

void int1() interrupt 1 //定时器中断

{

TH0=(65536-1000)/256TL0=(65536-1000)%256n++//n等于100时,则为1秒

if(n>1000){TR0=0n=0fe=1}//如果达到指定时间,则关闭定时器,并设置标识符

}

#include <stdio.h>

void main()

{

memcpy((void *)0x1000, (void *)0x2000, 100)

}