|
|
顯示芯片用max7219 ,時(shí)鐘芯片采用DS1302.溫度芯片采用18b20 ,光敏電阻采用4516
附原理圖,和程序代碼,
新建文件夾IMG_20210319_130505.jpg (3.06 MB, 下載次數(shù): 69)
下載附件
2021-3-19 13:08 上傳
新建文件夾IMG_20210319_130459.jpg (2.88 MB, 下載次數(shù): 66)
下載附件
2021-3-19 13:08 上傳
新建文件夾IMG_20210319_130456.jpg (3.02 MB, 下載次數(shù): 91)
下載附件
2021-3-19 13:08 上傳
新建文件夾IMG_20210319_130451.jpg (2.79 MB, 下載次數(shù): 77)
下載附件
2021-3-19 13:08 上傳
新建文件夾IMG_20210319_130442.jpg (3.04 MB, 下載次數(shù): 55)
下載附件
2021-3-19 13:08 上傳
新建文件夾IMG_20210319_130436.jpg (2.79 MB, 下載次數(shù): 82)
下載附件
2021-3-19 13:08 上傳
單片機(jī)源程序如下:
- #include "all.h"
- //======================================
- void Write_Max7219_byte(char DATA)
- {
- char i;
- Max7219_pinCS=0; //CS=0有效,CS=1鎖存
- for(i=8;i>=1;i--)
- {
- Max7219_pinCLK=0;
- Max7219_pinDIN=DATA&0x80; //&10000000, 編譯器對(duì)位操作的理解:非0即為1
- DATA=DATA<<1;
- Max7219_pinCLK=1; //上升沿把數(shù)據(jù)送出去
- }
- }
- //-------------------------------------------
- /*向M第一片MAX7219寫(xiě)入數(shù)據(jù)*/
- void Write_Max7219_1(char add1,char dat1)
- {
- Max7219_pinCS=0;
- Write_Max7219_byte(add1); //寫(xiě)入地址,即數(shù)碼管編號(hào)
- Write_Max7219_byte(dat1); //寫(xiě)入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
- Max7219_pinCS=1;
- }
- //===========================================
- //初始化
- void Init_MAX7219()
- {
- Write_Max7219_1(0x09, 0xff); //譯碼方式:BCD碼
- //Write_Max7219_1(0x0a, 0xf0); //亮度
- Write_Max7219_1(0x0b, 0x05); //掃描界限;8個(gè)數(shù)碼管顯示
- Write_Max7219_1(0x0c, 0x01); //掉電模式:0,普通模式:1
- Write_Max7219_1(0x0f, 0x00); //顯示測(cè)試:1;測(cè)試結(jié)束,正常顯示:0
- }
復(fù)制代碼- #include "all.h"
- //*************************************************************
- //主晶振在20-35之間
- //低于20MHZ 溫度無(wú)法使用
- //自用晶振35MHZ
- //=================================================================
- //IO口初始化
- void io_init()
- {
- P1M0&=0x00;P1M1&=0x00; //P3口,準(zhǔn)雙
- P3M0&=0x00;P3M1&=0x00; //P1口,準(zhǔn)雙
- }
- //=================================
- //max7219顯示
- void max7219_xs()//max7219xs
- {
- static uint i;
- i++;
- if(i>2000)
- {
- Write_Max7219_1(1,TIME[2]>>4); //顯示時(shí)高位
- Write_Max7219_1(2,TIME[2]&0X0F); //顯示時(shí)低位不帶小數(shù)點(diǎn),
- Write_Max7219_1(3,TIME[1]>>4);//顯示分高位
- Write_Max7219_1(4,TIME[1]&0X0F);//顯示分低位
- Write_Max7219_1(5,TIME[0]>>4);//顯示秒高位
- Write_Max7219_1(6,TIME[0]&0x0f);//顯示秒。低位
- }
- if(i>4000)
- {
- i=0;P15=1;
- Write_Max7219_1(1,TIME[2]>>4); //顯示時(shí)高位
- Write_Max7219_1(2,((TIME[2]&0X0F)|0x80)); //顯示時(shí)低位,帶小數(shù)點(diǎn),
- Write_Max7219_1(3,TIME[1]>>4);//顯示分高位
- Write_Max7219_1(4,TIME[1]&0X0F);//顯示分低位
- Write_Max7219_1(5,TIME[0]>>4);//顯示秒高位
- Write_Max7219_1(6,TIME[0]&0x0f);//顯示秒。低位
- }
- }
- void WDT_CONTR_allog() //看門狗定時(shí)器 2.5s定時(shí)
- {
- WDT_CONTR=0x36;
- }
- void main()
- {
- io_init(); //io口初始化
- Init_MAX7219(); //max7219初 始化
- anjian();//主按鍵使用,屏蔽所有功能無(wú)法使用
- adc_init(); //adc調(diào)節(jié)亮度初始化
- Ds1302Init(); //ds1302初始化賦值初始時(shí)間
- while(1)
- {
- Ds1302ReadTime(); //ds1302讀取
- WDT_CONTR_allog();//看門狗定時(shí)器
- adc_ld(); //亮度調(diào)節(jié)
- anjian_0();//顯示時(shí)間
- anjian_1();//顯示日期
- anjian_2();//顯示周
- anjian_3();//判斷一次
- anjian_4();//顯示溫度
- anjian_5();//調(diào)整年
- anjian_6();//調(diào)整月
- anjian_7();//調(diào)整日
- anjian_8();//調(diào)整時(shí)
- anjian_9();//調(diào)整分
- anjian_10();//調(diào)整秒
- anjian_11();//調(diào)整周
- anjian_12();//返回顯示時(shí)間
- anjian_k3(); //返回顯示時(shí)間
-
-
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
原理圖.rar
(18.53 KB, 下載次數(shù): 50)
2021-3-19 13:15 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
程序.rar
(91.28 KB, 下載次數(shù): 37)
2021-3-19 13:15 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|