📄 lcd_shumaguan.c
字号:
//本实验目的在于熟悉七段数码管的使用
//采用七段带点共阴极数码管
//试验依次动态显示0~13。
//动态扫描全显0.~6.。
//--------头文件及配置--------------
#include<pic.h>
__CONFIG(0x3f39);
//芯片配置字,看门狗关,上电延时开,掉电检测关,
//低压编程关,加密,4M晶体XT振荡
//--------函数申明及数据定义-----------
void delay(); //延时函数
void delay1(); //延时函数1
void init(); //I/O初始化函数
unsigned char shuma1[10]={0x88,0x9f,0xa4,0x85,0x93,0xc1,0Xc0,0X8F,0X80,0X81};
//0~9不带点的数码管源码
unsigned char shuma2[10]={0X08,0X1F,0X24,0X05,0X13,0X41,0X40,0X0F,0X00,0X01};
//0~9带点的数码管源码
//--------主函数--------------
void main()
{
while(1) //死循环,让数码管一直点
{
int i; //定义整型变量
init(); //调用端口初始化函数
PORTC=shuma1[0]; //C口输出第一个数据0
PORTA=0X3D; //点亮第一个数码管
delay1(); //延时一段时间,保证数码管亮度
PORTC=shuma1[1]; //c口输出第二个数据1
PORTA=0X3E; //点亮第二个数码管
delay1(); //延时一段时间,保证数码管亮度
PORTC=shuma1[2]; //c口输出第三个数据
PORTA=0X37; //点亮第三个数码管
delay1(); //延时一段时间,保证数码管亮度
PORTC=shuma1[3]; //一下的说明部分同上
PORTA=0x3B;
delay1();
PORTC=shuma1[4];
PORTA=0X1F;
delay1();
PORTC=shuma1[5];
PORTA=0X2F;
delay1();
for(i=200;i>0;i--)
{
PORTC=shuma2[1]; //动态扫描全显1.~6.
PORTA=0X3D;
delay();
PORTC=shuma2[2];
PORTA=0X3E;
delay();
PORTC=shuma2[3];
PORTA=0X37;
delay();
PORTC=shuma2[4];
PORTA=0x3B;
delay();
PORTC=shuma2[5];
PORTA=0X1F;
delay();
PORTC=shuma2[6];
PORTA=0X2F;
delay();
}
}
}
//-----------子函数程序--------------------------
void delay() //延时程序
{
int a; //定义整形变量
for(a=50;a>0;a--); //延时
}
void delay1() //延时函数1
{
int j,k;
for(j=1000;j>0;j--)
{
for(k=20;k>0;k--);
}
}
void init() //I/O口初始化函数
{
TRISA=0X00; //设置A0输出,其他输入
TRISC=0X00; //设置D口输出
ADCON1=0X07; //设置A口为普通I/O口
PORTA=0xff;
PORTC=0xff; //先熄灭所有显示
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -