交通灯的相位切换巧妙结合。
void delay (uint z); //延时程序声明
uchar n50ms,greentime;
uchar xianshi[2]={10,10}; //显示数组
void intital();
main()
{ intital();
while(1)
{
uchar i,j;

for(;greentime==0&&j<8;j+=2) //for语句判断,通过j的变化送不同的值。
{
greentime=xiangwei[j+1]; //送显相位对应的时间
P0=xiangwei[j]; //相位段码
}
if(j==8)
{
j=0;
}
xianshi[0]=greentime%10;//更新显示数组
xianshi[1]=greentime/10; //更新显示数组
if(n50ms>=20) //定时器精确延时
{ n50ms=0;
greentime-=1;
}
for(i=0;i<2;i++)//送显示
{
P3=weima[i];
P2=duanmatable[xianshi[i]];
delay(5);
}
}
}
/*********延时子程序**********/
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=122;y>0;y--);
}
/********延时子程序结束*******/
void timer0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
n50ms++;
}
void intital()
{
TMOD|=0X01; //定时器1,方式0
TMOD&=0XF1;
TH0=(65536-50000)/256; //赋初值
TL0=(65536-50000)%256;
ET0=1; //开定时器中断
EA=1; //开总中断
TR0=1; //开总中断
}
2、连线说明 三、结论: 硬件平台:I51学习板。 1、硬件平台及用到的资源 用到的资源:数码管显示、发光二极管等。 3.1设计中遇到的问题及如何解决的 交通灯电路图简易交通灯硬件接线说明 单片机P0.1-P0.3、P0.5-P0.7依次控制东西方向的绿红黄,南北方向的绿红黄。 在接线时总接反,有时候还接错。在编程时,有时忘记生成机器码,忘记保存。最大的问题就是编程了,我在网上也找了许多相关程序但是许多都看不懂,不过老师也给了一些程序数码管显示电路:段码控制接口P8用8P杜邦线连接单片机P2口;位码控制接口P9用4P杜邦线用4P杜邦线接单片机P3.4-P3.7。
不过还是都看不懂。前面一些问题在同学和老师的帮助下我都一一解决,但是在编程这一块还存在很大问题。
3.2通过设计有哪些提高还有哪些不足及今后学习提高计划
在这次的实训过程中我懂得了无论大事还是小事都应该注意细节,在硬件连接、keil开发平台已经熟练掌握。但是在c语言编程、pcb制图、画电路图在今后的学习中应该进一步提高。 四、心得体会:
在实验过程中,单片机作为核心控制元件,使得电路的可靠性比较高,功能也比较强大、多变。而且可以随时的更新系统,下载新的文件进行不同状态的切换,进行不同状态的组合。一开始感觉很好奇,于是产生浓厚兴趣,梦想成为电子产品中的魔术师!
在一开始硬件连线的过程中从在问题:杜邦线不知道该往哪插,接线时顺序总结反。在编程时有时忘记保存,有时忘记生成机器码,编译之后的错误很多。但是在设计和调试过程中,也发现一些问题,譬如红绿灯的切换速度不够,绿灯时而亮时而不亮,红绿灯规则效率偏低等,亮度不够是因为在焊接硬件时把排阻接错了,应该是排阻的阻值用的较大了。在焊接外接电路时没按照老师的步骤走,最后导致接错、焊错。交通灯的外接电路虽然只有几个电阻、三极管、发光二极管和几个接线口以及一个接线板,但是到了自己的手里却无从下手没有头绪,最后在同学的帮助下最后完成了焊接。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-74158-6.html
现在人们买白菜都挑有虫子的