单片机输出矩阵波实验
时间:11-06
来源:互联网
点击:
这个程序的本意是输出一个矩阵波,但是如果用单片机实验板来运行的话就会发现似乎P1^1(即为第二个led管一直在发光),其实并不是程序有问题使得它一直在亮,而使通段的频率对人眼睛来说太快了,根据视觉暂留,所以会觉得led一直在亮。我开始也是有此怀疑的,可以在程序里面修改使得通段的频率变低,就可以看出来其实是一直在工作的。在注释符号后面的程序就是更改后的;
#includereg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D1=P1^1; //uint i=0;
void main()
{
TMOD=0x01;
TH0=(65536-50000)%256;
TL0=(65536-5000)/256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
while(TF0==0) //if(TF0==0) i++;
{ //if(i==10)
D1=~D1; //{ D1=~D1; }
}
}
}
void timer0() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-50000)%256;
}
更改后的程序变成了但计时器溢出十次,中断运行,即二十个溢出为此矩阵波的一个周期。
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)