一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用51單片機(jī)流水燈和LCD1602實(shí)現(xiàn)表白功能

電子工程師成長日記 ? 來源:電子工程師成長日記 ? 2023-08-17 09:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

具體實(shí)現(xiàn)功能:

利用51單片機(jī)流水燈和LCD1602實(shí)現(xiàn)表白功能。

8d79258e-3c37-11ee-ac96-dac502259ad0.gif

設(shè)計介紹

8daa857a-3c37-11ee-ac96-dac502259ad0.png

51單片機(jī)簡介

51單片是一種低功耗、高性能CMOS-8位微控制器,具有8K可編程Flash存儲器,使得其為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。

51系列單片機(jī)具有以下標(biāo)準(zhǔn)功能:

8k字節(jié)Flash,512字節(jié)RAM,

32位I/O口線,看門狗定時器,

內(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系列)。

8dc348e4-3c37-11ee-ac96-dac502259ad0.png

設(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)分享,請按照下圖自行繪制仿真!!

8df301ba-3c37-11ee-ac96-dac502259ad0.png

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é)果如圖:

8dfc76be-3c37-11ee-ac96-dac502259ad0.png

電子工程師成長日記

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(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)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    51單片機(jī)流水燈程序

    51單片機(jī)流水燈程序 51單片機(jī)流水燈程序
    發(fā)表于 12-21 15:52 ?174次下載

    lcd1602單片機(jī)連接圖,基于51單片機(jī)lcd1602液晶顯示屏連接電路圖

     LCD1602是一種工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。LCD1602液晶顯示原理 LCD1602液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進(jìn)行控制,有
    發(fā)表于 10-20 11:33 ?14.2w次閱讀

    基于單片機(jī)流水燈介紹_51單片機(jī)流水燈的五種實(shí)現(xiàn)方法

    本文為大家?guī)砦宸N51單片機(jī)流水燈實(shí)現(xiàn)方法。
    發(fā)表于 01-06 10:23 ?5.2w次閱讀
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>流水燈</b>介紹_<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>流水燈</b>的五種<b class='flag-5'>實(shí)現(xiàn)</b>方法

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)實(shí)現(xiàn)LCD1602液晶顯示實(shí)驗(yàn)的程序免費(fèi)下載。
    發(fā)表于 09-18 17:20 ?16次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>LCD1602</b>液晶顯示實(shí)驗(yàn)的程序免費(fèi)下載

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)實(shí)現(xiàn)LCD1602靜態(tài)顯示的程序免費(fèi)下載。
    發(fā)表于 09-02 17:28 ?8次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>LCD1602</b>靜態(tài)顯示的程序免費(fèi)下載

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)應(yīng)用LCD1602的程序免費(fèi)下載。
    發(fā)表于 06-21 17:43 ?17次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>應(yīng)用<b class='flag-5'>LCD1602</b>的程序免費(fèi)下載

    使用51單片機(jī)實(shí)現(xiàn)LCD1602顯示屏顯示的仿真文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的使用51單片機(jī)實(shí)現(xiàn)LCD1602顯示屏顯示的仿真文件免費(fèi)下載。
    發(fā)表于 03-23 11:05 ?74次下載

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

    基于51單片機(jī)LCD1602顯示proteus實(shí)驗(yàn)
    發(fā)表于 04-30 10:14 ?39次下載

    51單片機(jī)驅(qū)動LCD1602顯示原理及例程

    51單片機(jī)驅(qū)動LCD1602顯示原理及例程1.LCD1602A介紹2.LCD1602A中文手冊 下載3.
    發(fā)表于 11-10 19:51 ?151次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>驅(qū)動<b class='flag-5'>LCD1602</b>顯示原理及例程

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

    實(shí)驗(yàn)?zāi)繕?biāo):掌握LCD1602顯示控制方法; 掌握利用Proteus單片機(jī)控制系統(tǒng)的仿真及調(diào)試方法。任務(wù):根據(jù)要求編寫程序,并寫出原理性注釋; 將檢查程序運(yùn)行的結(jié)果,分析一下是否正確; 完成所建
    發(fā)表于 11-10 20:06 ?25次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>LCD1602</b>顯示實(shí)驗(yàn)

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

    51單片機(jī)LCD1602接口電路與程序一、工作方式:間接工作方式。二、實(shí)現(xiàn)功能:顯示“Hope the epidemic will pas
    發(fā)表于 11-12 14:36 ?26次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>與<b class='flag-5'>LCD1602</b>接口電路與程序

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

    51單片機(jī)怎么顯示當(dāng)前時間_(記錄)51單片機(jī)——LCD1602液晶顯示模塊
    發(fā)表于 11-16 15:06 ?30次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>怎么顯示當(dāng)前時間_(記錄)<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>——<b class='flag-5'>LCD1602</b>液晶顯示模塊

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

    基于51單片機(jī)流水燈實(shí)驗(yàn) 我們知道通過編寫程序?qū)?b class='flag-5'>51單片機(jī)進(jìn)行控制,完成流水燈實(shí)驗(yàn)的方式有許多
    發(fā)表于 11-20 17:51 ?66次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>流水燈</b>實(shí)驗(yàn)

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

    51單片機(jī)驅(qū)動——LCD16021.描述51單片機(jī)控制LCD1602屏幕顯示測量數(shù)據(jù)、固定字符串
    發(fā)表于 11-21 09:06 ?22次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>驅(qū)動——<b class='flag-5'>LCD1602</b>

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

    設(shè)計數(shù)碼管Chenglin Li:51單片機(jī)(四)匯編語言設(shè)計定時器Chenglin Li:51單片機(jī)(五)利用定時器
    發(fā)表于 11-22 20:21 ?73次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>如何跳出wile循環(huán)_<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>(九)匯編指令