51单片机定时器C语言程序
/*********************************************/
51单片机写的曝光定时器C语言程序
/*********************************************/
#include "at89x52.h"
#include "intrins.h" //_nop_();延时函数用
#define uchar unsigned char #define uint unsigned int
uchar code discode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
uint disdata[2]={0,0};
/*********************延迟1ms**********************/
void delayms(uint ms)
// 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i <105; i++);
}
}
/********************显示函数*********************/
void scan(uint time)
{ uint t,s;
if(time>=10)t=time/10 ;else t=0; s=time-t*10;
disdata[0]=t;
disdata[1]=s;
P3=0xff;
P3_6=0;
P0=discode[disdata[0]];
delayms(5);
P3=0xff;
P3_7=0;
P0=discode[disdata[1]];
delayms(5);
P3=0xff;
}
/*******************显示+延迟0.1秒************************/
void delay_scan(uint t,uint codes) { t=t*10;
while(t--){
scan(codes);
}
}
/*********************声音函数**********************/
void beep(uint t,uint s)
{ if(s==0)s=360;
else if(s==1) s=90;
else if(s==2) s=30;
else s=300;
while(t--)
{
P2_1=0 ;
delayms(s);
P2_1=1;
delayms(s);
}
delayms(s/6);
}
/****************主函数************************/
main()
{
uint time=0;
P1=0xFF;
while(1)
{
scan(time);
if(P1_0==0){
delayms(5);
if(P1_0==0){
if(time<60) time++;else beep(1,1);
scan(time);
delay_scan(1,time); }
}
//----
if(P1_1==0){
delayms(5);
if(P1_1==0){
if(time>0) time--;else beep(1,1);
scan(time);
delay_scan(1,time); }
}
//----
if(P1_2==0)
{
delayms(5);
if(P1_2==0 && time>0)
{ P2_0=1;
delay_scan(3,time);
while(time--)
{ beep(1,2);
P2_0=0;
delay_scan(10,time);
}
P2_0=1;
beep(1,1);
time=0;
}
else
beep(1,0);
time=0;
}
//----
if(P1_3==0){
delay_scan(7,time); if(P1_3==0){
beep(2,1);
P2_0=~P2_0;
delay_scan(10,time); }
}
}
}
本文档为【51单片机定时器C语言程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。