基于单片机pic16f877a的交通灯制作报告内容摘要:

6,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X60,0X25,0X3c,0X23,0X34,0X74,0XF7,0XFF}。 void timer1init(void) //初始化 { T1CON=0X01。 //打开定时器 1 TMR1IF=0。 //清除 TMR1 中断标志 TMR1IE=1。 //TMR1 中断允许 TMR1H=0xF6。 //赋初值,以便 TMR1 每 2MS 左右中断一次 TMR1L=0x3D。 PIR1=0。 //清除所有中断标志 PEIE=1。 //允许外围总中断 GIE=1。 //总中断开关打开 } void interrupt T1(void)//中断处理 { if(TMR1IF==1) //如果是定时器 1 中断 { TMR1IF=0。 //清除定时器 1 中断标志 TMR1H=0XF6。 //重新复初值 TMR1L=0x3D。 switch(LED_L) { case 0://点亮第一个数码管 RE2=1。 RE1=0。 RE0=0。 PORTB = table[LED1]。 LED_L = 1。 break。 case 1://点亮第二个数码管 RE2=0。 RE1=1。 RE0=0。 PORTB = table[LED2]。 LED_L = 2。 break。 case 2: //点亮第三个数码管 RE2=1。 RE1=1。 RE0=0。 PORTB = table[LED3]。 LED_L = 3。 break。 case 3://点亮第四个数码管 RE2=0。 RE1=0。 RE0=1。 PORTB = table[LED4]。 LED_L = 0。 break。 d LED_L = 0。 break。 } } } delay()//延时 500ms { int j,k。 for(j=0。 j500。 j++) for(k=0。 k49。 k++) {} } delay_s(int n)//延时 n 秒 { int i。 for(i=0。 in。 i++) { delay()。 delay()。 } } main()//主函数 { in。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。