📄 untitled__.c
字号:
#include<mega16.h>
#ifndef __SLEEP_DEFINED__
#define __SLEEP_DEFINED__
.EQU __se_bit=0x40
.EQU __sm_mask=0xB0
.EQU __sm_powerdown=0x20
.EQU __sm_powersave=0x30
.EQU __sm_standby=0xA0
.EQU __sm_ext_standby=0xB0
.EQU __sm_adc_noise_red=0x10
.SET power_ctrl_reg=mcucr
#endif
#include<delay.h>
#define SPI_CLK PORTA.0
#define VFD_STB PORTA.1
#define SPI_data PORTA.2
unsigned int command_1=0x02; //00000111 设置显示模式为11位11段
unsigned int command_2=0x40; //01000000 数据设置为普通模式,地址自增,写数据到显示寄存器
unsigned int command_3=0xc0; //11000000 设地址为00H
unsigned int command_4=0x8b; //10001011 设显示控制,显示开,占空比10/16
unsigned int in_data;
unsigned char a;
void main()
{
DDRA=0X07;
PORTA=0X00;
in_data=0xf0;
VFD_STB=1;
VFD_STB=1;
VFD_STB=1;
SPI_CLK=0;
SPI_CLK=0;
SPI_CLK=0;
delay_us(1);
VFD_STB=0;
VFD_STB=0;
delay_us(1);
for(a=0;a<8;a++)//设置显示模式为11位11段//
{
SPI_CLK=0;
SPI_CLK=0;
SPI_CLK=0;
delay_us(1);
if(command_1&0x01) SPI_data=1;
else SPI_data=0;
command_1=(command_1<<1);
delay_us(1);
SPI_CLK=1;
SPI_CLK=1;
SPI_CLK=1;
}
delay_us(1);
VFD_STB=1;
VFD_STB=1;
VFD_STB=1;
SPI_CLK=0;
SPI_CLK=0;
SPI_CLK=0;
delay_us(1);
VFD_STB=0;
VFD_STB=0;
for(a=0;a<8;a++)//01000000 数据设置为普通模式,地址自增,写数据到显示寄存器//
{
SPI_CLK=0;
SPI_CLK=0;
SPI_CLK=0;
delay_us(1);
if(command_2&0x01)
SPI_data=1;
else
SPI_data=0;
command_2=(command_2<<1);
delay_us(1);
SPI_CLK=1;
SPI_CLK=1;
SPI_CLK=1;
}
delay_us(1);
VFD_STB=1;
VFD_STB=1;
VFD_STB=1;
delay_us(1);
VFD_STB=0;
delay_us(1);
for(a=0;a<8;a++)//11000000 设地址为00H//
{
SPI_CLK=0;
SPI_CLK=0;
SPI_CLK=0;
delay_us(1);
if(command_3&0x01)
SPI_data=1;
else
SPI_data=0;
command_3=(command_3<<1);
delay_us(1);
SPI_CLK=1;
SPI_CLK=1;
SPI_CLK=1;
delay_us(1);
}
VFD_STB=0;
VFD_STB=0;
in_data=0xf0;
for(a=0;a<8;a++)//输入数据0XFF//
{
delay_us(1);
SPI_CLK=0;
SPI_CLK=0;
SPI_CLK=0;
delay_us(1);
if(in_data&0x01)
SPI_data=1;
else
SPI_data=0;
in_data=in_data<<1;
delay_us(1);
SPI_CLK=1;
SPI_CLK=1;
SPI_CLK=1;
delay_us(1);
}
for(a=0;a<8;a++)//显示输入数据0XFF//
{
delay_us(1);
SPI_CLK=0;
SPI_CLK=0;
SPI_CLK=0;
delay_us(1);
if(command_4&0x01)
SPI_data=1;
else
SPI_data=0;
command_4=(command_4<<1);
delay_us(1);
SPI_CLK=1;
SPI_CLK=1;
SPI_CLK=1;
delay_us(1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -