PIC16F877编程ICC实例
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
void main()
{
port_init();
timer0_init();
while(1)
{
display(c);
}
}
}
void port_init()
{
TRISB=0X00;//b口全部为输出
PORTB=0xfF;//初始化为高电平
SC=0X00;//C口全部为输出
PORTC=0xFF;//初始化为高电平
}
void timer0_init()//做开发板的人用的多,加参数
{
T0CS=0;//t0定时模式,位操作
pic16f877pic16f877中文资料pic16f877价格数控编程实例数控铣床编程实例plc编程实例数控车床编程实例c语言编程实例三菱plc编程实例excel编程实例
ICC877IO口程序注解,请大家参考
//877B口操作,定时器控制
#include<pic.h>
#define uchar unsigned char
RC3=0;
PORTB=0x00;
RC2=1;
PORTB=dm[b];
delay(1);
RC2=0;
PORTB=0x00;
RC1=1;
PORTB=dm[s];
delay(1);
RC1=0;
PORTB=0x00;
RC0=1;
PORTB=dm[g];
delay(1);
RC0=0;//0关闭数码管
PORTB=0x00;
{
TMR0=6;//及时给初值
TMR0IF=0;
m++;
if(m>=128)
{
m=0;
c++;
}
}
ei();
}
void display(uint x)
{
uchar q,b,s,g;
q=x/1000;
b=x%1000/100;
s=x%100/10;
g=x%10;
RC3=1;
PORTB=dm[q];
delay(1);
PSA=0;//把8为后分频器分给定时器0用
PS2=1;//32分频
PS1=0;
PS0=0;
TMR0IF=0;
TMR0IE=1;
GIE=1;
TMR0=6;//给初值后,定时器就开始动,中断一次8ms
}
void interrupt timer0_isr()
{
static uchar m;
di();
if(TMR0IF)
#define uint unsigned int
uchar const dm[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
uint c;
void delay(uint x)
{
uchar y;
for(;x>0;x--)
for(y=200;y>0;y--);
void main()
{
port_init();
timer0_init();
while(1)
{
display(c);
}
}
}
void port_init()
{
TRISB=0X00;//b口全部为输出
PORTB=0xfF;//初始化为高电平
SC=0X00;//C口全部为输出
PORTC=0xFF;//初始化为高电平
}
void timer0_init()//做开发板的人用的多,加参数
{
T0CS=0;//t0定时模式,位操作
pic16f877pic16f877中文资料pic16f877价格数控编程实例数控铣床编程实例plc编程实例数控车床编程实例c语言编程实例三菱plc编程实例excel编程实例
ICC877IO口程序注解,请大家参考
//877B口操作,定时器控制
#include<pic.h>
#define uchar unsigned char
RC3=0;
PORTB=0x00;
RC2=1;
PORTB=dm[b];
delay(1);
RC2=0;
PORTB=0x00;
RC1=1;
PORTB=dm[s];
delay(1);
RC1=0;
PORTB=0x00;
RC0=1;
PORTB=dm[g];
delay(1);
RC0=0;//0关闭数码管
PORTB=0x00;
{
TMR0=6;//及时给初值
TMR0IF=0;
m++;
if(m>=128)
{
m=0;
c++;
}
}
ei();
}
void display(uint x)
{
uchar q,b,s,g;
q=x/1000;
b=x%1000/100;
s=x%100/10;
g=x%10;
RC3=1;
PORTB=dm[q];
delay(1);
PSA=0;//把8为后分频器分给定时器0用
PS2=1;//32分频
PS1=0;
PS0=0;
TMR0IF=0;
TMR0IE=1;
GIE=1;
TMR0=6;//给初值后,定时器就开始动,中断一次8ms
}
void interrupt timer0_isr()
{
static uchar m;
di();
if(TMR0IF)
#define uint unsigned int
uchar const dm[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
uint c;
void delay(uint x)
{
uchar y;
for(;x>0;x--)
for(y=200;y>0;y--);