1/8
0/100
您的浏览器不支持进度条
下载所得到的文件列表
运用单片机制作的灯源程序.docx
文档介绍:
运用单片机制作的灯源程序.docx一、软件设计1、硬件电路分析观察上面所绘制的原理图,可知四个按键经断开闭合引起的高低电平变化由单片机的Pl.0,Pl.1,P1.2,P1.3四个口送入。8个发光二极管从右到左依次对应单片机的P0.0-P0.7.P1口高低电平控制发光二极管的两灭。蜂鸣器和单片机的P3.4口相连,蜂鸣器的发声频率与P3.4口的高低电平的长短变化频率有关。2、 编程思想流水灯:按键1控制流水灯从左向右,按键2控制流水灯从右向左,按键3控制流水灯从中间向两侧,按键4控制流水灯从两侧向中间。运用FOR循环和左移右移实现流水灯的循环移动。延时函数改变移动的快慢。按键扫描函数获得按键信息。蜂鸣器:由取反和FOR循环,实现高低屯平变化,延时函数的参数改变控制频率的改变。3、 软件题目1)流程图开始测按5检到键测按1厂检到醍结束2)流水灯按键音代码#include<reg51.h>#dcfincuintunsignedint#defineucharunsignedcharsbitbeep=P3A4;bitflag;ucharkey_counter;ucharsound_coun(cr;ucharcount!,count2tcount3,count4;voidKey_Scan();voidPlay(uchai*t);/*初始化函数*/voidInint(){flag=0;sound_counter=0;key_counter=0;count1=0,count2=0,count3=0,count4=0;/*延时两数*/voidDelay(ucharx){uinti,j,k;k=200;k=k/x;for(i=k;i>0;i—)for(j=100;j>0;j-);/*1秒延时函数*/B/rTwrTwrTwrTwrT*^JwrTwrTw*z*rxw fTwrTwrTwrY^rTwrTwvoidDelayMS(uintx)uchart;whilc(x—){for(t=0;t<120;t++);})/*从左向右流水灯*/voidLeft_Right(uchart){uchari;PO=0x80;for(i=0;i<&i++){Key_Scan();P0=P0»l;Delay(t);/*从右向左流水灯*/voidRight_Left(uchart){uchari;P()=0x01;for(i=0;i<8;i++){Key_Scan();P0=P0«l;Delay(t);/*中间向两侧流水灯*/voidMiddle_Edge(uchart){};〃从中间向两侧点亮unsignedcharcodetable![]={OxFEOx1&0x24,0x42,0x81,0x00uchari=0j;for(j=0;jv5;j++){Key_Scan();PO=tablel[i];Delay(t);/*两侧向中间流水灯*/]•匕•匕*1* <g ■[、voidEdgc_Middlc(uchart)〃从两侧向中间点亮unsignedcharcodetable![]={0xFF,0x81,0x42,0x24,OxI&0x00 };uchari=0j;for(j=0;j<5;j++){Key_Scan();PO=tablel[i];i++;Delay(t);/*键盘扫描*/voidKe 内容来自淘豆网www.taodocs.com转载请标明出处.