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

📄 16-32.c

📁 16_32的led多功能点阵具有温度采集_18b20实时时钟_ds1302
💻 C
字号:
#define uchar unsigned char
#define uint unsigned int
#include <reg52.h>
#include"1302.h"
#include"zifu.h"
#include"18b20.h"
#include"type.h"
#include"dis.h"

sbit G=P1^7;        //P1.7为显示允许控制信号端
sbit CLK=P1^6;     //P1.6为输出锁存器时钟信号端
sbit SCLR=P1^5;     //移位寄存器的清0端


 void main()
 {
uchar i;
uchar ucAddr = 0x81;
SCON=0x00;            //串口工作模式0:移位寄存器方式
TMOD=0x01;            //定时器T0工作在试1:16位方式
TR0=1;                //启动定时器
P1=0x3f;              //P1口初值允许接收,锁存,显示
IE=0x82;              //允许定时器T0中断

Init_1302();
Init_DS18B20(); 
 
 while(1)
 {
 
 	delay(500);          //延时2S
	
	disp_dis();

 	send_time();                  // 读时间
 	disp_1302();   

	ReadTemperature();
 	disp_wd();
   
			  
for(i=0;i<32;i++)     //显示效果:卷帘入
    {
     	dispram[i]=0;
	 	dispram0[i]=0;
     	if(i%2)delay(100);
    }
 }
 }
 /*-------------延时------------*/
 void delay(unsigned int dt)
{
 register unsigned char bt;
 for(;dt;dt--)
 for(bt=0;bt<225;bt++);
 }



 /*-------显示屏扫描(定时器T0中断)函数-------------*/
 void leddisplay(void) interrupt 1 using 1
 {
 register unsigned char i,j=BLKN;
 TH0=0xfb;                      //设定显示屏刷新率每秒62.5帧
 TL0=0x30;
 i=P1;                          //读出当前显示的行号
 i=++i&0x0f;                    //行号加1屏蔽高四位
 do
 {
 j--;
SBUF=~dispram0[i*BLKN+j];        //送显示数据
 //SBUF=dispram0[i*BLKN+j]; 
 while (!TI);TI=0;
 }
 while(j);                       //完成一行数据传输
j=BLKN;
do
{j--;
SBUF=~dispram[i*BLKN+j];
//SBUF=dispram[i*BLKN+j];
while(!TI);TI=0;
}
while(j); 
 G=1;                            //消隐(关闭显示)
 P1&=0xf0;                       //行号端清0
 CLK=1;                         //显示数据输出到锁存寄存器
 P1 |=i;                         //写入行号
 CLK=0;                         //锁存器显示数据
 G=0;                            //打开显示
 }




 

⌨️ 快捷键说明

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