历史上的今天
返回首页

历史上的今天

今天是:2025年01月07日(星期二)

正在发生

2020年01月07日 | PIC单片机SPI通信的设计

2020-01-07 来源:eefocus

#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;

}


PIC单片机SPI通信的设计

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);

}

推荐阅读

史海拾趣

Holt Integrated Circuits公司的发展小趣事

除了传统的航空电子解决方案外,Holt还致力于高压LCD显示驱动器的研发。这些产品不仅满足了航空电子设备对高可靠性和高清晰度的需求,还广泛应用于工业过程自动化和井下钻探等领域。Holt的高压LCD显示驱动器以其卓越的性能和稳定性,赢得了众多客户的信赖和好评。

Electro-Term/Hollingsworth公司的发展小趣事

在电子行业的激烈竞争中,Electro-Term公司凭借其独特的技术创新能力,逐步崭露头角。公司创始人在一次偶然的实验中发现了一项新的半导体材料,这种材料具有更高的导电性和稳定性。凭借这一突破,Electro-Term成功推出了一系列高性能的电子产品,赢得了市场的广泛认可。随着技术的不断升级和产品线的扩展,公司逐渐在电子行业中树立了技术领先的形象。

AIC [Analog Intergrations Corporation]公司的发展小趣事

Hollingsworth公司一直以来都坚持品质至上的原则。公司投入大量资源用于产品质量控制和检测,确保每一件产品都符合最高标准。这种对品质的坚持不仅赢得了客户的信任,也帮助公司在市场上建立了良好的口碑。随着时间的推移,Hollingsworth的品牌价值不断提升,成为电子行业中的佼佼者。

aconno公司的发展小趣事

aconno深知人才是企业发展的核心动力。因此,公司一直致力于打造一支高素质、专业化的团队。通过招聘优秀人才、提供专业培训、建立激励机制等一系列措施,aconno成功吸引和留住了一批业内精英。这些人才为公司的技术创新和市场拓展提供了有力支持,成为aconno发展壮大的重要保障。

德索五金(dosinconn)公司的发展小趣事
Hittite Microwave(ADI)公司的发展小趣事

问答坊 | AI 解惑

分享一个充电器电路

这是一个简单的充电器电路,功能非常齐全,采用了一个芯片cn3068,非常适合于便携式应用的领域。热调制电路可以在器件的功耗比较大或者环境温度比较高的时候将芯片温度控制在安全范围内。内部固定的恒压充电电压为4.2V,也可以通过一个外部的电阻调 ...…

查看全部问答>

Wince的应用程序无法显示字符的问题

用VS生成的一个应用程序,界面上显示一些字符和变量值等,用的语句是DrawText() 有一点不明白的是同样一个应用程序,在个别的NK设置里边显示会出错,界面中的字符全都显示不出来,菜单栏上的“文件”“帮助”都看得到。 希望了解的人能够给予解 ...…

查看全部问答>

wince6 输入法问题

有好几个问题想请教一下: 1.系统采用Wince6  R2的,之前系统分辨率是240*320的,客户感觉这个屏幕有颗粒感就换成了320*480,但是微软的输入法小键盘现在还是显示240*320的大小,怎么样能让他适应320*480的屏幕呢? 2.有没有wince6上面 ...…

查看全部问答>

arm-linux下的串口

用开发板的一个串口驱动GPRS模块 调试时用普通的三线通信(收发地)时没有问题,发送和接收都正确。 可是用硬件流控时,发送的数据就不能到达modem。请问可能是什么原因? 板子是arm9的开发板,linux内核。…

查看全部问答>

硬件领域的公司都回招哪些类的职位?

请教一下大家一个做硬件领域的公司都会招些什么类型的职位?…

查看全部问答>

pipice无法仿真,请高手来指点一下。

  如图,按下仿真后,总是出现这个提示,请高手指教一下,问题出在何方?…

查看全部问答>

数电 设计出有一定输出电压范围和功能的数控电源

1.基本要求   (1)输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV;  (2)输出电流:500mA;   (3)输出电压值由数码管显示;   (4)由“+”、“-”两键分别控制输出电压步进增减;   (5)为实现上述几部件工作,自制一稳压 ...…

查看全部问答>

室内设计技巧及计算方法

常用的几种照明方式,根据灯具光通量的空间分布状况及灯具的安装方式,室内照明方式可分为五种: 1、直接照明   光线通过灯具射出,其中90%-100%的光通量到达假定的工作面上,这种照明方式为直接照明。这种照明方式具有强烈的明暗对比 ...…

查看全部问答>

【TI视频】WEBENCH BOM 管理

德州仪器 (TI) WEBENCH 团队经理Jeff Perry为您介绍 WEBENCH BOM 管理以及如何更改 WEBENCH 设计中的组件。WEBENCH是一种端对端设计解决方案,提供在线选择、仿真和原型设计功能。它包括动态设计优化,允许您针对小尺寸、低成本或高效率来优化设计 ...…

查看全部问答>

学模拟+工业远距离通信使用的RS-232至RS-485转换器

本帖最后由 dontium 于 2015-1-23 11:43 编辑 工业远距离通信使用的RS-232至RS-485转换器作者:ThomasKugelstadt,德州仪器 TI链接:deyisupport./blog/b/analogwire/archive/2013/11/22/rs-232-rs-485.aspx 这篇文章很好的解释了RS-232与RS-485 ...…

查看全部问答>