資料介紹
方案介紹
? ? ? ?本程序適合單片機初學入門(新手)練習用,程序注解詳細,非常容易看明白。資料免費,有需要者可以免費獲取單片機Keil4軟件工程文件及仿真文件。
單片機源程序:
#include
#define uchar unsigned char
#define uint unsigned int
sbit k1=P1^1;?? ? //從上到下按鍵 ?
sbit k2=P1^2;?? ? //從下到上按鍵
sbit k3=P1^3;?? ? //加速按鍵
sbit k4=P1^4;?? ? //減速按鍵
sbit GND=P1^0;?? ??? ??? ??? ?
uint t;?? ??? ??? ?//定義延時變量
uchar n;?? ??? ?//定義方向標志位 n=1,從上到下;n=0,從下到上?? ? ?
/* 函數申明 -----------------------------------------------*/
void delay(uint z);?? ?//延時函數 ??
void key();?? ??? ??? ?//按鍵處理函數?
/*
********************************************************************************
** 函數名稱 : main(void)
** 函數功能 : 主函數
********************************************************************************
*/
void main()
{
?? ?uchar ?num;?? ??? ? ??? ??? ?//定義變量
?? ?delay(500);?? ??? ??? ??? ??? ? ??? ??? ?//延時
?? ?t=300;?? ??? ??? ??? ??? ??? ? ??? ??? ?//初始速度 值大,速度慢,值小,速率快
?? ?n=1;?? ??? ??? ??? ??? ??? ? ??? ??? ?//從上到下
?? ?GND=0;?? ??? ??? ??? ??? ??? ? ??? ??? ?//置按鍵接地端低電平
?? ?while(1)?? ??? ??? ??? ??? ? ??? ??? ?//主循環
?? ?{?? ??? ??? ??? ??? ??? ??? ? ?
?? ??? ?if(n==1)?? ??? ??? ??? ? ??? ??? ?//從上到下
?? ??? ?{
?? ??? ??? ?num++;?? ??? ??? ??? ??? ??? ?//循環變量加1
?? ??? ??? ?if(num>=3)?? ??? ??? ??? ??? ?//判斷循環變量大于3時 ,將循環變量置0
?? ??? ??? ?num=0;?? ??? ??? ??? ??? ??? ?//將循環變量置0
?? ??? ??? ?if(num==0)?? ??? ??? ??? ??? ?//判斷循環變量等于0時.點亮1,4,7
?? ??? ??? ?P0=0x6D;?? ??? ??? ??? ??? ?//點亮1,4,7 即01101101?
?? ??? ??? ?else
?? ??? ??? ?if(num==1)?? ??? ??? ??? ??? ?//判斷循環變量等于1時.點亮2,5,8
?? ??? ??? ?P0=0xB6;?? ??? ??? ??? ??? ?//點亮2,5,8 即10110110?
?? ??? ??? ?else
?? ??? ??? ?if(num==2)?? ??? ??? ??? ??? ?//判斷循環變量等于1時.點亮3,6
?? ??? ??? ?P0=0xDB;?? ??? ??? ??? ??? ?//點亮3,6 即11011011
?? ??? ??? ?delay(t); ? ?? ??? ??? ??? ?//延時
?? ??? ??? ?key();?? ??? ??? ??? ? ? ?? ??? ?//調用按鍵處理子程序
?? ??? ?}
?? ??? ?else?? ??? ??? ??? ??? ??? ? ? ?//從下到上
?? ??? ?{?
?? ??? ??? ?num++;?? ??? ??? ??? ??? ??? ?//循環變量加1
?? ??? ??? ?if(num>=3)?? ??? ??? ??? ??? ?//判斷循環變量大于3時 ,將循環變量置0
?? ??? ??? ?num=0;?? ??? ??? ??? ??? ??? ?//將循環變量置0
?? ??? ??? ?if(num==0)?? ??? ??? ??? ??? ?//判斷循環變量等于0時.點亮3,6
?? ??? ??? ?P0=0xDB;?? ??? ??? ??? ??? ?//點亮3,6 即11011011
?? ??? ??? ?else
?? ??? ??? ?if(num==1)?? ??? ??? ??? ??? ?//判斷循環變量等于1時.點亮2,5,8
?? ??? ??? ?P0=0xB6;?? ??? ??? ??? ??? ?//點亮2,5,8 即10110110?
?? ??? ??? ?else
?? ??? ??? ?if(num==2)?? ??? ??? ??? ??? ?//判斷循環變量等于1時.點亮1,4,7
?? ??? ??? ?P0=0x6D;?? ??? ??? ??? ??? ?//點亮1,4,7 即01101101 ?? ?
?? ??? ??? ?delay(t); ? ?? ??? ??? ??? ?//延時
?? ??? ??? ?key();?? ??? ??? ??? ? ? ?? ??? ?//調用按鍵處理子程序
?? ??? ?}
?? ?}
}
/*
********************************************************************************
** 函數名稱 : delay(uint z)
** 函數功能 : 延時函數
********************************************************************************
*/
void delay(uint z)
{
? ? uchar j;?? ??? ??? ??? ??? ??? ? //定義延時變量
? ? for(z;z>0;z--)?? ??? ??? ??? ??? ? //延時第一層循環
? ? ? ? for(j=200;j>0;j--);?? ??? ??? ? //延時第二層循環
}
void key()?? ??? ??? ?//按鍵處理函數?
{
? ? if(k1==0)?? ??? ??? ??? ?//按鍵按下
?? ?{
?? ??? ?delay(20);?? ??? ? ? ?//延時消除按鍵抖動
?? ??? ?while(k1==0);?? ??? ?//等待按鍵松開
?? ??? ?n=1;?? ??? ??? ??? ?//從上到下
?? ?}
? ? if(k2==0)?? ??? ??? ??? ?//按鍵按下
?? ?{
?? ??? ?delay(20);?? ??? ? ? ?//延時消除按鍵抖動
?? ??? ?while(k1==0);?? ??? ?//等待按鍵松開
?? ??? ?n=0;?? ??? ??? ??? ?//從下到上
?? ?}?? ??? ??
? ? if(k3==0)?? ??? ??? ??? ?//按鍵按下
?? ?{
?? ??? ?t=t+10;?? ??? ??? ??? ?//延時速度加10
?? ??? ?if(t>600)?? ??? ??? ?//限制延時速度最慢為1000
?? ??? ?t=600;?? ??? ??? ??? ?//限制延時系數1000
?? ?}
? ? if(k4==0)?? ??? ??? ??? ?//按鍵按下
?? ?{
?? ??? ?t=t-10;?? ??? ??? ??? ?//延時速度減10
?? ??? ?if(t<200)?? ??? ??? ?//限制延時速度最快為10
?? ??? ?t=200;?? ??? ??? ??? ?//限制延時系數10
?? ?}
}
- 基于51單片機的流水燈設計資料源程序文件 4次下載
- 基于AT89C51單片機的流水燈走馬燈 4次下載
- 51單片機流水燈實驗(改)
- 51單片機流水燈現象2
- 一個基于51單片機的流水燈程序
- 51單片機流水燈—keil5+Proteus仿真
- 51單片機流水燈實驗
- 51單片機 流水燈
- 51單片機流水燈教程。
- 【單片機基礎篇】51單片機流水燈原理
- 51單片機流水燈從原理圖到PCB轉化
- C51單片機流水燈C代碼
- AT89C51單片機流水燈c語言程序及詳解(掃盲教程)
- 基于51單片機的流水燈參考案例下載 43次下載
- 51單片機流水燈程序 170次下載
- 基于單片機的流水燈電路設計 5048次閱讀
- 如何使用51單片機制作一個心形流水燈 5402次閱讀
- 利用51單片機流水燈和LCD1602實現表白功能 1804次閱讀
- 基于51單片機按鍵控制流水燈設計 5307次閱讀
- 單片機控制輪流交替閃爍跑馬燈設計 2418次閱讀
- 利用單片機點亮流水燈實例解析 1w次閱讀
- 如何通過FPGA實現一個流水燈? 8213次閱讀
- 51單片機通過I/O口對LED進行控制的設計 5460次閱讀
- AT89C51單片機的流水燈控制設計 8938次閱讀
- 實現51單片機流水燈的三種詳細資料說明 6228次閱讀
- 51單片機如何實現流水燈?51單片機實現流水燈的三種方法詳細分析 9.7w次閱讀
- 單片機控制花樣流水燈原理圖及程序 5.5w次閱讀
- 51單片機流水燈電路圖大全(六款單片機流水燈電路圖介紹) 19.3w次閱讀
- 單片機C語言程序設計之TIMER0控制流水燈 4563次閱讀
- 如何更高效地實現51單片機流水燈? 1w次閱讀
下載排行
本周
- 1DeepSeek:從入門到精通
- 5.36 MB | 43次下載 | 1 積分
- 2中興通訊的PCB設計規范
- 23.03 MB | 5次下載 | 5 積分
- 3Altium-常用3D封裝庫(Step)接插件篇
- 4.95 MB | 2次下載 | 免費
- 4多款常用電子電路分享
- 7.96 MB | 1次下載 | 2 積分
- 5PC1902同步降壓LED驅動器規格書
- 0.99 MB | 1次下載 | 免費
- 6愛華TA314/317/327維修圖紙
- 3.54 MB | 1次下載 | 1 積分
- 7SOT8098-1塑料、表面貼裝封裝
- 180.25KB | 1次下載 | 免費
- 8SOD80C玻璃、全密封玻璃表面貼裝封裝規格書
- 126.34KB | 1次下載 | 免費
本月
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2DeepSeek:從入門到精通
- 5.36 MB | 43次下載 | 1 積分
- 3零死角玩轉STM32F103—指南者
- 26.78 MB | 42次下載 | 1 積分
- 4PIC12F629/675 數據手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 5PIC16F716 數據手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 6GD32F4xx用戶手冊
- 14.49MB | 14次下載 | 免費
- 7dsPIC33EDV64MC205電機控制開發板用戶指南
- 5.78MB | 8次下載 | 免費
- 8STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935124次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73813次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論