大香蕉综合在线观看视频-日本在线观看免费福利-欧美激情一级欧美精品性-综合激情丁香久久狠狠

好房網(wǎng)

網(wǎng)站首頁知識(shí)問答 >正文

今日更新1602引腳圖(1602液晶模塊引腳)

2022-05-13 06:02:13 知識(shí)問答來源:
導(dǎo)讀 文章目錄[隱藏]模塊選擇模塊選擇分析設(shè)計(jì)理念產(chǎn)品布線部分世代部分代碼分析摘要602引腳圖(1602液晶模塊引腳)原心有電子企業(yè)專賣店2021-...

 

文章目錄[隱藏]

模塊選擇模塊選擇分析設(shè)計(jì)理念產(chǎn)品布線部分世代部分代碼分析摘要

602引腳圖(1602液晶模塊引腳)原心有電子企業(yè)專賣店2021-06-01 18:38

模塊選擇

模塊選擇分析

設(shè)計(jì)理念

產(chǎn)品布線

部分代碼分析

摘要

模塊選擇

在設(shè)計(jì)電子鐘的時(shí)候,采用了最基本的單片機(jī)51,使用的芯片是STC89C52RC,開發(fā)板使用最小的系統(tǒng)板,也方便朋友們了解接線和原理。簡單明了。時(shí)鐘芯片的選擇選用DS1302的時(shí)鐘模塊,布線中采用杜邦線連接,顯示采用低功耗的LCD1602。LCD1602的對(duì)比度調(diào)節(jié)選用單匝精度的10K電阻。

模塊選擇分析

模塊的具體圖片如下:

DS1302時(shí)鐘芯片是美國DALLAS公司推出的具有涓流充電能力的低功耗實(shí)時(shí)時(shí)鐘電路DS1302的結(jié)構(gòu)、工作原理和應(yīng)用??梢杂?jì)時(shí)年、月、日、周日、時(shí)、分、秒,具有閏年補(bǔ)償功能;

LCD1602液晶顯示器是一種工業(yè)字符液晶顯示器,可以同時(shí)顯示16x02或32個(gè)字符。(16列2行),上面一行剛好可以顯示年、月、日,下面一行可以顯示時(shí)鐘。

設(shè)計(jì)理念

簡介***lcd1602顯示實(shí)時(shí)時(shí)鐘,時(shí)鐘芯片的初始值可以在函數(shù)中設(shè)置。缺點(diǎn):這個(gè)函數(shù)因?yàn)闆]有添加其他函數(shù),比較簡單,校準(zhǔn)時(shí)間只能通過源碼來校準(zhǔn)。

流程:

在程序前端定義一個(gè)初始化的數(shù)組文件。注意,DS1302需要轉(zhuǎn)換成壓縮BCD碼存儲(chǔ),方便時(shí)鐘芯片初始化和芯片寫保護(hù)時(shí)調(diào)用數(shù)組。

讀寫LCD1602和DS1302的初始化序列代碼。由于DS51與LCD1602之間沒有直接的SPI通信,因此DS1302類似于LCD1602的三線式SPI通信,可以使用軟件進(jìn)行模擬通信。

取出DS1302讀取的數(shù)據(jù),顯示在LCD1602上。

產(chǎn)品布線

產(chǎn)品的接線如下圖所示。在接線中,LCD的數(shù)據(jù)端口使用單片機(jī)的P0端口,時(shí)鐘端口使用P2_0至P2 _ 3端口,DS1302使用P1_1至P1_3端口。具體效果和接線見下圖:

部分世代

部分代碼分析

串行通信字節(jié)發(fā)送分析:

如何將一個(gè)字節(jié)拆分成0101的二進(jìn)制位發(fā)送出去,分析如何將0101的二進(jìn)制位變成一個(gè)完整的字節(jié)。

首先,23 H=0010 0011B,最低位為1,最高位為0?,F(xiàn)在操作0x23&0x01,結(jié)果當(dāng)然是0x01。這時(shí)候我們要把數(shù)據(jù)線改成1,然后0x23右移一個(gè)二進(jìn)制位,結(jié)果就是11h = 001 0001b(這里很重要的一點(diǎn),數(shù)據(jù)右移,數(shù)據(jù)右移

假設(shè)上述數(shù)據(jù)右移兩次后,初始的23 H變成08 h = 0000 1000 B,現(xiàn)在對(duì)0x08&0x01繼續(xù)運(yùn)算的結(jié)果是0。此時(shí)數(shù)據(jù)線變?yōu)?,如此循環(huán)重復(fù)8次,就可以將一個(gè)字節(jié)分割成串行數(shù)據(jù),逐位傳輸。

接收解析:

假設(shè)串行數(shù)據(jù)首先發(fā)送最低位。首先一個(gè)數(shù)據(jù)00 H右移一個(gè)二進(jìn)制位,得到的數(shù)據(jù)當(dāng)然還是00 H。然后如果數(shù)據(jù)總線上的電平是1,那么此時(shí)00 H和80 H進(jìn)行OR運(yùn)算,結(jié)果是80 H,然后80 H在下一個(gè)電平右移一個(gè)二進(jìn)制位,結(jié)果是40 H,如果此時(shí)數(shù)據(jù)線的電平還是1,求和繼續(xù)到80 H。

時(shí)間序列分析

從上面的讀寫順序可以看出,讀取單個(gè)字節(jié)時(shí),是時(shí)鐘脈沖的下降沿脈沖信號(hào)。因此,在程序中,可以將下降沿脈沖信號(hào)變?yōu)闀r(shí)鐘信號(hào)的高電平,然后變?yōu)榈碗娖揭宰x取一個(gè)字節(jié)。一個(gè)字節(jié)有8位,for循環(huán)可以用于8位循環(huán)讀取。代碼如下:

u8?DS1302_Read_Byte(){??u8?i,?Byte?;??DS_CLK?=?1?;????????????????????????????????????????????//時(shí)鐘線拉高??Byte?=?0?;??for(?i=0;?i>=?1?;??????????????????????????????????????????//數(shù)據(jù)右移一個(gè)位????DS_CLK?=?0?;??????????????????????????????????????????//時(shí)鐘線拉低產(chǎn)生下降沿????if(?DS_IO==1?)??????????????????????????????????????????//判斷數(shù)據(jù)線上的值為1??????Byte?|=?0x80?;????????????????????????????????????????//字節(jié)寫入1????DS_CLK?=?1?;??????????????????????????????????????????//時(shí)鐘線拉高??}??return?Byte?;}

讀的時(shí)序正好與寫的時(shí)序相反,寫在上升沿進(jìn)行:

void?DS1302_Write_Byte(?u8?Byte?){??u8?i?;??for(?i=0;?i>=?1?;??????????????????????????????????????????//數(shù)據(jù)右移一個(gè)位????DS_CLK?=?0?;??????????????????????????????????????????//時(shí)鐘線復(fù)位????DS_CLK?=?1?;??????????????????????????????????????????//時(shí)鐘線拉高產(chǎn)生上升沿??}}

1: LCD1602初始化代碼

void?LCD_init(void)?{Write_Instruction(0x38);//8bit?interface,2line,5*7dotsDelay_xms(5);Write_Instruction(0x38);Delay_xms(5);Write_Instruction(0x38);Write_Instruction(0x08);//關(guān)顯示,不顯光標(biāo),光標(biāo)不閃爍Write_Instruction(0x01);//清屏Delay_xms(5);Write_Instruction(0x04);//寫一字符,整屏顯示不移動(dòng)//Write_Instruction(0x05);//寫一字符,整屏右移//Write_Instruction(0x06);//寫一字符,整屏顯示不移動(dòng)//Write_Instruction(0x07);//寫一字符,整屏左移Delay_xms(5);//Write_Instruction(0x0B);//關(guān)閉顯示(不顯示字符,只有背光亮)Write_Instruction(0x0C);//開顯示,光標(biāo)、閃爍都關(guān)閉//Write_Instruction(0x0D);//開顯示,不顯示光標(biāo),但光標(biāo)閃爍//Write_Instruction(0x0E);//開顯示,顯示光標(biāo),但光標(biāo)不閃爍//Write_Instruction(0x0F);//開顯示,光標(biāo)、閃爍均顯示}

2: DS1302寫初始值代碼是因?yàn)榍懊嬗幸粋€(gè)定義初始化時(shí)鐘的數(shù)組,在先關(guān)閉芯片寫保護(hù)的情況下可以直接寫DS1302時(shí)鐘的初始值。

void?ds1302_write_time(void)?{ds1302_write_byte(ds1302_control_add,0x00);//關(guān)閉寫保護(hù)?ds1302_write_byte(ds1302_sec_add,0x80);//暫停時(shí)鐘?//ds1302_write_byte(ds1302_charger_add,0xa9);????//涓流充電?ds1302_write_byte(ds1302_year_add,time_buf[1]);//年?ds1302_write_byte(ds1302_month_add,time_buf[2]);//月?ds1302_write_byte(ds1302_date_add,time_buf[3]);//日?ds1302_write_byte(ds1302_hr_add,time_buf[4]);//時(shí)?ds1302_write_byte(ds1302_min_add,time_buf[5]);//分ds1302_write_byte(ds1302_sec_add,time_buf[6]);//秒ds1302_write_byte(ds1302_day_add,time_buf[7]);//周?ds1302_write_byte(ds1302_control_add,0x80);//打開寫保護(hù)?????}

摘要

在這個(gè)51電子鐘的設(shè)計(jì)過程中,沒有使用校準(zhǔn)和調(diào)試的按鍵等其他按鈕。如果需要使用按鍵進(jìn)行調(diào)試,可以基于這段代碼添加case函數(shù),做一個(gè)帶蜂鳴器和中斷功能的鬧鐘。如果你需要完整的代碼,你可以從下面的消息郵箱中獲得。這類文章可以一直關(guān)注很久。如果你喜歡他們,歡迎指出任何錯(cuò)誤。

目前上述的內(nèi)容應(yīng)該能夠?yàn)榇蠹医獯鸪龃蠹覍?duì)于1602引腳圖(1602液晶模塊引腳)的疑惑了,所以如果大家還想要了解更多的知識(shí)內(nèi)容,也可以關(guān)注本站其他文章進(jìn)行了解哦。


版權(quán)說明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!


標(biāo)簽:

熱點(diǎn)推薦
熱評(píng)文章
隨機(jī)文章