📄 zi.c
字号:
/****************************************
AT89S51电动自行车程序
作者:yuri
时间:2006.12.1-2006.?.??
QQ:285123356
E-mail:Yuri_su@163.com
-----------------------------------------
程序,分?部分:
1-定义接口
2-调速中断0
3-
4-
5-
6-
7-
8-
9-
10-
11-
12-
13-
14-显示子程序
15-主程序
****************************************/
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit rin=P1^0;
sbit h=P3^7;//h
uchar d1,d2;
void off();
void ring(uchar a,b);
void keypass();
void delay(uchar k);
void longdelay(uchar k);
//------------------------------
void main() //主程序
{
uchar a1,a2,tt;
EA=1;
TMOD=0x02; //*T1定时器方式2*
ET0=1;
ET1=1;
TR1=1;
TR0=1;
TH0=0xfe; //赋T2的预置值,溢出1次是60uS
TL0=0x0c;
d1=00;
d2=0;
P1=0x00;
while(1)
{
while(!h);
d1++;
while(h);
d2++;
}
//delay(200);
//if(a1==a1)d1++;
//if(a2==a2)d2++;
}
/* void ring(uchar a,b)
{
rin=0;
longdelay(b);
rin=1;
longdelay(a);
rin=0;
*/
void timer1() interrupt 0 using 2
{
TF0=0;
tt++;
if(tt==255) //开始输出低电平
{
tt=1;
P17=0;
}
if(scale!=0){ //这里加这一句是为了消除灭灯状态产生的鬼影
P17=0;
}
if(scale>tt){ //按照当前占空比切换输出高电平
P17=1;
}
}
void timer0() interrupt 1 using 1 //动态扫描显示
{
uchar code duan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d 0x07,0x7f,0x67,};///////-----共阳
uchar code zhi[6]={0x01,0x02,0x04,0x08,0x10,0x20};
uint c=0,d=0,f=0,sa=0,sb=0,t;
d=d1%10; //1,个位
c=d1/10; //2,十位
t=25;//************ delay time
off();
P2=zhi[0]; //个位分数段显示
P0=duan[c]; //个位分数字显示
delay(t);//延时
off();
P2=zhi[1]; //十位分数段显示
P0=duan[d]; //十位分数字显示
delay(t);//延时
off();
P2=zhi[3]; //个位时数段显示
P0=duan[e]; //个位时数字显示
delay(t);
off();
}
void delay(uchar k) //延时
{
while(--k);
}
/*
void longdelay(uchar k)
{
uint i;
for (;k>0;k--)
for (i=0;i<5000;i++);
}
*/
void off()
{
P0=0x00;
P2=0x00;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -