??
Main.c #includereg52.h//#include [removed] #defineucharunsignedchar#define uint unsigned int uchar t0_num=0,flag=0,f_time1_over; unsigned int freq=0,cap; //double mm; long period; sbit RS = P2^5;// sbit RW = P2^6;// sbit E = P2^7;// //延时函数 void delayms(uint x) { uchar i; while(x--)for(i = 0; i < 120; i++); } //液晶显示 void Write_Data(uchar x); void Write_Order(uchar x); void Init_1602(void); void Time_init(void); void main() { Init_1602();// Write_Order(0x01);// Write_Order(0x80);// Write_Data('D');// Write_Data('C');// Write_Data('M'); Write_Data('2'); Write_Data('0'); Write_Data('2'); Write_Data('0'); Write_Data('3'); Write_Data('3'); Write_Data('0'); Write_Data('2'); Write_Data('0'); Write_Data('1'); Write_Data('2'); Write_Data('0'); // Write_Order(0xC5);// Write_Data('u');// Write_Data('F');// Time_init(); while(1) { if(f_time1_over==1) { f_time1_over=0; period=TH0; period<[removed]=20) // { // t0_num=0; // flag=1; // TR1=0; /*Æô¶¯T0*/ // TR0=0; // } t0_num++; } void time1_serv() interrupt 3 { f_time1_over=1; TR0=0; TR1=0; } void Time_init(void) { TMOD=0x61;//0101 0000 /*ÉèÖÃT0¹¤×÷ÓÚ¼ÆÊý·½Ê½1*/ TH1=0xff; /*¼Ó1¼ÆÊýÆ÷¸ß8λTH0¸³³õÖµFFH*/ TL1=0xff; /*¼Ó1¼ÆÊýÆ÷µÍ8λTL0¸³³õÖµFFH*/ TH0=0; /*¼Ó1¼ÆÊýÆ÷¸ß8λTH0¸³³õÖµFFH*/ TL0=0; // 0001 ET0=1; ET1=1; /*T0¿ªÖжÏ*/ EA=1; /*CPU¿ªÖжÏ*/ TR1=1; /*Æô¶¯T0*/ TR0=1; } void Init_1602(void) { Write_Order(0x38);//ÏÔʾÉèÖÃ:8λÊý¾Ý½Ó¿Ú£¬2ÐУ¬16¡Á2ÏÔʾ£¬5¡Á7µãÕó Write_Order(0x08);//ÏÔʾ¹Ø±Õ Write_Order(0x01);//ÇåÆÁ£¨°üº¬Êý¾ÝÖ¸ÕëÇåÁ㣬ËùÓÐÏÔʾÇåÁ㣩 Write_Order(0x06);//ÊäÈ뷽ʽ£º¹â±êÓÒÒÆ£¬ÆÁÄ»²»¶¯ Write_Order(0x0c);//ÕûÌåÏÔʾ£¬Óйâ±ê£¬²»ÉÁ˸ } //写数据 void Write_Data(uchar x) { delayms(1); RS = 1;//¸ßµçƽѡÔñÊý¾Ý¼Ä´æÆ÷ RW = 0;//µÍµçƽдÊý¾Ý P0 = x;//P0¶Ë¿ÚÉèΪx E = 1;//ʹÄÜ¶Ë¸ßµçÆ½ _nop_();//Ö¸ÁîÑÓʱ1us,ÑÓʱһ¸ö»úÆ÷ÖÜÆÚ E = 0;//ʹÄÜ¶ËµÍµçÆ½ RW = 1;//¸ßµçƽ½øÐжÁ²Ù×÷ } //写指令 void Write_Order(uchar x) { delayms(1); RS = 0;//µÍµçƽѡÔñÖ¸Áî¼Ä´æÆ÷ RW = 0;//µÍµçƽдÊý¾Ý P0 = x;//P0¶Ë¿ÚÉèΪx E = 1;//ʹÄÜ¶Ë¸ßµçÆ½(ϽµÑØ£¬¸³¸ø´«¸ÐÆ÷) _nop_();//Ö¸ÁîÑÓʱ1us,ÑÓʱһ¸ö»úÆ÷ÖÜÆÚ E = 0;//ʹÄÜ¶ËµÍµçÆ½ RW = 1;//¸ßµçƽ½øÐжÁ²Ù×÷ } /*-------------------------------------------------------------------------- INTRINS.H Intrinsic functions for C51. Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH All rights reserved.--------------------------------------------------------------------------*/ #ifndef__INTRINS_H__#define __INTRINS_H__ #pragmaSAVE#if defined (__CX2__) #pragma FUNCTIONS(STATIC) /* intrinsic functions are reentrant, but need static attribute */ #endif extern void _nop_ (void); extern bit _testbit_ (bit); extern unsigned char _cror_ (unsigned char, unsigned char); extern unsigned int _iror_ (unsigned int, unsigned char); extern unsigned long _lror_ (unsigned long, unsigned char); extern unsigned char _crol_ (unsigned char, unsigned char); extern unsigned int _irol_ (unsigned int, unsigned char); extern unsigned long _lrol_ (unsigned long, unsigned char); extern unsigned char _chkfloat_(float); #if defined (__CX2__) extern int abs (int); extern void _illop_ (void); #endif#if !defined (__CX2__) extern void _push_ (unsigned char _sfr); extern void _pop_ (unsigned char _sfr); #endif#pragma RESTORE #endif /*-------------------------------------------------------------------------- REG52.H Header file for generic 80C52 and 80C32 microcontroller. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved.--------------------------------------------------------------------------*/ #ifndef__REG52_H__#define __REG52_H__ /* BYTE Registers */ sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; 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 IE = 0xA8; sfr IP = 0xB8; sfr SCON = 0x98; sfr SBUF = 0x99; /* 8052 Extensions */ sfr T2CON = 0xC8; sfr RCAP2L = 0xCA; sfr RCAP2H = 0xCB; sfr TL2 = 0xCC; sfr TH2 = 0xCD; /* BIT Registers */ /* PSW */ sbit CY = PSW^7; sbit AC = PSW^6; sbit F0 = PSW^5; sbit RS1 = PSW^4; sbit RS0 = PSW^3; sbit OV = PSW^2; sbit P = PSW^0; //8052 only /* TCON */ sbit TF1 = TCON^7; sbit TR1 = TCON^6; sbit TF0 = TCON^5; sbit TR0 = TCON^4; sbit IE1 = TCON^3; sbit IT1 = TCON^2; sbit IE0 = TCON^1; sbit IT0 = TCON^0; /* IE */ sbit EA = IE^7; sbit ET2 = IE^5; //8052 only sbit ES = IE^4; sbit ET1 = IE^3; sbit EX1 = IE^2; sbit ET0 = IE^1; sbit EX0 = IE^0; /* IP */ sbit PT2 = IP^5; sbit PS = IP^4; sbit PT1 = IP^3; sbit PX1 = IP^2; sbit PT0 = IP^1; sbit PX0 = IP^0; /* P3 */ sbit RD = P3^7; sbit WR = P3^6; sbit T1 = P3^5; sbit T0 = P3^4; sbit INT1 = P3^3; sbit INT0 = P3^2; sbit TXD = P3^1; sbit RXD = P3^0; /* SCON */ sbit SM0 = SCON^7; sbit SM1 = SCON^6; sbit SM2 = SCON^5; sbit REN = SCON^4; sbit TB8 = SCON^3; sbit RB8 = SCON^2; sbit TI = SCON^1; sbit RI = SCON^0; /* P1 */ sbit T2EX = P1^1; // 8052 only sbit T2 = P1^0; // 8052 only /* T2CON */ sbit TF2 = T2CON^7; sbit EXF2 = T2CON^6; sbit RCLK = T2CON^5; sbit TCLK = T2CON^4; sbit EXEN2 = T2CON^3; sbit TR2 = T2CON^2; sbit C_T2 = T2CON^1; sbit CP_RL2 = T2CON^0; #endif\n#其他问题#
432109aS442o
2 0 嘉立创EDA