|
分享2個簡單的單片機跑馬燈 流水燈Proteus仿真下面是原理圖:
0.png (25.58 KB, 下載次數: 174)
下載附件
2016-10-10 16:52 上傳
單片機跑馬燈源程序:
- /********************************************************************
- 51黑電子論壇
- *********************************************************************/
- #include<reg52.h> //庫文件
- #define uchar unsigned char//宏定義無符號字符型
- #define uint unsigned int //宏定義無符號整型
- /********************************************************************
- 初始定義
- *********************************************************************/
- uchar temp; //定義字符型變量
- uchar a,b,i;
- /********************************************************************
- 延時函數
- *********************************************************************/
- void delay()//延時程序
- {
- uchar m,n,s;
- for(m=20;m>0;m--)
- for(n=20;n>0;n--)
- for(s=248;s>0;s--);
- }
- /********************************************************************
- 主函數
- *********************************************************************/
- void main()
- {
- while(1)
- {
- temp=0xfe; //11111110定義每次一個燈亮
- P3=P2=P0=P1=temp;//直接對1/0口賦值,使批輸出低電平。
- delay();//延時
- for(i=1;i<8;i++)//實現廣告燈的從右到左移動
- {
- a=temp<<i; //左移i位
- b=temp>>(8-i); //右移8-i位
- P3=P2=P0=P1=a|b;//相與求值
- delay();
- }
- for(i=1;i<8;i++)//實現廣告燈的從左到右移動
- {
- a=temp>>i; //右移i位
- b=temp<<(8-i); //左移8-i位
- P3=P2=P0=P1=a|b;//相與求值
- delay();
- }
- }
- }
-
- /********************************************************************
- 結束
- *********************************************************************/
復制代碼
單片機流水燈源程序:
- /********************************************************************
- 51黑電子論壇
- *********************************************************************/
- #include<reg52.h> //庫文件
- #define uchar unsigned char//宏定義無符號字符型
- #define uint unsigned int //宏定義無符號整型
- /********************************************************************
- 初始定義
- *********************************************************************/
- uchar temp; //定義字符型變量
- uchar a,b,i;
- /********************************************************************
- 延時函數
- *********************************************************************/
- void delay()//延時程序
- {
- uchar m,n,s;
- for(m=20;m>0;m--)
- for(n=20;n>0;n--)
- for(s=248;s>0;s--);
- }
- /********************************************************************
- 主函數
- *********************************************************************/
- void main()
- {
- temp=0xfe; //11111110定義每次一個燈亮
- while(1)
- {
- P3=P2=P0=P1=temp;//直接對1/0口賦值,使批輸出低電平。
- delay();//延時
- for(i=1;i<8;i++)//實現廣告燈的從右到左移動
- {
- a=temp<<i; //左移i位
- P3=P2=P0=P1=a;//相與求值
- delay();
- }
- }
- }
-
- /********************************************************************
- 結束
- *********************************************************************/
復制代碼
0.png (59.71 KB, 下載次數: 165)
下載附件
2016-10-10 16:55 上傳
所有資料包含仿真工程文件和源碼下載:
流水燈.rar
(49.86 KB, 下載次數: 59)
2016-10-10 16:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
跑馬燈.rar
(41.95 KB, 下載次數: 38)
2016-10-10 16:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|