📄 bt._h
字号:
#include <iom48v.h>
#include <macros.h>
#define uchar unsigned char
#define unit unsigned int
#define ulong unsigned long
#define xtal 8
#define fosc 8000000 //晶振8MHZ
#define baud 9600 //波特率
#define d10 PORTD&=~0X40
#define d11 PORTD|=0X40
#define d20 PORTD&=~0X80
#define d21 PORTD|=0X80
#define d30 PORTB&=~0X20
#define d31 PORTB|=0X20
#define d40 PORTC&=~0X02
#define d41 PORTC|=0X02
#define d50 PORTC&=~0X04
#define d51 PORTC|=0X04
#define d60 PORTD&=~0X10
#define d61 PORTD|=0X10
#define d70 PORTD&=~0X08
#define d71 PORTD|=0X08
#define d80 PORTB&=~0X10
#define d81 PORTB|=0X10
#define a10 PORTB&=~0X04
#define a11 PORTB|=0X04
#define a20 PORTB&=~0X08
#define a21 PORTB|=0X08
#define a30 PORTC&=~0X01
#define a31 PORTC|=0X01
#define a40 PORTC&=~0X08
#define a41 PORTC|=0X08
#define out0 PORTD&=~0X02
#define out1 PORTD|=0X02
#define be0 PORTB&=~0X40
#define be1 PORTB|=0X80
#define Set ((PIND&0X04)==0x04) //key
#define Add ((PIND&0X02)==0x02)
#define Sub ((PIND&0X01)==0x01)
#define Store (1)
uchar shu[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
uchar tm[4]={11,11,11,11};
uchar doudian;
void port_init(void)
{
PORTB = 0x30;
DDRB = 0x3C;
PORTC = 0x06; //m103 output only
DDRC = 0x0F;
PORTD = 0xDf;
DDRD = 0xD8;
}
void DAT(uchar x)
{
if((x&0x01)==0x01) d11;else d10;
if((x&0x02)==0x02) d21;else d20;
if((x&0x04)==0x04) d31;else d30;
if((x&0x08)==0x08) d41;else d40;
if((x&0x10)==0x10) d51;else d50;
if((x&0x20)==0x20) d61;else d60;
if((x&0x40)==0x40) d71;else d70;
if((x&0x80)==0x80) d81;else d80;
}
/* 微秒级延时程序 */
void del(int time)
{
do
{
time--;
}
while (time>1);
}
void dot(uchar dou)
{
switch(dou)
{
case 1 :a41;DAT(~0x80);del(226);a40;DAT(0xff);del(5); break;
case 2 :a31;DAT(~0x80);del(226);a30;DAT(0xff);del(5); break;
case 3 :a21;DAT(~0x80);del(226);a20;DAT(0xff);del(5); break;
case 4 :a11;DAT(~0x80);del(226);a10;DAT(0xff);del(5); break;
}
}
void A() ///*********
{
a11;DAT(shu[tm[0]]);del(180);a10;DAT(0xff);del(5);WDR();
a21;DAT(shu[tm[1]]);del(180);a20;DAT(0xff);del(5);WDR();
a31;DAT(shu[tm[2]]);del(180);a30;DAT(0xff);del(5);WDR();
a41;DAT(shu[tm[3]]);del(180);a40;DAT(0xff);del(5);WDR();
dot(doudian);
}
void bee(unit soundlong,unit tone)
{
unit spfreq,j,j1,k;
spfreq=(15000/tone)/2;
for(j=0;j<soundlong;j++)
for(j1=0;j1<20;j1++)
{
be0;
for(k=0;k<spfreq;k++);
be1;
for(k=0;k<spfreq;k++);
WDR();
}
be1;
}
void delay(unsigned int n)
{
unsigned int i2=0;
while(i2<n)
{
A();i2++;WDR();
}
}
void show(uchar n,unit dat)
{
uchar i;
for(i=0;i<4;i++){
tm[i]=dat%10;
dat/=10;
}
i=3;
while(tm[i]==0&&i>0){
tm[i]=11;
i--;
}
tm[3]=n;
A();
}
void show4(unit dat,uchar x)
{
uchar i;
doudian=x;
for(i=0;i<4;i++){
tm[i]=dat%10;
dat/=10;
}
i=3;
while(tm[i]==0&&i>0)
{
tm[i]=11;
i--;
}
A();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -