📄 zt1.c
字号:
#include <pic.h>
#include <stdio.h>
#include "usart.h"
//#define TIMEOUT_1 78
//#define TIMEOUT_2 4600
//#define uint unsigned int
//#define nop() asm("nop")
//#define ulong unsigned long
//#define uchar unsigned char //定义一下方便使用
#define PORTBIT(add,bit) ((unsigned)(&add)*8+(bit))//绝对寻址位操作指令
#define PORTCIT(add,bit) ((unsigned)(&add)*8+(bit))
#define PORTAIT(add,bit) ((unsigned)(&add)*8+(bit))
__CONFIG (XT&WDTDIS);
//LED DISPLAY CODE
static bit SI @ PORTAIT(PORTA,1); //定义SI
static bit SCP @ PORTAIT(PORTA,2); //定义scp
static bit LCP @ PORTAIT(PORTA,3); //定义lcp
void delayms(unsigned long number) //延迟1ms
{
unsigned long temp;
for(;number>0;number--)
{
for(temp=34;temp>0;temp--);
}
}
void send_byte( unsigned char out_byte)
{
unsigned char i;
delayms(1);
for (i=0;i<8;i++)
{
SCP=0;
//SCP=0;
if ((out_byte&0x01)==0x01)
{
SI=1;
}
else
{
SI=0;
}
delayms(1);
SCP=1;
//SCP=1;
//SCP=0;
out_byte=out_byte>>1;
}
}
void display_led(int led1,int led2,int led3,int led4,int led5,int led6,int led7,int led8)
{
LCP=0;
LCP=0;
send_byte(led1);
send_byte(led2);
send_byte(led3);
send_byte(led4);
send_byte(led5);
send_byte(led6);
send_byte(led7);
send_byte(led8);
LCP=1;
LCP=1;
}
void forstart()
{
TRISA=0x00;
TRISB=0x00;
TRISC=0X00;
ADCON0=0x45; //选择A/D 通道为RA0,打开A/D 转换器,在工作状态,且使A/D 转换时钟为8tosc
ADCON1=0X07; //设置RA口为I/O
PORTA=0X00;
PORTB=0X00;
PORTC=0X00;
INTCON=0x00; //关闭所有的中断
//OPTION=0X0F;
//init_comms();
//TXSTA=0X61;
//RCSTA=0XD0;
}
void main(void)
{
forstart();
//adinitial();
while(1)
{
PORTB=0X00;
PORTC=0X00;
display_led(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(500); //上电后延迟0.5ms
PORTC=0X01;
display_led(0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led1.2 m1
PORTC=0X03;
display_led(0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led3.4 m2
PORTC=0X07;
display_led(0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led5.6 m3
PORTC=0X0f;
display_led(0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led7.8 m4
PORTC=0X1f;
display_led(0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led9.10 m5
PORTC=0X3f;
display_led(0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led11.12 m6
PORTC=0X7f;
display_led(0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led13.14 m7
PORTC=0Xff;
display_led(0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led15.16 m8
PORTB=0X01;
PORTC=0Xff;
display_led(0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led17.18 m9
PORTB=0X03;
PORTC=0Xff;
display_led(0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led19.20 m10
PORTB=0X07;
PORTC=0Xff;
display_led(0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led21.22 m11
PORTB=0X0f;
PORTC=0Xff;
display_led(0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00);
delayms(498); //led23.24 m12
PORTB=0X1f;
PORTC=0Xff;
display_led(0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00);
delayms(498); //led25.26 m13
PORTB=0X3f;
PORTC=0Xff;
display_led(0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00);
delayms(498); //led27.28 m14
PORTB=0X7f;
PORTC=0Xff;
display_led(0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00);
delayms(498); //led29.30 m15
PORTB=0Xff;
PORTC=0Xff;
display_led(0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00);
delayms(498); //led31.32 m16
display_led(0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00);
delayms(498); //led33.34
display_led(0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00);
delayms(498); //led35.36
display_led(0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00);
delayms(498); //led37.38
display_led(0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00);
delayms(498); //led39.40
display_led(0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00);
delayms(498); //led41.42
display_led(0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00);
delayms(498); //led43.44
display_led(0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00);
delayms(498); //led45.46
display_led(0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00);
delayms(498); //led47.48
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00);
delayms(498); //led49.50
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00);
delayms(498); //led51.52
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00);
delayms(498); //led53.54
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00);
delayms(498); //led55.56
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03);
delayms(498); //led57.58
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f);
delayms(498); //led59.60
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f);
delayms(498); //led61.62
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f);
delayms(498);
display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff);
delayms(498); //led63.64
delayms(8000); //延时8s
PORTB=0X00;
PORTC=0X00;
display_led(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
delayms(102272); //全熄灭90s
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -