這是畫的線路板,原理很簡單,看板子就能看明白原理圖
這是加工回來的線路板
焊接完成的樣子,請忽略焊接水平,哈哈
焊接電池,通電測試
溫度是利用DS3231M內(nèi)部傳感器測量的,
值得說明的是加入電量顯示,大家都知道15W204沒有AD
無法測量電壓,我是利用比較器測量(P5.5接100K和0.1u電容,定制板時忘記考慮了)RC充放電與內(nèi)部基準
電壓1.252V比較,加上定時器計算出的電量。
還是很實用的。
左鍵+鍵(P3.2),右鍵功能鍵(P3.3),
左鍵有3個功能:
1,平時屏幕是不顯示的(節(jié)省電能),按下按鍵,屏幕顯示5秒后重新進入待機。
2,常按不送手4秒,啟動手電筒功能(P5.4經(jīng)過PNP三極管輸出接LED燈)任意鍵短按一下LED滅。
3,啟動屏幕后,按功能鍵切換不同項目,再按左鍵加數(shù)字。
LED BIT P5_4 ;手電筒輸出端(H關,L開)
K0_1 BIT P3.2 ;+鍵(兼啟動顯示,和開手電筒)
K0_2 BIT P3.3 ;功能鍵
sda BIT p3.1 ;SDA數(shù)據(jù)信號
scl BIT p3.0 ;SCL時鐘信號
address equ 59h ;256字節(jié)地址數(shù)
SECOND EQU 30H
MINUTE EQU 31H
HOUR EQU 32H
WEEK EQU 33H
DAY EQU 34H
MONTH EQU 35H
YEARL EQU 36H
DIZHI_X EQU 5AH ;列地址
DIZHI_Y EQU 5BH ;頁地址(B0-B7)
SSDDADA EQU 5CH ;一字節(jié)暫存地址
ORG 00H
LJMP MAIN
ORG 03H
LJMP INT_0 ;中斷0
ORG 0BH
LJMP T0_0 ;定時器0
ORG 100H
;===================主程序===================================
MAIN:
CLR A
MOV P0M1,A ;設置準雙向口 =00--->準雙向口, 01--->推挽輸出
MOV P0M0,A ; =10--->高阻輸入, 11--->開漏輸出
MOV P1M1,A ;
MOV P1M0,A
MOV P2M1,A ;設置準雙向口
MOV P2M0,A
MOV P3M1,A ;設置準雙向口
MOV P3M0,A ;
MOV P5M1,#00000000B ;設置P5.5口高阻輸入
MOV P5M0,#00000000B
MOV SP, #70H;修改堆棧指針
MOV IE,#10000011B ;允許總中斷,允許外中斷0和定時器0
MOV TCON,#00000001B ;下降沿中斷0
MOV TMOD,#00000001B ;定時器0=模式1,定時模式
MOV AUXR,#00000010B ;定時器0/2都工作12分頻模式
MOV TL0,#low(65536-20000) ;12M晶振,20ms
MOV TH0,#HIGH(65536-20000);每20ms掃描一次按鍵程序6
MOV TL2,#0H ;設置定時初值
MOV TH2,#0H ;設置定時初值
MOV SP,#60H
SETB TR0 ;啟動定時器0
LCALL RESET ;初始化OLED0.91
LCALL QPCX ;清屏程序
LCALL shezhi_3231
mov 50h,#15 ;亮的秒數(shù),然后進入掉電節(jié)能
JMP STT
SAT: ;調(diào)整時間狀態(tài)下的屏顯程序
LCALL ZHUAN_T
LCALL DISP_A
MOV 40H,#16
MOV 41H,#16
MOV 42H,#16
MOV 43H,#16
MOV 44H,#16
MOV 45H,#16 ;
MOV 46H,#16
MOV 47H,#16
MOV 48H,#16
MOV 49H,#16
MOV 4AH,#16
MOV 4BH,#49
MOV 4CH,#50
MOV 4DH,#51
MOV 4EH,#52
MOV 4FH,#16
LCALL DISP_B
STT:
MOV A,R1
JNZ SAT ;時間調(diào)整狀態(tài)不掉電、不讀時間、加速刷新
lcall read_3231 ;讀時間程序
LCALL ZHUAN_0 ;數(shù)據(jù)轉(zhuǎn)換
lcall DISP_A ;第1排時間溫度顯示程序
LCALL ZHUAN_1 ;數(shù)據(jù)轉(zhuǎn)換
lcall DISP_B ;第2排星期日期電量顯示程序
LCALL DELAY1S
LCALL DIANLIANG ;電量讀取程序
djnz 50h,STT
MOV R7,#0AEH ;關閉OLED內(nèi)部升壓,節(jié)能
LCALL COMMAND
CLR TR0 ;關閉定時器0(防止中斷喚醒進入功能+鍵)
MOV PCON,#02H ;掉電模式
MOV 50H,#10 ;亮的秒數(shù),然后進入掉電節(jié)能
MOV R7,#0AFH ;打開顯示
LCALL COMMAND
SETB TR0 ;啟動定時器0
MOV R1,#0 ;強制恢復正常顯示
JMP STT
附上主程序和接線方式,下面是燒寫文件
(15W204振蕩頻率選擇6M)
全部程序51hei下載地址:
OLED時鐘.rar
(3.31 KB, 下載次數(shù): 68)
2020-12-17 16:39 上傳
點擊文件名下載附件
|