① 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)八個電路擴展閱讀;
在邏輯中,經常使用一組符號來表達邏輯結構。因為邏輯學家非常熟悉這些符號,他們在使用的時候沒有解釋它們。所以,給學邏輯的人的下列表格,列出了最常用的符號、它們的名字、讀法和有關的數學領域。此外,第三列包含非正式定義,第四列給出簡短的例子。
要注意,在一些情況下,不同的符號有相同的意義,而同一個符號,依賴於上下文,有不同的意義。