PIC单片机SPI通信的设计

发布者:cannon928最新更新时间:2020-01-07 来源: eefocus关键字:PIC单片机  SPI通信 手机看文章 扫描二维码
随时随地手机看文章

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

}

关键字:PIC单片机  SPI通信 引用地址:PIC单片机SPI通信的设计

上一篇:如何将PIC单片机的数据存储器RAM当作寄存器来使用
下一篇:PIC单片机对数字温度传感器的控制设计

推荐阅读最新更新时间:2024-11-07 15:01

PIC单片机人机接口模块4×4行列式键盘的电路设计
本实例的4×4行列式键盘的原理图如图1所示,在输出时,采用端口C的低4位来显示按键的输入值。 图1 外部上电复位电路 单片机的时钟电路和复位电路可以采用如图2所示的电路,也可以采用一种更加简单的时钟电路,即如图2所示的时钟电路和复位电路。在实现时也可以用PIC16C5X端口作为输入端,其电路如图3所示。 图2 时钟电路和复位电路 图3 4×4行列式键盘的电路图 其中,RD0~RD3用来进行列扫描,RD4~RD7用来进行行扫描。RD4~RD7各自通过一个电阻接到电源上,并和RD0~RD3通过一个按键连接起来。 当一个按键按下时,对应的行输入口的电平为通过按键连接的列输入端口的电平。普通状态下,各个列端口的输出
[单片机]
<font color='red'>PIC单片机</font>人机接口模块4×4行列式键盘的电路设计
PIC单片机在线调试中的一些问题
1 在线串行编程   1.1在线串行编程接口   带有Flash闪速存储器的PIC单片机产品一般都具有在线串行编程功能,只需要5根引线就可以把程序下载到单片机的Flash程序存储器中。这5根线的排列顺序是MCLR/Vpp、Vdd、Vss、PD(或PGD)和PC(或PGC),图1是PIC单片机在线串行编程接口图。                         图1PIC单片机在线串行编程接口   1.2引脚含义   上述5根引线的具体含义是:MCLR/Vpp——编程电压(对于PIC单片机一般为13 V左右);Vdd——编程电源(5 V);Vss——地;PD——编程数据信号;PC——编程时钟信号。   有了这
[单片机]
pic单片机编译错误汇总
一、Error : Can't find 0x12C words for psect rbss_1 in segment BANK1   连接器告诉你总共有0x12C(300)个字节准备放到bank1 中但bank1 容量不够。显然,只有把一部分原本定位在bank1 中的变量改放到其它bank 中才能解决此问题。 二、 Error :Fixup overflow in expression_r(...)    Error ; . fixup overflow in expression_r(location 0x1FEE (0x1FE6+8), size 2, value 0xFF5) 既然定义的指针有明确的
[单片机]
一种高性能便携式PIC单片机湿度检测仪的研制
摘要: 介绍了一种高性能便携式PIC单片机湿度检测仪的研制,详细阐明了有关的工作原理和关键技术。本测试仪充分应用PIC单片机自身的软硬件资源,具有智能化,小型便携、可编程等优点,在农业、水文系统、环境监测、气象等许多领域具有广泛的应用。 关键词: PIC单片机 湿度测试仪 土壤含水量 适时准确地测量周围环境的湿度和土壤含水量在国民经济发展的许多领域中具有广泛的应用,如在农业上为了科学地对土壤进行管理,需要经常测试土壤含水量;在水利工程中,如水文站、堤坝上也需经常测试土壤含水量,此外,土壤湿度测量在环保、气象、国防施工中更是不可缺少的测量项目。如何使这种繁琐的测量以及相关数据处理实现自动化,成为人们急需解决的重要课题
[单片机]
一种高性能便携式<font color='red'>PIC单片机</font>湿度检测仪的研制
PIC单片机的基本编程汇总,初学者必看
适合3e PI C试验板,爱晶产品销售服务做的不好,好多C程序都是自己写的,不过汇编程序参考一下不错。 ;------------------------------------------------------------------------------------------ ;单双位变换显示实验参考程序注意:此程序请用单步执行(实验1-1.asm) ;------------------------------------------------------------------------------------------ STATUS EQU03H;特殊功能寄存器定义 TRISD EQU88H;特殊功能寄
[单片机]
<font color='red'>PIC单片机</font>的基本编程汇总,初学者必看
分析基于PIC单片机的SPWM控制技术
前 言 在UPS等电力电子设备中,控制方法是核心技术。早期的控制方法使得输出为矩形波,谐波含量较高,滤波困难。SPWM技术较好地克服了这些缺点。目前SPWM的产生方法很多,汇总如下。 1)利用分立元件,采用模拟、数字混和电路生成SPWM波。此方法电路复杂,实现困难且不易改进; 2)由SPWM专用芯片SA828系列与微处理器直接连接生成SPWM波,SA828是由规则采样法产生SPWM波的,相对谐波较大且无法实现闭环控制; 3)利用CPLD(复杂可编程逻辑器件)设计,实现数字式SPWM发生器; 4)基于 单片机 实现SPWM,此方法控制电路简单可靠,利用软件产生SPWM波,减轻了对硬件的要求,且成本低,受外界干扰小
[单片机]
分析基于<font color='red'>PIC单片机</font>的SPWM控制技术
PIC单片机控制的小鸭牌药膳煲
  小鸭BD20-A型PIC单片机控制的多功能微电脑药膳煲,煎药或制作膳食时,只要达到定时时间,药膳煲会发出蜂鸣音提示,并自动转入60℃保温状态。   测绘的电路工作原理见附图。   当煎杯压下温度感测盘,感测盘将行程开关压合,上电时药膳煲处于待机状态,切换指示灯亮。按下选择键一次,设定时间累加30分钟。若设定时间为150分钟或180分钟方式,也可通过模式1或2直接选择设定。如需重新设定时间,则需先按切换键。时间设定完成后约5秒钟,单片机发出工作指令,2脚输出高电平,经9014驱动使继电器吸合,加热丝回路接通。每30分钟,时间显示减少30分钟。   变压器次级12V交流电压一路经D4、D2整流、C4滤波得到+14V左右的直流电
[单片机]
<font color='red'>PIC单片机</font>控制的小鸭牌药膳煲
PIC单片机是一个小的计算机
PIC单片机有计算功能和记忆内存像CPU并由软件控制允行。然而,处理能力—存储器容量却很有限,这取决于PIC的类型。但是它们的最高操纵频率大约都在20MHz左右,存储器容量用做写程序的大约1K—4K字节。 时钟频率与扫描程序的时间和执行程序指令的时间有关系。但不能仅以时钟频率来判定程序处理能力,它还随处理装置的体系结构改变(1*)。假如是同样的体系结构,时钟频率较高的处理能力会较强。 这里用字来解释程序容量。用一个指令(2*)表示一个字。通常用字节(3*)来表示存储器(4*)容量。一个字节有8位,每位由1或0组成。 PIC16F84A单片机 的指令由14位构成。当把1K个子转换成位为:1 x 1,024 x 14 = 14,33
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved