


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/*/#define SSIG0x80 /SS引脚忽略#define SPEN0x40 /SPI使能位#define DORD0x20 /SPI数据发送LSB最先发送#define MSTR0x10 /主从模式选择#define CPOL0x08 /SPICLK#define CPHA0x04 /SPI时钟频率为CPU_CLK/4/SPI时钟频率为CPU_CLK/16/SPI时钟频率为CPU_CLK/64/SPI时钟频率为CPU_CLK/128空闲时为高电平数据在 SPICLK 的前时钟沿驱动 , 并在后时钟沿采样#define SP_CLK0 0x00#define SP_CLK1 0x01
2、#define SP_CLK2 0x02#define SP_CLK3 0x03对SPSTAT寄存器的设置位宏定义传输完成标志/*/#define SPIF 0x80 /#define WCOL0x40 /SPI写冲突标志/* *SPI口切换宏定义 */#define SPI_P40x20 /SPI从 P1 口切换到 P4 口12C5A12C5A12C5A12C5A12C5A12C5A12M6M3M1.5M12C5A120闲模式,低速模式12C5A0f12C5A2A12C5A12C5A12C5A0c12C5A12C5A12C5A0L0L7f0a0L0L0L0L0L0L0L0L0L12C5A12
3、C5A12C5A12C5A12C5速.同步的通信总线 , 有两种操作模式 : 主模式和从模式。12C5A12C5A12C5A速.同步的通信总线,有两种操作模式:主模式和从模式。/涉及寄存器:SPCTL(SPI控制寄存器)、SPSTAT(SPI状态寄存器)、SPDAT数据寄存器)/AUXR1(辅助寄存器 )/程序说明:本程序为 SPI 的从机程序 , 从机通过 SPI 接收主机发送过来的数据 , 并通过串口/显示到PC端,ye*'#include <12C5A>#include <> #define uchar unsigned char #define uint
4、 unsigned int对SPCTL寄存器的设置位宏定义/*波特率选择 */ #define BTL 9600 / 若要更改波特率直接更改此处 , 当波特率大于 9600 时需修改相应的接收程序 / 可选波特率有以下 : 否则有可能出现乱码/波特率为2400/波特率为28800/波特率为4800/波特率为38400/波特率为9600/波特率为57600/波特率为14400/波特率为115200/波特率为19200void UART_init(void); uchar Receive(void); void Printf( uchar *p );void Init_SPI(void);void
5、 Send_byte( uchar byte );ye*'/串口初始化 /*/void UART_init(void)/ SM0 = 0; / SM1 = 1; /8/ REN = 1; /SCON = 0x50;#if( BTL = 2400 )BRT = 0x70; /#elif( BTL = 4800 ) BRT = 0xB8;选择串口为方式 1 工作 位数据波特率可变 允许串口接收波特率设置为 9600#elif( BTL = 9600 )BRT = 0xDC; #elif( BTL = 14400 )BRT = 0xE8; #elif( BTL = 19200 )BRT =
6、0xEE; #elif( BTL = 28800 )BRT = 0xF4; #elif( BTL = 38400 )BRT = 0xF7;#elif( BTL = 57600 ) BRT = 0xFA;#elif( BTL = 115200 )BRT = 0xFD;#endifAUXR = 0x15; / ES = 1; /IPH = 0X10; /PSH = 1;/IP= 0X10; /PS = 1;串口 1 中断为最高优先级中断/EA= 1; /开总中断选择独立波特率发生器为串行 口的波特率发生器 , 模式为 1T 允许串口中断/*/发送一个字节数据 /*/void Send_byte(
7、uchar byte )SBUF = byte;while(!TI);TI = 0;/ye*'/打印字符/*/void Printf( uchar *p )while( *p != '0' )Send_byte(*p);p+; /*/ 接收函数 /*/ uchar Receive( void )uchar byte;_nop_();_nop_();_nop_();_nop_();if( RI = 1 )RI = 0;byte = SBUF;return byte;/*/* 名称: Init_SPI()/* 功能 : 对 SPI 进行初始化/* 输入:无/* 输出:无/*
8、 void Init_SPI(void)清空数据寄存器 清空 SPI 状态寄存器设置为从机模式允许 SPI 中断SPDAT = 0;/SPSTAT = SPIF|WCOL; / SPCTL =SPEN; /SPI IE2 = 0x02; /*/*名称:main/*功能 :/*输入:无/*输出:无/*/void main()uchar flag = 0;UART_init();Init_SPI();EA = 1; / 开总中断while(1)flag = Receive();SPDAT值发送岀来if(flag) /当 PC 端有给从机发送数据时把从机当前的Send_byte(SPDAT);flag = 0;/*/* 名称: SPI_ISR()/* 功能 : SPI 中断服务/* 输入:无/* 输出:无/*/ void SPI_ISR(void) interrupt 9 using 1 SPSTAT = SPIF|WCOL; / Printf("Receive_Da
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 配电安规习题+参考答案
- 河南省上蔡一高2025年高三3月份模拟考试英语试题含解析
- 机修钳工(设备钳工)复习题及答案
- 浙江省宁波四中2025届高三下学期第五次调研考试英语试题含解析
- 2025年福建省厦门二中高考考前模拟英语试题含答案
- 江苏省连云港市海州区2024-2025学年高一下学期4月期中学业水平质量监测化学试题(原卷版+解析版)
- 纸容器食品安全包装要求与检测考核试卷
- 管道工程绿色施工技术创新动态与发展趋势考核试卷
- 美容仪器电路设计与优化案例分析考核试卷
- 航空物流企业的供应链金融创新考核试卷
- DB52/T 1212-2017 煤矿地面在用瓦斯泵及瓦斯泵站安全检查规范
- 污水处理设施运维服务投标方案(技术标)
- 《中国糖尿病防治指南(2024版)》更新解读
- 【中考真题】2024年广东省广州市中考物理试卷(附答案)
- 护理带教老师选拔
- 【九上RJ数学】安徽省黄山市歙县2024-2025学年九年级上学期期末数学试题
- 弱电系统维保合同
- 2025年国信证券招聘笔试参考题库含答案解析
- 新三板、北京交易所简介及上市利弊分析
- 重庆2025届高考英语二模试卷含解析
- 2023年《计量经济学》期末试卷
评论
0/150
提交评论