您的位置:首页 > 其它

lesson3 数码管静态显示及定时器和中断应用

2012-03-20 07:01 323 查看
1、电容帮助晶振起振。

2、发光二极管LED(Light Emitting Diode),液晶LCD(Liquid Crystal Display)。

3、数码管原理:

View Code

#include<reg52.h>
#include<intrins.h>
unsigned char code shu[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示数0123456789ABCDEF
unsigned int tt0,tt1,i,j,a;
unsigned char code hello[]={0x76,0x79,0x38,0x38,0x3f,};//显示HELLO
/*void qd0()
{
TMOD=0X01;//设置定时器0为工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;//开定时器0
TR0=1;//启动定时器0
}  */
void qd1()
{
TMOD=0X11;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ET1=1;
TR1=1;
}
/*void liushui(unsigned char temp)
{
P1=_crol_(temp,1);
} */
void delay(unsigned int b)
{
while(b--);
}
void main()
{
EA=1;//开总中断
P2=0;i=7;j=0;
P0=shu[i];
tt0=0;tt1=0;P1=0XFE;
TMOD=0X11;//设置定时器0为工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ET0=1;//开定时器0
ET1=1;
TR0=1;//启动定时器0
TR1=1;
while(1)
{
if (tt0==10)
{
tt0=0;
P1=_crol_(P1,1);
if (i==0)
{
j++;
if (j%2==1)    P1=0;
else P1=0xff;
}
if (j==6)  while(1)
{
for (a=0;a<5;a++)
{
P2=a+1;
P0=hello[a];
delay(50);
}
}
67
}
if (tt1==2)
{
tt1=0;
if (i>0)i--;
P0=shu[i];
}
}
}
void d0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt0++;
}
void d1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
tt1++;
}


注:1、汇编终于看完了,整整十天,好爽啊。。。。

2、单片机的前几章算是复习,笔记比较粗糙。

3、再次,我使用的开发板不是视频教程里面的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐