单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。单片机与数字万年历相结合,用于时间显示,温度测试等不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被检测数值的技术指标,从而能够大大提高产品的质量和数量。
我的博客去看看吧(电路) ;遥控器各按键数据码,可根据不同的遥控器修改对应的键码 muteM EQU 10h ;静音键 闹铃开/关 timerT EQU 0Ch ;菜单键 进入/退出设置状态 leftL EQU 46h ;左移键 rightR EQU 47h ;右移键 upU EQU 19h ;增加键 downD EQU 1dh ;减少键 d_off EQU 16H ;显示键 LED数码管显示/关闭 recall EQU 44H ;日历键 DS1302初始化操作 K_on BIT ;闹铃输出 LED1 BIT LED2 BIT LED3CLK BIT ;DS1302 LED4IO BIT RST BIT SECOND EQU 60H ;60H 秒 ;61h 分 ;62h 时 ;63h 日 ;64h 月 ;65h DAY ;66h 年 ;6Ah 闹分 from 00(1302) ;6BH 闹时 from 01(1302) ;*************************** ORG 0000H AJMP START ORG 0003H LJMP S_INT ;IRF ORG 000BH ;200Us LJMP P_INT ; ORG 001BH ;display LED LJMP DISPLAY ;**************************** ;main program ORG 0030H START: CLR RST MOV SP,#2AH SETB 05H CLR 06H SETB 07H;CLR 07H CLR 08H CLR 09H CLR 0AH CLR 0BH CLR 0CH SETB 0DH CLR 0EH CLR 0FH CLR 10H CLR 11H MOV R2,#00H ; MOV R3,#00H ; MOV TMOD,#12H MOV TL1,#0e5H ;wait MOV TH1,#0BeH MOV TH0,#3FH ;200uS 3f MOV TL0,#3FH SETB ET0 SETB ET1 setb pt0 SETB TR0 SETB TR1 SETB IT0 ; SETB EX0 ; CLR PX0 ;LCALL SET1302 ;初始化 MOV R1,#0C1H ;取定时参数从1302中 acall T_6061 MOV 6AH,A ;M MOV R1,#0C3H ACALL T_6061 MOV 6BH,A ;H MOV 61H,#0 MOV 62H,#0 SETB EA sjmp $ ;******************************** DISPLAY: PUSH ACC PUSH PSW MOV TL1,#0e0H ;wait how long to display (20ms) MOV TH1,#0b0H MOV dptr,#tab1 JB 0EH,DIS2 JB 0FH,DIS3 JB 10H,DIS4 JB 11H,DIS5 JNB 0DH,D_OUT JNB 08H,D_GO ;定时到时,显示闪烁 JNB 07H,D_OUT D_G MOV DPTR,#TAB1 MOV A,62H ANL A,#0FH MOV B,A MOV A,62H SWAP A ANL A,#07H MOVC A,@A+DPTR MOV P1,A CLR LED1 LCALL DL2M SETB LED1 MOV A,B MOVC A,@A+DPTR MOV C,07H MOV ;秒灯闪烁 MOV P1,A CLR LED2 LCALL DL2M SETB LED2 MOV dptr,#tab2 ;倒装LED字段表 MOV A,61H ANL A,#0FH MOV B,A MOV A,61H SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV C,07H MOV ;秒灯闪烁 MOV P1,A CLR LED3CLK LCALL DL2M SETB LED3CLK MOV dptr,#tab1 MOV A,B MOVC A,@A+DPTR MOV C,06H cpl c MOV ;闹铃指示灯 MOV P1,A CLR LED4IO LCALL DL2M SETB LED4IO D_OUT: SETB TR1 POP PSW POP ACC RETI ;********************* DIS2: AJMP DIS_2 DIS3: AJMP DIS_3 DIS4: AJMP DIS_4 DIS5: AJMP DIS_5 ;******************** DIS_2: MOV dptr,#tab1 ;显示设置小时 MOV 6FH,62H ACALL BCD_HEX MOV B,#10 DIV AB MOVC A,@A+DPTR MOV P1,A CLR LED1 LCALL DL2M SETB LED1 MOV A,B MOVC A,@A+DPTR MOV P1,A CLR LED2 LCALL DL2M SETB LED2 SETB TR1 POP PSW POP ACC RETI ;***************** DIS_3: MOV DPTR,#TAB2 ;显示设置分 MOV 6FH,61H ACALL BCD_HEX MOV B,#10 DIV AB MOVC A,@A+DPTR MOV P1,A CLR LED3CLK LCALL DL2M SETB LED3CLK MOV A,B MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV P1,A CLR LED4IO LCALL DL2M SETB LED4IO SETB TR1 POP PSW POP ACC RETI ;***************** DIS_4: MOV dptr,#tab1 ;显示设置闹时 JNB 07H,D4_OUT ;显示时闪烁 MOV A,6BH MOV B,#0AH DIV AB MOVC A,@A+DPTR MOV P1,A CLR LED1 LCALL DL2M SETB LED1 MOV A,B MOVC A,@A+DPTR MOV P1,A CLR LED2 LCALL DL2M SETB LED2 D4_OUT: SETB TR1 POP PSW POP ACC RETI ;*********************** DIS_5: MOV DPTR,#TAB2 JNB 07H,D5_OUT ;显示时闪烁 MOV A,6AH ;显示设置闹分 MOV B,#0AH DIV AB MOVC A,@A+DPTR MOV P1,A CLR LED3CLK LCALL DL2M SETB LED3CLK MOV DPTR,#TAB1 MOV A,B MOVC A,@A+DPTR MOV P1,A CLR LED4IO LCALL DL2M SETB LED4IO D5_OUT: SETB TR1 POP PSW POP ACC RETI ;***************************** DL2M: MOV 43H,#14H ; every LED(2ms) DL2: MOV 44H,#14H DL1: NOP NOP DJNZ 44H,DL1 DJNZ 43H,DL2 RET ;************************定时读取1302时间及判断闹铃时间是否到******* P_INT: PUSH ACC PUSH PSW INC R2 CJNE R2,#250D,P_OUT MOV R2,#00H INC R3 CJNE R3,#10D,P_OUT MOV R3,#00H CPL 07H MOV P1,#0FFH ACALL R_1302 OUT: JNB 06H,P_OUT MOV A,6BH MOV B,#10 DIV AB SWAP A ADD A,B CJNE A,62H,PP_OUT MOV A,6AH MOV B,#10 DIV AB SWAP A ADD A,B CJNE A,61H,PP_OUT SETB 08H ;定时到标志 MOV C,07H cpl c MOV K_ON,C P_OUT: POP PSW POP ACC RETI PP_OUT: SETB K_ON CLR 08H POP PSW POP ACC RETI ;************************有接收到遥控器信号******* S_INT:CLR EA PUSH ACC PUSH PSW PUSH DPH PUSH DPL PUSH 02H PUSH 03H MOV R6,#10D ; SB: ACALL YS1 JB DJNZ R6, SB JNB , $ ; ACALL YS2 ; JB MOV R1,#1AH ; MOV R2,#4D PP: MOV R3,#8D JJJJ: JNB ,$ ACALL YS1 MOV C, JNC UUU JB ,$ UUU: MOV A,@R1 RRC A MOV @R1,A DJNZ R3,JJJJ INC R1 DJNZ R2,PP ;------------------------------------- MOV A,1AH ; XRL A,#40h ;判断1AH的值是否等于遥控器低8位地址(40h) JNZ EXIT ; MOV A,1bH XRL A,#0bfh ;再判断高8位地址是否正确(0bfh) JNZ EXIT MOV A,1CH CPL A XRL A,1DH ;将1CH的值取反后和1DH比较 不同则无效丢弃(核对数据是否准确) JNZ EXIT ACALL DO ;相应按键的处理 EXIT: SETB EA POP 03H POP 02H POP DPL POP DPH POP PSW POP ACC RETI ;--------------------delay----------------------- YS1: MOV 70H,#16D ;延时1 D1: MOV 71H,#21D DJNZ 71H,$ DJNZ 70H,D1 RET YS2: MOV 70H,#09D ;延时2 D2: MOV 71H,#220D DJNZ 71H,$ DJNZ 70H,D2 RET ;--------------------------------------------------------- TAB: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ;TAB1 LED数码管显示表 TAB遥控器键值表(未用) ;TAB1: DB 3FH,11H,5EH,5BH,71H,6BH,6FH,19H,7FH,7bH,77H,7CH,39H,5EH,79H,71H tab1: DB 0C0H,0F9H,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0a7h,0a1h,86h,8EH TAB2: DB 0c0H,0f9H,64H,70H,59H,52H,42H ;倒装LED段码表 ;0CH 为设置标志,0DH为全显示标志,0EH为显示设置小时标志,0FH为显示设置分标志 ;10H 为显示设置闹时标志,11H为显示设置闹分标志 ;增加闹时静音功能 ;mute-10h,timer-0eh,left-46h,right-47h,up-19h,down-1dh D MOV A,1CH CJNE A,#TIMERT,REDO ;代码不是设置/退出键 JNB 0CH,SET1 ;是,则进入 CLR 0CH ;是,已经进入,则退出 SETB 0DH ;恢复正常显示 CLR 0EH CLR 0FH CLR 10H CLR 11H RET SET1: SETB 0CH SETB 0EH CLR 0DH CLR 0FH CLR 10H CLR 11H RET RED CJNE A,#MUTEM,REDO1 ;不是设置键的处理REDO1,2,3,4... LJMP MUTE ;MUTE? REDO1: CJNE A,#D_OFF,DO_SET2 LJMP DIS_OFF ;关闭显示 DO_SET2:JB 0CH,SET2 ;时间设置的处理 RET SET2: CJNE A,#UPU,SET2A LJMP INC1 ;+加(^) SET2A: CJNE A,#DOWND,SET2B LJMP DEC2 ;- 减 SET2B: CJNE A,#RIGHTR,SET2C LJMP RIGHT ;RIGHT右移(>) SET2C: CJNE A,#LEFTL,SET2D LJMP LEFT ;LEFT左移(<) SET2D: CJNE A,#RECALL,SET2EXT ;DS1302初始化 LJMP SET1302 SET2EXT:RET ;--------------------------------INC------------------------ INC1: JB 0EH,INCH JB 0FH,INCM JB 10H,INC_H JB 11H,INC_M RET INC_H: INC 6BH ;闹钟小时增加 MOV A,6BH CJNE A,#24D,INCH3 MOV 6BH,#0 INCH3: MOV R1,#0C2H MOV R0,6BH ACALL SETONE ;写入DS1302 RET INC_M: INC 6AH ;闹钟分增加 MOV A,6AH CJNE A,#60D,INCH4 MOV 6AH,#0 INCH4: MOV R1,#0C0H MOV R0,6AH ACALL SETONE ; RET INCH: ;INC 62H ; MOV 6FH,62H ACALL BCD_HEX INC A CJNE A,#24D,INCH1 MOV A,#0 INCH1: MOV 6FH,A ACALL HEX_BCD MOV 62H,A MOV R1,#84H MOV R0,62H ACALL SETONE ; RET INCM: ;INC 61H ; MOV 6FH,61H ACALL BCD_HEX INC A CJNE A,#60D,INCH2 MOV A,#0 INCH2: MOV 6FH,A ACALL HEX_BCD MOV 61H,A MOV R1,#82H MOV R0,61H ACALL SETONE ; RET ;----------------------------------DEC---------------------- DEC2: JB 0EH,DECH JB 0FH,DECM JB 10H,DEC_H JB 11H,DEC_M RET DECH: MOV 6FH,62H ACALL BCD_HEX DEC A CJNE A,#0FFH,DECH1 MOV A,#23 DECH1: MOV 6FH,A ACALL HEX_BCD MOV 62H,A MOV R1,#84H MOV R0,62H ACALL SETONE RET DECM: MOV 6FH,61H ACALL BCD_HEX DEC A CJNE A,#0FFH,DECM1 MOV A,#59 DECM1: MOV 6FH,A ACALL HEX_BCD MOV 61H,A MOV R1,#82H MOV R0,61H ACALL SETONE RET DEC_H: DEC 6BH MOV A,6BH CJNE A,#0FFH,DECH3 MOV 6BH,#23D DECH3: MOV R1,#0C2H MOV R0,6BH ACALL SETONE RET DEC_M: DEC 6AH MOV A,6AH CJNE A,#0FFH,DECH4 MOV 6AH,#59D DECH4: MOV R1,#0C0H MOV R0,6AH ACALL SETONE RET ;--------------------------------RIGHT---------------------- RIGHT: JB 0EH,RIGHT1 JB 0FH,RIGHT2 JB 10H,RIGHT3 JB 11H,RIGHT4 RET ;右移 RIGHT1: CLR 0EH SETB 0FH RET RIGHT2: CLR 0FH SETB 10H RET RIGHT3: CLR 10H SETB 11H RET RIGHT4: CLR 11H SETB 0EH RET ;--------------------------------LEFT----------------------- LEFT: JB 0EH,LEFT1 JB 0FH,LEFT2 JB 10H,LEFT3 JB 11H,LEFT4 RET ;左移 LEFT1: SETB 11H CLR 0EH RET LEFT2: SETB 0EH CLR 0FH RET LEFT3: SETB 0FH CLR 10H RET LEFT4: SETB 10H CLR 11H RET ;------------------------------MUTE-------------- MUTE: setb k_ON CPL 06H ;静音 CLR 08H RET ;-----------------------------DISPLAY OFF-------- DIS_OFF:CLR ET1 CPL 05H JNB 05H,REDORE SETB ET1 REDORE: RET ;------------------------------------初始化1302 SET1302: CLR RST ;2002年1月1日12:00:00 CLR LED3CLK MOV SECOND,#0 MOV 61H,#0 MOV 62H,#18 ; MOV 63H,#1 MOV 64H,#1 MOV 65H,#1 MOV 66H,#2 SETB RST MOV A,#8EH LCALL R_BIT MOV A,#00H LCALL R_BIT SETB LED3CLK CLR RST MOV R0,#SECOND MOV R7,#7 MOV R1,#80H SET1302A:CLR RST CLR LED3CLK SETB RST MOV A,R1 LCALL R_BIT MOV A,@R0 LCALL R_BIT INC R0 INC R1 INC R1 SETB LED3CLK CLR RST DJNZ R7,SET1302A CLR RST CLR LED3CLK sETB LED3CLK nop CLR RST nop clr led3clk SETB RST MOV A,#90H LCALL R_BIT MOV A,#10100101B ;充电器设置 LCALL R_BIT SETB LED3CLK CLR RST CLR LED3CLK SETB RST MOV A,#8EH LCALL R_BIT MOV A,#80H LCALL R_BIT SETB LED3CLK CLR RST RET ;----------------------读取一RAM ------ T_6061: CLR RST CLR LED3CLK SETB RST MOV A,R1 LCALL R_BIT LCALL W_BIT SETB LED3CLK CLR RST RET ;----------------------------- R_1302: MOV R0,#SECOND MOV R7,#7 MOV R1,#81H R_1302A: CLR RST CLR LED3CLK SETB RST MOV A,R1 LCALL R_BIT LCALL W_BIT MOV @R0,A INC R0 INC R1 INC R1 SETB LED3CLK CLR RST DJNZ R7,R_1302A RET ;------------------R_BIT------------------ R_BIT: MOV R4,#8 R_BIT1: RRC A MOV LED4IO,C SETB LED3CLK CLR LED3CLK DJNZ R4,R_BIT1 RET ;-------------------W_BIT----------------------- W_BIT: MOV R4,#8 W_BIT1: MOV C,LED4IO RRC A SETB LED3CLK CLR LED3CLK DJNZ R4,W_BIT1 RET ;-------------------------------------------------- BCD_HEX: MOV A,6FH ANL A,#0FH MOV B,A MOV A,6FH MOV 6FH,B SWAP A ANL A,#0FH MOV B,#0AH MUL AB ADD A,6FH ;MOV 6FH,A RET HEX_BCD: MOV A,6FH MOV B,#10 DIV AB SWAP A ADD A,B ;MOV 6FH,A RET ;-----写一地址---R1 为地址,R0 为数据---------- SETONE: CLR LED3CLK CLR RST CLR LED3CLK NOP SETB RST MOV A,#8EH LCALL R_BIT MOV A,#00H LCALL R_BIT SETB LED3CLK CLR RST CLR LED3CLK NOP CLR RST CLR LED3CLK SETB RST MOV A,R1 LCALL R_BIT MOV A,R0 LCALL R_BIT NOP SETB LED3CLK CLR RST NOP NOP CLR RST CLR LED3CLK SETB RST MOV A,#8EH LCALL R_BIT MOV A,#80H LCALL R_BIT SETB LED3CLK CLR RST RET
【八】电子表、万年历系列[1]单片机公交车环境监测及时间显示系统功能描述:1、按键调时间2、带备用电池(断电继续走时)3、监测噪声和温湿度并实时显示4、超过报警值蜂鸣器会响☆已作出的实物优酷视频演示地址: [2]单片机语音报时电子表功能描述:1、按键调试设置闹钟2、带备用电池(断电继续走时)3、整点语音报时☆已作出的实物优酷视频演示地址: [3]单片机红外遥控电子表语音报时语音播报温湿度功能描述:1、红外遥控调时间设定闹钟2、带备用电池(断电继续走时)3、整点语音报时语音播报温湿度4、按键遥控语音报时语音播报温湿度☆已作出的实物优酷视频演示地址:[4]单片机红外遥控电子表语音报时格林威治时间双显示功能描述:1、红外遥控调时间设定闹钟2、带备用电池(断电继续走时)3、整点语音报时语音播报温湿度4、按键遥控语音报时语音播报温湿度☆已作出的实物优酷视频演示地址:[5]单片机多功能万年历电子表系统节日提醒温湿度显示功能描述:1、按键调时间,设置闹钟2、带备用电池(断电继续走时)3、阳历、农历节日提醒;可显示上午、中午、晚上、午夜、深夜等时间段4、温湿度实时显示(可替换其他传感器数据显示)5、功能扩展:语音播报万年历、温湿度等。(此项功能为扩展功能,需要需补差价)☆已作出的实物优酷视频演示地址:【二十】GPS授时定位系统系列[1]GPS自动授时系统 语音报时/播报温湿度实现功能:1.可设置授时模式为自动授时和手动更新2.可脱离GPS数据利用本地时钟芯片准确走时3.可设置静音模式、整点报时和自动语音播报温湿度及其混合模式等四种语音工作模式4.可以切换显示本地时间和温湿度数据和GPS卫星时间数据和定位数据5.经过分析GPS数据,利用算法缩短了解析时间在秒级时间内就能获取到GPS时间数据(正常情况下,完成定位需要几分钟以上)6.(亮点)利用算法自动计算星期参数和农历参数,程序内部算法输入任何阳历日期数据即可得到准确的星期数据和农历数据7.利用12864串口工作模式,节省了8个IO8.可根据需求进行功能定制☆已作出的实物优酷视频演示地址:
This paper describes the design of a practical digital calendar, the design of the system is AT89S52 microcontroller as the core controller, and consists of the clock module, temperature detecting module, display module. Microcontroller is the microcontroller, is the application of object-oriented design, highlight the control function of the chip, the clock module uses DALLAS company's small trickle charge clock chip DS1302, digital temperature sensor DALLAS with temperature detection, display using the general 1602 lcd. The electronic clock not only has basic functions of general electronic clock, display the date when the minutes and seconds, and you can set alarm, temperature display, light display function and voice. System software using single-chip C51 programming language
本文设计了一种实用数字万年历。该系统的设计是以AT89S52单片机为核心控制器,外围连接时钟模块、温度检测模块、显示模块等。This article describes the design of a practical digital perpetual calendar. The system is designed for using the AT89S52 single-chip microcomputer (SCM) as the core controller, which is connected with peripherals such as clock module, temperature detection module and display module, etc.单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片;时钟模块采用DALLAS公司的涓细充电时钟芯片DS1302;温度检测采用DALLAS公司的数字化温度传感器;显示器件采用通用型1602液晶。SCM is a microcontroller, which is a chip designed with extraordinary control functions for object-oriented applications; the small trickle charge clock chip DS1302 of DALLAS Company is used for clock module; the digital temperature sensor of DALLAS Company is used for temperature detection; and the General 1602 LCD is used for display.这种电子时钟不仅具有了一般电子时钟的基本功能,显示年、月、日、时、分、秒,而且可以进行闹钟设置、温度显示、以及声控感光显示功能。系统软件使用单片机C51语言进行编程。This electronic clock is designed not only with the basic functions of a typical electronic clock, such as the display of year, month, day, hour, minute and second, but also with features as alarm setting, temperature display, sound volume control and light sensitive display. The system software used for programming is the SCM C51 language.关键词:时钟;单片机;液晶;C51语言;万年历。Keywords: clock; Single-chip microcomputer (SCM); LCD; C51 language; perpetual calendar.
单片机做时钟,主要是两个部份,时钟和显示,说是单片机做,当然就不能用专用的时钟芯片了,所以你就要对单片机的时钟进行精确计数,尽量用小频率晶振,并且晶振最好是MCU时钟周期的整倍数,因为你要得到准确的计数,例如51用12M,显示就要看你是用数码管还是液晶屏,这些的控制也不难,课本上应该有学过的。
108 浏览 4 回答
169 浏览 4 回答
118 浏览 2 回答
267 浏览 2 回答
165 浏览 3 回答
222 浏览 5 回答
319 浏览 6 回答
235 浏览 2 回答
128 浏览 6 回答
166 浏览 4 回答
359 浏览 6 回答
159 浏览 4 回答
307 浏览 3 回答
338 浏览 3 回答
137 浏览 3 回答