具體實(shí)現(xiàn)功能:
利用51單片機(jī)流水燈和LCD1602實(shí)現(xiàn)表白功能。
設(shè)計介紹
51單片機(jī)簡介
51單片是一種低功耗、高性能CMOS-8位微控制器,具有8K可編程Flash存儲器,使得其為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。
51系列單片機(jī)具有以下標(biāo)準(zhǔn)功能:
8k字節(jié)Flash,512字節(jié)RAM,
內(nèi)置4KB EEPROM,
MAX810復(fù)位電路,
三個16位定時器/計數(shù)器,
一個6向量2級中斷結(jié)構(gòu),
全雙工串行口。
另外, 51系列在空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)停止工作,直到下一個中斷或硬件復(fù)位為止。本設(shè)計所使用的芯片可兼容以下所有的51系列單片機(jī)(包括AT系列和STC系列)。
設(shè)計思路
文獻(xiàn)研究法:搜集整理相關(guān)研究資料,閱讀文獻(xiàn),為研究做準(zhǔn)備;
調(diào)查研究法:通過調(diào)查、分析、具體實(shí)驗(yàn)等方法,發(fā)現(xiàn)相關(guān)存在問題和解決辦法;
比較分析法:比較不同設(shè)計的具體原理,以及同一類傳感器性能的區(qū)別,分析系統(tǒng)的研究現(xiàn)狀與發(fā)展前景;
軟硬件設(shè)計法:通過軟硬件設(shè)計實(shí)現(xiàn)硬件,最后測試各項(xiàng)功能是否滿足要求。
單片機(jī)類設(shè)計論文參考模板:
畢設(shè)無憂|單片機(jī)類畢設(shè)論文模板
設(shè)計內(nèi)容
仿真圖(protues8.7)
本設(shè)計利用protues8.7軟件實(shí)現(xiàn)仿真設(shè)計,具體如圖。
注:免費(fèi)分享,請按照下圖自行繪制仿真!!
protues8.7軟件資料及仿真解決辦法:
proteus8.7安裝及破解教程(內(nèi)附安裝包)
protues仿真常見問題解決方案
Protues8.7簡易教程
程序(Keil5)
本設(shè)計利用KEIL5軟件實(shí)現(xiàn)程序設(shè)計。
注:全部代碼免費(fèi)分享,請自行建立工程!!
本設(shè)計由C語言編寫,全部代碼如下:
#include//包含頭文件 #include #define uchar unsigned char #define uint unsigned int #define SPEED 10 //流水燈的速度 sbit RS = P2^2;//命令數(shù)據(jù)選擇腳 sbit RW = P2^3;//讀寫操作腳 sbit E = P2^4;//使能腳 低電平有效 /****延時****/ void delay(uint i) { uint j=1000; while(i--) { j=1000; while(j--); } } void delayms(uint z) //毫秒 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } uchar LED_WATER1() { static uchar temp1=0x01,temp2=0x80; P1=~temp1; temp1=_crol_(temp1,1); P3=~temp2; temp2=_cror_(temp2,1); delay(SPEED); if(temp1==0x01)//循環(huán)了一圈 {return 1;} else return 0; } void write_command(uchar command)//寫指令函數(shù) { RW = 0;//寫 RS = 0;//指令 E = 1;//拉高電平 P0 = command;//送指令 delay(20);//延時 E = 0;//拉低電平 輸出有效 RW = 1;//拉高電平 } void write_data(uchar date)// { RW = 0;//寫 RS = 1;//數(shù)據(jù) E = 1;//拉高電平 P0 = date;//送數(shù)據(jù) delay(20);//延時 E = 0;//使能腳 低電平寫入有效 RW = 1;//拉高電平 } void display_string(uchar *p)//顯示地址函數(shù) { while(*p)//循環(huán)這個p { write_data(*p);//送數(shù)據(jù) 為p p++;//每次p自加一 } } void gotoxy(unsigned y,unsigned x)//地址位置定義 { if(y == 1) // 如果y等于1 write_command(0x80+x);//地址就是0x80加上x else if(y == 2) //如果y等于1 write_command(0x80+0x40+x);//地址就是0x80+0x40(第二行)加上x } void F1602_init(void)//初始化函數(shù) { write_command(0x38);//兩行,每行16字符,每個字符5*7點(diǎn)陣 write_command(0x0C);//開光標(biāo)及進(jìn)入光標(biāo)設(shè)置 write_command(0x06C);//設(shè)置光標(biāo)和地址自動加一 } void F1602_clear()//清屏 { write_command(0x01);//寫指令 0x01 清屏 write_command(0x02);//寫指令 0x02 光標(biāo)回歸原點(diǎn) 但內(nèi)容不變 } uchar LED_WATER2() { static uchar temp1=0x01,temp2=0x01; P1=~temp1; temp1=_crol_(temp1,1); P3=~temp2; temp2=_crol_(temp2,1); delay(SPEED); if(temp1==0x01) {return 1;} else return 0; } uchar LED_WATER3() { static uchar temp1=0x07,temp2=0x07; P1=~temp1; temp1=_crol_(temp1,1); P3=~temp2; temp2=_crol_(temp2,1); delay(SPEED); if(temp1==0x07) {return 1;} else return 0; } uchar LED_WATER4() { static uchar temp1=0x07,temp2=0xe0; P1=~temp1; temp1=_crol_(temp1,1); P3=~temp2; temp2=_cror_(temp2,1); delay(SPEED); if(temp1==0x07)//循環(huán)了一圈 {return 1;} else return 0; } //主函數(shù) void main() { F1602_init();//初始化1602 F1602_clear();//清屏 LED_WATER1(); delayms(500); LED_WATER2(); delayms(500); LED_WATER3(); delayms(500); LED_WATER4(); display_string(" I LOVE YOU ");//執(zhí)行顯示地址函數(shù) gotoxy(2,0);//設(shè)定地址 display_string(" MY GIRL "); while(1) { LED_WATER1(); delayms(500); LED_WATER2(); delayms(500); LED_WATER3(); delayms(500); LED_WATER4(); } }
運(yùn)行結(jié)果如圖:
電子工程師成長日記
-
微控制器
+關(guān)注
關(guān)注
48文章
7953瀏覽量
155125 -
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44992瀏覽量
650584 -
51單片機(jī)
+關(guān)注
關(guān)注
277文章
5711瀏覽量
127411 -
流水燈
+關(guān)注
關(guān)注
21文章
433瀏覽量
60521 -
LCD1602
+關(guān)注
關(guān)注
14文章
607瀏覽量
53517
原文標(biāo)題:設(shè)計分享|單片機(jī)流水燈表白
文章出處:【微信號:電子工程師成長日記,微信公眾號:電子工程師成長日記】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
lcd1602與單片機(jī)連接圖,基于51單片機(jī)的lcd1602液晶顯示屏連接電路圖
基于單片機(jī)的流水燈介紹_51單片機(jī)流水燈的五種實(shí)現(xiàn)方法

使用51單片機(jī)實(shí)現(xiàn)LCD1602液晶顯示實(shí)驗(yàn)的程序免費(fèi)下載

使用51單片機(jī)實(shí)現(xiàn)LCD1602靜態(tài)顯示的程序免費(fèi)下載

使用51單片機(jī)應(yīng)用LCD1602的程序免費(fèi)下載

使用51單片機(jī)實(shí)現(xiàn)LCD1602顯示屏顯示的仿真文件免費(fèi)下載
基于51單片機(jī)的LCD1602顯示proteus實(shí)驗(yàn)
51單片機(jī)驅(qū)動LCD1602顯示原理及例程

51單片機(jī)LCD1602顯示實(shí)驗(yàn)

51單片機(jī)與LCD1602接口電路與程序

51單片機(jī)怎么顯示當(dāng)前時間_(記錄)51單片機(jī)——LCD1602液晶顯示模塊

51單片機(jī)流水燈實(shí)驗(yàn)

51單片機(jī)驅(qū)動——LCD1602

51單片機(jī)如何跳出wile循環(huán)_51單片機(jī)(九)匯編指令

評論