📄 v.c
字号:
#include <mega16.h>
#include <delay.h>
#define data PORTA.0
#define clk PORTA.1
flash unsigned char led[]={0x28,0xeb,0x19,0x89,0xca,0x8c,0x0c,0xe9,0x08,0x88,0xff};
unsigned char dis_buff[4];
void sendbyte(unsigned char byte)
{
unsigned char num,c;
num=led[byte];
for(c=0;c<8;c++)
{
clk=0;
data=num&0x01; //(0x80即十进制的128, 二进制的10000000 按位发送)
clk=1;
num>>=1;
}
}
// ADC电压值送显示缓冲区函数
void display(unsigned int adc)
{
unsigned char i;
sendbyte(10);
sendbyte(10);
sendbyte(10);
sendbyte(10);
for (i=0;i<=3;i++)
{
dis_buff[i]=adc%10;
sendbyte(dis_buff[i]);
adc /= 10;
}
}
void init()
{
DDRA=0X7f;
ADMUX=0x47;
ADCSRA=0xCd;
}
void main()
{
init();
delay_ms(500);//点亮测试
#asm("sei");
while(1);
}
interrupt [15] void adc_is()
{
float adc_data;
int adc_v;
#asm("cli");
adc_data=ADCW;
adc_v=adc_data*5050/1024;
display(adc_v);
ADCSRA=0xCE;
#asm("sei");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -