好文档 - 专业文书写作范文服务资料分享网站

基于at89s52单片机用12864液晶lcd显示带ds18b20测温的万年历电子时钟

天下 分享 时间: 加入收藏 我要投稿 点赞

用at89s52单片机,12864显示,DS18B20测温 12864液晶显示屏驱动是lcd.h和lcd.c 温度传感器测温在temp.c 单片机底层驱动是AT89X52.H 包含5个文件

AT89X52.H lcd.c lcd.h temp.c nain.c

分别保存成.c文件,运行mian.c

/*--------------------------------------------------------------------------

AT89X52.H

Header file for the low voltage Flash Atmel AT89C52 and AT89LV52. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved.

--------------------------------------------------------------------------*/

#ifndef __AT89X52_H__ #define __AT89X52_H__

/*------------------------------------------------ Byte Registers

------------------------------------------------*/ sfr P0 = 0x80; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D;

sfr P1 = 0x90; sfr SCON = 0x98; sfr SBUF = 0x99; sfr P2 = 0xA0; sfr IE = 0xA8; sfr P3 = 0xB0; sfr IP = 0xB8; sfr T2CON = 0xC8; sfr T2MOD = 0xC9; sfr RCAP2L = 0xCA; sfr RCAP2H = 0xCB; sfr TL2 = 0xCC; sfr TH2 = 0xCD; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0;

/*------------------------------------------------ P0 Bit Registers

------------------------------------------------*/ sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82; sbit P0_3 = 0x83; sbit P0_4 = 0x84; sbit P0_5 = 0x85; sbit P0_6 = 0x86;

sbit P0_7 = 0x87;

/*------------------------------------------------ PCON Bit Values

------------------------------------------------*/ #define IDL_ 0x01

#define STOP_ 0x02

#define PD_ 0x02 /* Alternate definition */

#define GF0_ 0x04 #define GF1_ 0x08 #define SMOD_ 0x80

/*------------------------------------------------ TCON Bit Registers

------------------------------------------------*/

sbit IT0 = 0x88; sbit IE0 = 0x89; sbit IT1 = 0x8A; sbit IE1 = 0x8B; sbit TR0 = 0x8C; sbit TF0 = 0x8D; sbit TR1 = 0x8E; sbit TF1 = 0x8F;

/*------------------------------------------------ TMOD Bit Values

------------------------------------------------*/ #define T0_M0_ 0x01 #define T0_M1_ 0x02 #define T0_CT_ 0x04 #define T0_GATE_ 0x08 #define T1_M0_ 0x10 #define T1_M1_ 0x20 #define T1_CT_ 0x40 #define T1_GATE_ 0x80

#define T1_MASK_ 0xF0 #define T0_MASK_ 0x0F

/*------------------------------------------------ P1 Bit Registers

------------------------------------------------*/ sbit P1_0 = 0x90; sbit P1_1 = 0x91; sbit P1_2 = 0x92; sbit P1_3 = 0x93; sbit P1_4 = 0x94; sbit P1_5 = 0x95; sbit P1_6 = 0x96; sbit P1_7 = 0x97;

sbit T2 = 0x90; /* External input to Timer/Counter 2, clock out */ sbit T2EX = 0x91; /* Timer/Counter 2 capture/reload trigger & dir ctl */

/*------------------------------------------------ SCON Bit Registers

------------------------------------------------*/ sbit RI = 0x98; sbit TI = 0x99;

sbit RB8 = 0x9A; sbit TB8 = 0x9B; sbit REN = 0x9C; sbit SM2 = 0x9D; sbit SM1 = 0x9E; sbit SM0 = 0x9F;

/*------------------------------------------------ P2 Bit Registers

------------------------------------------------*/ sbit P2_0 = 0xA0; sbit P2_1 = 0xA1; sbit P2_2 = 0xA2; sbit P2_3 = 0xA3; sbit P2_4 = 0xA4; sbit P2_5 = 0xA5; sbit P2_6 = 0xA6; sbit P2_7 = 0xA7;

/*------------------------------------------------ IE Bit Registers

------------------------------------------------*/

sbit EX0 = 0xA8; /* 1=Enable External interrupt 0 */ sbit ET0 = 0xA9; /* 1=Enable Timer 0 interrupt */ sbit EX1 = 0xAA; /* 1=Enable External interrupt 1 */ sbit ET1 = 0xAB; /* 1=Enable Timer 1 interrupt */ sbit ES = 0xAC; /* 1=Enable Serial port interrupt */ sbit ET2 = 0xAD; /* 1=Enable Timer 2 interrupt */

sbit EA = 0xAF; /* 0=Disable all interrupts */

/*------------------------------------------------ P3 Bit Registers (Mnemonics & Ports) ------------------------------------------------*/ sbit P3_0 = 0xB0; sbit P3_1 = 0xB1; sbit P3_2 = 0xB2; sbit P3_3 = 0xB3; sbit P3_4 = 0xB4; sbit P3_5 = 0xB5; sbit P3_6 = 0xB6;

sbit P3_7 = 0xB7;

sbit RXD = 0xB0; /* Serial data input */

sbit TXD = 0xB1; /* Serial data output */ sbit INT0 = 0xB2; /* External interrupt 0 */ sbit INT1 = 0xB3; /* External interrupt 1 */ sbit T0 = 0xB4; /* Timer 0 external input */ sbit T1 = 0xB5; /* Timer 1 external input */

sbit WR = 0xB6; /* External data memory write strobe */ sbit RD = 0xB7; /* External data memory read strobe */

/*------------------------------------------------ IP Bit Registers

------------------------------------------------*/ sbit PX0 = 0xB8; sbit PT0 = 0xB9; sbit PX1 = 0xBA; sbit PT1 = 0xBB; sbit PS = 0xBC;

sbit PT2 = 0xBD;

/*------------------------------------------------ T2CON Bit Registers

------------------------------------------------*/

sbit CP_RL2= 0xC8; /* 0=Reload, 1=Capture select */ sbit C_T2 = 0xC9; /* 0=Timer, 1=Counter */

sbit TR2 = 0xCA; /* 0=Stop timer, 1=Start timer */ sbit EXEN2= 0xCB; /* Timer 2 external enable */

sbit TCLK = 0xCC; /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */ sbit RCLK = 0xCD; /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */ sbit EXF2 = 0xCE; /* Timer 2 external flag */ sbit TF2 = 0xCF; /* Timer 2 overflow flag */

/*------------------------------------------------ T2MOD Bit Values

------------------------------------------------*/

#define DCEN_ 0x01 /* 1=Timer 2 can be configured as up/down counter */ #define T2OE_ 0x02 /* Timer 2 output enable */

/*------------------------------------------------ PSW Bit Registers

------------------------------------------------*/ sbit P = 0xD0; sbit FL = 0xD1; sbit OV = 0xD2; sbit RS0 = 0xD3; sbit RS1 = 0xD4;

基于at89s52单片机用12864液晶lcd显示带ds18b20测温的万年历电子时钟

用at89s52单片机,12864显示,DS18B20测温12864液晶显示屏驱动是lcd.h和lcd.c温度传感器测温在temp.c单片机底层驱动是AT89X52.H包含5个文件AT89X52.Hlcd.clcd.htemp.cnain.c分别保存成.c文件,运行mian.c/*-------
推荐度:
点击下载文档文档为doc格式
64mmi7ndpe3h0qq03o65
领取福利

微信扫码领取福利

微信扫码分享