PIC单片机各种流水灯C程序,编译通过可运行
#include<16f73.h>
#include
#include
#use delay(clock = 4000000)
#fuses XT,NOWDT
#use rs232(baud = 9600, xmit = PIN_C6, rcv = PIN_C7)// PC
#bit run=0x7.2
#bit Tris_C2=0x87.2
#bit test=0x7.3
#bit tris_c3=0x87.3
#define TIMER1_4MS (0xFFFF - 500 + 1)
char RevHead;// 接收指针
char RevChar;// 接收字符
char Received;
char CommSelect;
char zhugedl;
char zhugedm;
#define RECEIVE_BUF_LEN 40// 接收缓冲区长度
char RevBuf[RECEIVE_BUF_LEN];// 接收缓冲区
char nihongd();
char zhugedianl();
char zhugedianm();
char zidingy(char c);
/*===========================================================================*/
void main(void)
{
set_tris_a(0x00);
set_tris_b(0x00);
tris_c2=0;
tris_c3=0;
Received=0;
RevHead=0;
Revchar=0;
output_a(0x3f);
output_b(0xff);
run=0;
test=0;
while(1)
{
nihongd();
delay_ms(1000);
zhugedianl();
delay_ms(1000);
zhugedianm();
delay_ms(1000);
}
setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
disable_interrupts(INT_TIMER1);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
delay_ms(1000);
while(1){
switch(Revchar)
{
case 0xa0: set_timer1(TIMER1_4MS);//启动定时器
enable_interrupts(INT_TIMER1);
break;
case 0xa1: nihongd();
break;
case 0xa2:zhugedianl();
break;
case 0xa3:zhugedianm();
break;
case 0xa4:zidingy(Revchar);
break;
default:
break;
}
}//end while(1)
}
/**********//**********//**********//**********//**********/
// 接收中断函数
/**********//**********//**********//**********//**********/
#INT_RDA
void Rda_Isr(void)
{