|
基于51單片機(jī)的實時時鐘,附上proteus仿真和源碼。
B45AFA6D-128A-424b-A904-5FA9B0E6A2AC.png (151.03 KB, 下載次數(shù): 59)
下載附件
2022-4-15 10:19 上傳
51hei.gif (296.9 KB, 下載次數(shù): 55)
下載附件
2022-4-15 16:46 上傳
有調(diào)節(jié)時間的按鈕 可調(diào)時分秒
單片機(jī)源程序如下:
- #include <reg51.h>
- #include <intrins.h>
- #include "MAX7221.h"
- sbit DIN7221 = P2^0; //MAX7221的數(shù)據(jù)端
- sbit CS7221 = P2^1; //MAX7221的片選端
- sbit CLK7221 = P2^2; //MAX7221的時鐘端
- //MAX7221的寫子程序(addr芯片地址,Data寫入數(shù)據(jù))
- void Wr_Max7221(unsigned char addr,unsigned char Data)
- {
- unsigned char i;
- CS7221=0; //片選有效
- for(i=0;i<8;i++) //寫8位地址
- {
- CLK7221=0; //時鐘低
- DIN7221=(addr&(0x80>>i))? 1:0; //先發(fā)高位,依次到低位
- _nop_();
- _nop_();
- CLK7221=1; //時鐘高,上升沿鎖數(shù)據(jù)
- _nop_();
- _nop_();
- }
-
- for(i=0;i<8;i++) //寫8位地址
- {
- CLK7221=0; //時鐘低
- DIN7221=(Data&(0x80>>i))? 1:0; //先發(fā)高位,依次到低位
- _nop_();
- _nop_();
- CLK7221=1; //時鐘高,上升沿鎖數(shù)據(jù)
- _nop_();
- _nop_();
- }
- CS7221=1; //片選無效
- }
- //MAX7221初始化程序
- void Init_Max7221(unsigned char mode,unsigned char intensity,unsigned char scanlimit,unsigned char shutdown)
- {
- Wr_Max7221(0x09,mode); //譯碼選擇,非BCD碼
- Wr_Max7221(0x0a,intensity); //亮度調(diào)節(jié)
- Wr_Max7221(0x0b,scanlimit); //顯示位數(shù)
- Wr_Max7221(0x0c,shutdown); //正常工作狀態(tài),關(guān)斷模式
- }
- //MAX7221顯示子程序(由于此工程中未用到,所以注釋掉了)
- //void Disp_Max7221(unsigned char *buffer,unsigned char num)
- //{
- // unsigned char i;
- // for(i=0;i<num;i++) //數(shù)碼管顯示
- // {
- // Wr_Max7221(i+1,*(buffer+i)); //調(diào)mAX7221的寫子程序
- // }
- //}
復(fù)制代碼 Keil代碼與Proteus8.8仿真下載:
Proteus里面雙擊單片機(jī)重新選擇hex文件路徑"實時時鐘\C51\Objects"
實時時鐘.7z
(92.32 KB, 下載次數(shù): 32)
2022-4-15 16:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|