⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yijingxianshi.c

📁 自己编写的一个应用于1602液晶的秒表小程序
💻 C
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar count;
char  haomiao,miao,fen;
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;

sbit P36=P3^6;			                     
uchar n,k,h,l,m;
uchar code d[ ]="lucheng";	 //第一行要输入的字符
uchar code b[ ]="00:00:00";	//第二行要输入的字符
void delay(uint z)			//延时 z ms
{
	uint i;
	uchar j;
	for(i=z;i>0;i--)
		for(j=110;j>0;j--);
}

void zhiling(uchar a)	//写命令
{

	E=0;RS=0;RW=0;
	E=1;
	P0=a;
	delay(5);           //延时 5ms	
	E=0;
	delay(5);           //延时 5ms	
}
void shuju(uchar b)		//写数据
{

    E=0;RS=1;RW=0;
	E=1;
	P0=b;
	delay(5);           //延时 5ms	
	E=0;
	delay(5);           //延时 5ms	
}
void write_sfm(uchar add,uchar date) //秒表写入
{
	uchar shi,ge;
	shi=date/10;
	ge=date%10;
	zhiling(0x80+add);//在第一行add位写命令
	shuju(0x30+shi);//显示十位的字符
	shuju(0x30+ge);//显示个位的字符
}

void init()      //初始化
{	
    uchar num;	 
	zhiling(0x01);	 //清屏
	zhiling(0x38);	 //功能设置
	zhiling(0x0e);	 //开/关显示设置
	zhiling(0x06);   //输入方式设置
	zhiling(0x80+0x40);  //第2行首地址初始化
		for(num=0;num<8;num++)//第一行显示00:00:00
		{
			shuju(d[num]);
			delay(5);
		} 
	zhiling(0x80);//第yi行首地址初始化
    for(num=0;num<8;num++)
		{
			shuju(b[num]);
			delay(5);
		}

	/*********设置定时器0**********/
	TMOD=0x01;   //T0定时器 16位定时器工作模式
	TH0=(65536-50000)/256;  //装初值,设置50毫秒
	TL0=(65536-50000)%256;
	EA=1;//开总中断
	ET0=1;//T0中断允许位;
	TR0=1;//开定时器0
}

void main()
{
  	init();
	while(1)  ;  

}

void timer0() interrupt 1
{  
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
 for(fen=0;fen<60;fen++)
 {
     for(miao=0;miao<60;miao++)
      {
        write_sfm(3,miao);
        for(haomiao=0;haomiao<100;haomiao++)
            {
                   write_sfm(6,haomiao);
                   for(count=0;count<2;count++)  ;
            }
       }              
     write_sfm(0,fen);
  } 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -