📄 samp6-4.c
字号:
#include <REG52.H>
#include <at89x52.h>
//#include"LED2.H"
//#include"24C02.h"
#include "lcd1602.h"
#define uchar unsigned char
uchar disp[8];
uchar T0count,T1count;
//uchar code dispcode[]={0x11,0Xd7,0x32,0X92,0XD4,0X98,0X18,0XD3,0X10,0X90};
//void calc()
uchar flag=0,flag2=0;
uchar display_code[] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
uchar dispbuf[5]; //显示缓冲区
void delayxm(uchar x)
{ uchar i,j;
while(x--)
{
for(i=0;i<250;i++)
for(j=0;j<132;j++);
}
}
void calc()
{
uchar i;
long frequency;
frequency=(T0count*256+TH0)*256+TL0;
for (i=4;i>0;i--)
{
disp[i]=frequency%10;
// disp[]=frequency%10;
frequency=frequency/10;
}
disp[0]=frequency;
// display_code[0]=frequency;
}
display()
{
lcd_strwdat( 0,"Ping Lu Ji (KHz)" );//
lcd_pos(0x42);
// if(dispbuf[0]!=0)
// { //如果上一百度则百数才显示
// lcd_write(1,display_code[disp[3]]);
// lcd_write(1,display_code[disp[2]]);
// lcd_write(1,display_code[disp[1]]);
// lcd_write(1,display_code[disp[0]]);
// }
// lcd_write(1,display_code[4]);
// lcd_write(1,display_code[5]);
// lcd_write(1,display_code[6]);
// lcd_write(1,display_code[7]);
// lcd_write(1,display_code[8]);
// lcd_write(1,display_code[9]);
// lcd_write(1,display_code[0]);
// lcd_write(1,display_code[1]);
// lcd_write(1,display_code[1]);
// lcd_write(1,display_code[1]);
// lcd_write(1,display_code[1]);
// lcd_write(1,display_code[1]);
}
void init()
{
T0count=0;
T1count=0;
TH0=0;
TL0=0;
}
void main()
{
uchar i,CON;
init();
TMOD=0X15;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ET1=1;
ET0=1;
EA=1;
TR1=1;
TR0=1;
T2MOD=0X02;
RCAP2H=245;
RCAP2L=74;
TR2=1;
lcd_init(); //初始化lcd
for(i=0;i<4;i++) //显示缓冲区置0
dispbuf[i] = 0;
while(1)
{
display(); //显示
CON++;
if(CON==300) //写时刷屏
lcd_init();
// }
// while(1)
// {
lcd_write(1,display_code[disp[0]]);
lcd_write(1,display_code[disp[1]]);
lcd_write(1,0x2e);
lcd_write(1,display_code[disp[2]]);
lcd_write(1,display_code[disp[3]]);
lcd_write(1,display_code[disp[4]]);
delayxm(2);
}
/* while(1)
{
display(dispcode[disp[3]]);
display(dispcode[disp[2]]);
display(dispcode[disp[1]]);
display(dispcode[disp[0]]);
display(dispcode[0xff]);
display(dispcode[0xff]);
display(dispcode[0xff]);
display(dispcode[0xff]);
delayxms(10);
} */
}
void time0() interrupt 1
{
T0count++;
}
void time1() interrupt 3
{ // uchar contuer;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
if(T1count==19)
{
calc();
init();
}
else T1count++;
// contuer++;
// if(contuer==7) //当到0.35s改变 flag
// {
// contuer=0;
// flag=~flag;
// }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -