📄 湿度传感器.c.100831140740
字号:
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#define clk 7
#define set_clk PORTC |= BIT(clk)
#define clr_clk PORTC &= ~BIT(clk)
#define sid 6
#define clr_sid PORTC &= ~BIT(sid)
#define set_sid PORTC |= BIT(sid)
void delay()
{
NOP();
NOP();
}
void delay_us(uint i)
{
while(i--)
{;}
}
void delay_ms(uint i)
{
uint a;
for(;i;i--)
{
for(a=0;a<672;a++);
}
}
void wr_bit(uchar n,uchar data)
{
for(;n;n--) //写入位数
{
if(data&0x80)
{set_sid;}
else
{clr_sid;}
data=data<<1;
delay();
set_clk;
delay();
clr_clk;
}
}
void write_shuju(uchar a,uchar b)
{
clr_clk;
wr_bit(5,0xFF);
wr_bit(1,0x00);
if(a==0)
wr_bit(1,0x00);
else
wr_bit(1,0x80);
wr_bit(1,0x00); //写入一个0
wr_bit(4,b); //写入数据的高4位
wr_bit(4,0x00); //写入4个0
wr_bit(4,(b<<4)); //写入数据的低4位
wr_bit(4,0x00); //写入4个0
set_sid;
}
void lcd12864_init()
{
write_shuju(0,0x30); //设置数据方式:8位
delay_us(200);
write_shuju(0,0x30); //设置数据方式:8位
delay_us(80);
write_shuju(0,0x0C); //开显示
delay_us(80);
write_shuju(0,0x40); //开显示
delay_us(200);
write_shuju(0,0x01); //清屏
delay_ms(100);
}
void write_hz(char *s)
{
while(*s)
{
write_shuju(1,*s);
s++;
}
}
void locate(uchar x,uchar y)
{
switch(x)
{
case 1:write_shuju(0,(0x80+y-1)); break;
case 2:write_shuju(0,(0x90+y-1));break;
case 3:write_shuju(0,(0x88+y-1));break;
case 4:write_shuju(0,(0x98+y-1));break;
default:break;
}
}
void cls()
{
delay_us(200);
write_shuju(0,0x01); //清屏
delay_ms(20);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -