① 8个彩灯依次点亮,求电路图和工作原理。
C语言1:
/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#include<reg52.h>//包含reg.52文件
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
voiddelay(uintz);//声明延时函数
uinta;//定义循环用变量
ucharcodetable[]={
0xff,0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};//定义循环用数据表格
voidmain()//main函数
{
a=0;//给a赋初值
P1=table[a];//将a所在的table中的值赋给P1口
while(1)//while循环
{
delay(1000);//1S延时子程序
if(a==8)//测试a是否等于8
a=0;//给a赋值
a++;//a的值加一
P1=table[a];//将a所在的table中的值赋给P1口
}
}
voiddelay(uintz)//1ms延时子程序,通过z值改变延时
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
C语言2:
/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#include<reg52.h>//包含reg.52文件
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
voiddelay(uintz);//声明延时函数
uinta;//定义循环用变量
ucharcodetable[]={
0xff,0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};//定义循环用数据表格
voidmain()//main函数
{
a=8;//给a赋初值
P1=table[a];//将a所在的table中的值赋给P1口
while(1)//while循环
{
delay(100);//1S延时子程序
if(a==0)//测试a是否等于8
a=8;//给a赋值
a--;//a的值加一
P1=table[a];//将a所在的table中的值赋给P1口
}
}
voiddelay(uintz)//1ms延时子程序,通过z值改变延时
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
C语言3:
/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#include<reg52.h>//包含reg.52文件
#include<intrins.h>//包含左右循环移位子函数库文件
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
voiddelay(uintz);//声明延时函数
uinta;//定义循环用变量
voidmain()//main函数
{
a=0xfe;//给a赋初值
while(1)//while循环
{
P1=a;
delay(1000);//1S延时子程序
a=_crol_(a,1);
}
}
voiddelay(uintz)//1ms延时子程序,通过z值改变延时
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
单片机控制八个发光二极管并使其以1S时间间隔循环点亮,C语言中,把流水灯的循环方式以数组的形式存到了表中,然后调用,是很方便的,学校实验室都提倡这么写。延时参数是毫秒单位,很准确。
② 八种逻辑门电路符号是什么
基本逻辑门电路符号是:
“!”(逻辑非)、“&&”(逻辑与)、“||”(逻辑或)是三种逻辑运算符。
“逻辑与”相当于生活中说的“并且”,就是两个条件都同时成立的情况下“逻辑与”的运算结果才为“真”。
“门”是这样的一种电路:它规定各个输入信号之间满足某种逻辑关系时,才有信号输出,通常有下列三种门电路:与门、或门、非门(反相器)。
(2)八个电路扩展阅读;
在逻辑中,经常使用一组符号来表达逻辑结构。因为逻辑学家非常熟悉这些符号,他们在使用的时候没有解释它们。所以,给学逻辑的人的下列表格,列出了最常用的符号、它们的名字、读法和有关的数学领域。此外,第三列包含非正式定义,第四列给出简短的例子。
要注意,在一些情况下,不同的符号有相同的意义,而同一个符号,依赖于上下文,有不同的意义。