freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)的ds12c887的日歷時(shí)鐘顯示系統(tǒng)設(shè)計(jì)-資料下載頁

2024-12-03 19:08本頁面
  

【正文】 外圍電路設(shè)計(jì) [M]. 北京 :電子工業(yè)出版社. 2021. 24 附錄 附錄 1 基于 DS12C887的實(shí)時(shí)日歷時(shí)鐘顯示系統(tǒng)總電路圖 25 附錄 2 基于 DS12C887的實(shí)時(shí)日歷時(shí)鐘顯示系統(tǒng)程序 include include include define uchar unsigned char define uint unsigned int define NoOp 0x00 // 空操作寄存器 define Digit0 0x01 // 數(shù)碼管 1寄存器 define Digit1 0x02 // 數(shù)碼管 2寄存器 define Digit2 0x03 // 數(shù)碼管 3寄存器 define Digit3 0x04 // 數(shù)碼管 4寄存器 define Digit4 0x05 // 數(shù)碼管 5寄存 器 define Digit5 0x06 // 數(shù)碼管 6寄存器 define Digit6 0x07 // 數(shù)碼管 7寄存器 define Digit7 0x08 // 數(shù)碼管 8寄存器 define DecodeMode 0x09 // 譯碼模式寄存器 define Intensity 0x0a // 亮度寄存器 define ScanLimit 0x0b // 掃描位數(shù)寄存器 define ShutDown 0x0c // 低功耗模式寄存器 define DisplayTest 0x0f // 顯示測(cè)試寄存器 define ShutdownMode 0x00 // 低功耗方式 define NormalOperation 0x01 // 正常操作方式 define ScanDigit 0x07 // 掃描位數(shù)設(shè)置,顯示 8位數(shù)碼管 define DecodeDigit 0xff // 譯碼設(shè)置, 8位均為 BCD碼 define IntensityGrade 0x0a // 亮度級(jí)別設(shè)置 define TestMode 0x01 // 顯示測(cè)試模式 define TextEnd 0x00 // 顯示測(cè)試結(jié)束,恢復(fù)正常工作模式 /* DS12C887 內(nèi)部專用寄存器宏定義 */ define MIN XBYTE[0x0102] define HOUR XBYTE[0x0104] define DAYOFWEEK XBYTE[0x0106] define DAYOFMONTH XBYTE[0x0107] define MONTH XBYTE[0x0108] 26 define YEAR XBYTE[0x0109] define REG_A XBYTE[0x010a] define REG_B XBYTE[0x010b] sbit DIN = P1^0。 // 串行數(shù)據(jù)輸入 sbit CLK = P1^1。 // 串行時(shí)鐘 sbit LOAD1 = P1^2。 // 顯示數(shù)據(jù)鎖存控制 sbit LOAD2 = P1^3。 uchar DisBuffer[8]={0,0,0,0,0,0,0,0}。 // 顯示緩存 uchar year1=10,month1=6,dayofweek1=5,dayofmonth1=10,hour1=22,min1=17。 /* 芯片 DS12C887提供的日歷時(shí)鐘信息變量 */ uchar year2,month2,dayofweek2,dayofmonth2,hour2,min2。 void delay(uint z) {uint j,k。 for(j=z。j0。j) for(k=110。k0。k)。 } /* 向 MAX7219寫入字節(jié)( 8位) */ void SendChar (uchar ch) { uchar i,temp。 _nop_()。 for (i=0。i8。i++) { temp=champ。0x80。 ch=ch1。 if(temp) { DIN=1。 CLK=0。 CLK=1。 } else { DIN=0。 CLK=0。 CLK=1。 } } } 27 /* 向 MAX7219寫入字( 16位) */ void WriteWord (uchar addr,uchar num,int p) { if(p==1) { LOAD1=0。 _nop_()。 SendChar(addr)。 _nop_()。 SendChar(num)。 _nop_()。 LOAD1=1。 // 鎖存進(jìn)相應(yīng)寄存器 } else if(p==2) { LOAD2=0。 _nop_()。 SendChar(addr)。 _nop_()。 SendChar(num)。 _nop_()。 LOAD2=1。 // 鎖存進(jìn)相應(yīng)寄存器 } } /* MAX7219初始化 */ void InitDisplay (void) { WriteWord (ScanLimit,ScanDigit,1)。 // 設(shè)置掃描界限 WriteWord (DecodeMode,DecodeDigit,1)。 // 設(shè)置譯碼模式 WriteWord (Intensity,IntensityGrade,1)。 // 設(shè)置亮度 WriteWord (ShutDown,NormalOperation,1)。 // 設(shè)置為正常工作模式 WriteWord (ScanLimit,ScanDigit,2)。 // 設(shè)置掃描界限 WriteWord (DecodeMode,DecodeDigit,2)。 // 設(shè)置譯碼模式 WriteWord (Intensity,IntensityGrade,2)。 // 設(shè)置亮度 WriteWord (ShutDown,NormalOperation,2)。 // 設(shè)置為正常工作模式 } /* 設(shè)置日歷和時(shí)鐘函數(shù) */ void settime() 28 { REG_B = REG_B|0x80。 // SET=1,芯片 DS12C887處于設(shè)置狀態(tài) MIN = min1。 HOUR = hour1。 DAYOFWEEK = dayofweek1。 DAYOFMONTH = dayofmonth1。 MONTH = month1。 YEAR = year1。 REG_B = REG_Bamp。0x7f。 // SET=0,芯片 DS12C887恢復(fù)正常數(shù)據(jù)更新狀態(tài) } /* 獲取日歷時(shí)鐘函數(shù) */ void gettime() { while (REG_Aamp。0x80==0x00) // 直到 UIP=0時(shí),才能讀取日歷時(shí)鐘信息 { { min2 = MIN 。 hour2 = HOUR。 dayofweek2 = DAYOFWEEK。 dayofmonth2 = DAYOFMONTH。 month2 = MONTH。 year2 = YEAR。 } } /* 13位數(shù)碼管顯示年、月、日、星期、時(shí)、分 */ void display() { WriteWord (Digit0,0,1)。 WriteWord (Digit1,0,1)。 WriteWord (Digit2,0,1)。 WriteWord (Digit3,2,1)。 WriteWord (Digit4,0,1)。 WriteWord (Digit5,year2/10,1)。 WriteWord (Digit6,year2%10,1)。 WriteWord (Digit7,month2/10,1)。 WriteWord (Digit0,month2%10,2)。 WriteWord (Digit1,dayofmonth2/10,2)。 WriteWord (Digit2,dayofmonth2%10,2)。 WriteWord (Digit3,dayofweek2,2)。 29 WriteWord (Digit4,hour2/10,2)。 WriteWord (Digit5,hour2%10,2)。 WriteWord (Digit6,min2/10,2)。 WriteWord (Digit7,min2%2,2)。 } void main(void) { InitDisplay()。 // MAX7219初始化 WriteWord(DisplayTest,TestMode,1)。 // 開始顯示測(cè)試,點(diǎn)亮所有 LED delay(3000)。 // 延時(shí)約 3s WriteWord (DisplayTest,TextEnd,1)。 // 退出顯示測(cè)試模式 WriteWord(DisplayTest,TestMode,2)。 // 開始顯示測(cè)試,點(diǎn)亮所有 LED delay(3000)。 // 延時(shí)約 3s WriteWord (DisplayTest,TextEnd,2)。 // 退出顯示測(cè)試模式 /* 設(shè)置 DV DV DV0為 010,打開芯片 DS12C887內(nèi)部晶振 */ REG_A = REG_Aamp。0xaf。 // DV2=DV0=0 REG_A = REG_A|0x20。 // DV1=1 REG_B = REG_Bamp。0x7b。 // SET=0,時(shí)間數(shù)據(jù)正常更新; DM=0,二進(jìn)制數(shù)據(jù)模式 REG_B = REG_B|0x02。 // 寄存器 B的 24/12位置 1, 24小時(shí)時(shí)間模式 while (1) { /* 調(diào)用設(shè)置日歷時(shí)鐘函數(shù) */ settime()。 /* 調(diào)用獲取日歷時(shí)鐘函數(shù) */ gettime()。 /* 13位數(shù)碼管顯示日歷、星期和時(shí)間信息 */ display()。 } } 30 致 謝
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦