彩灯循环控制系统设计内容摘要:

p2=0X7F。 //对 t、 temp temp2 进行赋值 while(t!=0)//while 循环,若 t 不等于 0循环继续,否则,跳出循环 { t。 //变量 t 自减 1 temp1=_crol_(temp1,1)。 四川信息职业技术学院毕业设计说明书 (论文 )第 9 页 delay(500)。 //调用延时子函数 P2=0xFF。 //对 p2口置 1 P1=temp1。 //将 temp1 的值赋给 p1 口 temp2=_crol_(temp2,1)。 //将 temp2 右移 1 位 delay(500)。 //调用延时子函数 P1=0xFF。 //对 p1口置 1 P2=temp2。 //将 temp2 的值赋给 temp2 } P1=0x0ff。 P2=0x0ff。 //分别对 P p2 口置 1 } 设计的此段程序的功能是实现依次一个一个的被点亮。 2 void FUN2() { temp1=0xAA。 temp2=0xAA。 //将二进制数 10101010 赋给 temp temp2 TR0=1。 //启动定时器 /计数器 0 while(TR0==1)。 //while 循环,当 TR0 等于 1 时,进行循环 P1=0x0ff。 P2=0x0ff。 //对 p1 口和 p2 口置 1 } 设计此段程序实现的功能是每隔两个间隔点亮一个灯。 3 void FUN3() { temp1=0x0。 temp2=0x0。 //将 0 赋给 temp temp2,驱动 彩灯发光 TR1=1。 //启动定时器 /计数器 1 四川信息职业技术学院毕业设计说明书 (论文 )第 10 页 while(TR1==1)。 //while 循环,若 TR1 等于 1,进行循环 P1=0x0ff。 P2=0x0ff。 //对 p1 口和 p2 口置 1 } 设计此段程序是为了实现彩灯的全部闪烁。 中断服务程序 0服务程序 void _EX0_() interrupt 0 { while(1) //while 循环,条件真即为 1,便循环 { P1=0x77。 P2=0xee。 //对 p1 口和 p2 口赋值 beep=!beep。 //对 beep 的值进行取反 delay(100)。 //调用延时函数 } } 此段程序定义了一个返回值为空的 _EX0_函数,关键字 interrupt 后面的 0表示终端号,即表示的外部中断 0,中断向量地址为 0003H。 0 中断服务程序 void _ET0_() interrupt 1 { TH0=(6553650000)/256。 //将计算出的值赋给定时器 0的高 8位 TL0=(6553650000)%256。 // 将计算出的值赋给定时器 0 的低 8位 aa++; //aa 的值自加 1 if(aa!=20)//判断 aa 的值是否等于 20,若不得,则执行循环 { P1=temp1。 P2=temp2。 //将 temp temp2 的状态值赋给 temp temp2 四川信息职业技术学院毕业设计说明书 (论文 )第 11 页 temp1=_cror_(temp1,1)。 temp2=_cror_(temp2,1)。 //temp temp2 右移 1 位 delay(500)。 //调用延时函数 } else //当 aa的值等于 20 时 { aa=0。 //将 0赋给 aa TR0=0。 //停 止定时器 /计数器 0 TH0=(6553650000)/256。 TL0=(6553650000)%256。 } } 此段程序定义了一个返回值为空的 _ET0_函数,关键字 interrupt 后面的 1表示终端号,即表示定时器 0,中断向量地址是 000B H。 1服务程序 void _EX1_() interrupt 2 { PX1=0。 PX0=1。 //设置外部中断 外部中断 0的优先级 temp_int1=key_int1。 //将 key_int1 的值赋给 temp_int1 while(temp_int1==0)//while 循环,若 temp_int1 的值等于 0,循环 { temp_int1=key_int1。 //将 key_int1 的值赋给 temp_int1 } PX0=0。 PX1=1。 //设置外部中断 0、外部中断 1的优先级 } 此段程序定义了一个返回值为空的 _EX1_函数,关键字 interrupt 后面的 2表示终端号,即表示外部中断 1,其中断向量地址为 0013H。 四川信息职业技术学院毕业设计说明书 (论文 )第 12 页 1 中断服务程序 void _ET1_() interrupt 3 { TH1=(6553650000)/256。 TL1=(6553650000)%256。 bb++。 if(bb!=20) { P1=temp1。 P2=temp2。 temp1=~temp1。 temp2=~temp2。 delay(500)。 } else { bb=0。 TR1=0。 TH1=(6553650000)/256。 TL1=(6553650000)%256。 } } 此段程序定义了一个返回值为空的 _ET1_函数,关键字 interrupt 后面的 3表示终端 号,即表示定时器 1,其中断向量地址为 001BH。 四川信息职业技术学院毕业设计说明书 (论文 )第 13 页 第 4 章 系统调试 单片机硬件和软件调试的工具分别为 :protues 和 Keil C51 调试软件。 软件调试 单片机软件调试主要是调试本次课程设计的主程序。 其调试过程如下: ( 1)新建一个工程。 单击 Project菜单,在弹出的下拉菜单中选 New Project。 ( 2)然后选择你要保存的路径,输入工程文件的名字,保存。 ( 3)新建一个工程后弹出一个对话框,根据你的需要选择你使用的单片机型号。 然后点击确定。 ( 4)单击“ File”,选 择“ New”,新建文件并在其中输入程序代码,然后保存为 c语言文件。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。