#include
#define uchar unsigned char
#define uint unsigned int
#define cs RC2
#define dout RC4
#define nop() asm(“nop”)
__CONFIG(0x3B31);
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar data_temp;
void delay(uint x);
void init();
void didi(uchar num);
void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6);
void comm(uchar data);
uchar read(uchar add);
void write(uchar add,uchar wdata);
void write_enable();
void main()
{
uchar a1,a2,a3,a4,a5,a6,i;
init();
//write_enable();
//for(i=6;i》0;i--)
//{
//write_enable();
//write(i,i);
//}
a1=read(1);
a2=read(2);
a3=read(3);
a4=read(4);
a5=read(5);
a6=read(6);
while(1)
{
disp(a1,a2,a3,a4,a5,a6);
}
}
void delay(uint x)
{
uint a,b;
for(a=x;a》0;a--)
for(b=110;b》0;b--);
}
void init()
{
TRISD=0;
TRISA=0;
TRISC=0x10;//00010000
TRISE0=0;
SSPSTAT=0x80;
SSPCON=0x32;
cs=0;
}
void write_enable()
{
cs=1;
nop();
comm(0x02);
comm(0x60);
cs=0;nop();nop();
}
void write(uchar add,uchar wdata)
{
cs=1;
nop();
comm(0x02);
comm(add|0x80);
comm(wdata);
cs=0;
nop();nop();
cs=1;nop();nop();
while(!dout);
cs=0;nop();nop();
}
uchar read(uchar add)
{
uchar rtemp;
cs=1;
nop();
comm(0x03);
comm(add);
comm(0);
cs=0;
rtemp=data_temp;
return (rtemp);
}
void comm(uchar data)
{
SSPBUF=data;
while(!SSPIF);
SSPIF=0;
data_temp=SSPBUF;
}
void didi(uchar num)
{
uchar di_num;
for(di_num=num;di_num》0;di_num--)
{
RE0=1;
delay(50);
RE0=0;
delay(20);
}
}
void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6)
{
PORTD=table[num1];//显示第一个数码管
PORTA=0x20;//0010 0000
delay(2);
PORTD=table[num2];//显示第二个数码管
PORTA=0x10;//0001 0000
delay(2);
PORTD=table[num3];//显示第三个数码管
PORTA=0x08;//0000 1000
delay(2);
PORTD=table[num4];//显示第四个数码管
PORTA=0x04;//0000 0100
delay(2);
PORTD=table[num5];//显示第五个数码管
PORTA=0x02;//0000 0010
delay(2);
PORTD=table[num6];//显示第六个数码管
PORTA=0x01;//0000 0001
delay(2);
}
上一篇:如何将PIC单片机的数据存储器RAM当作寄存器来使用
下一篇:PIC单片机对数字温度传感器的控制设计
推荐阅读最新更新时间:2024-11-07 15:01
设计资源 培训 开发板 精华推荐
- Si91822 微功率 300mA CMOS 固定输出 LDO 稳压器的典型应用,具有错误标志/上电复位
- A8586KLJTR-T 宽输入电压、可调频率、3.5A 降压稳压器的典型应用电路,显示关键路径/环路
- 使用 Infineon Technologies AG 的 IRU3039PBF 的参考设计
- 稳压模块
- AM2G-2412DZ ±12V 2 瓦 DC/DC 转换器的典型应用
- LT1021DCN8-10 用于处理更高负载电流的电压基准的典型应用
- LT3990HMSE-5 5V 降压转换器的典型应用
- EVAL-AD5535EB,用于 AD5535、32 通道、14 位、串行输入、高压输出 DAC 的评估板
- 用于仪表的 16 位、50MSPS、1CH DAC
- AM2F-2412SH52Z 12V 2 瓦 DC-DC 转换器的典型应用