本帖最后由 渔夫的烟斗 于 2017-4-9 07:28 编辑
file:///C:/Users/YING/AppData/Local/Temp/snap_screen_20170409071121.pngfile:///C:/Users/YING/AppData/Local/Temp/snap_screen_20170409071121.png
PIC16F685中文资料.zip
(3.02 MB)
1.查询方式:是对哪个REG进行查询“
2.中断方式:中断服务号是多少”
3.波特率设置是不是也同STC一样要先设定定时器“
blog
#include "pic.h"
#include
__CONFIG (CP_OFF&WDTE_OFF& BOREN_OFF&PWRTE_OFF &FOSC_HS&WRT_OFF&LVP_OFF&CPD_OFF);
//-------------------------------------------------------------------------
#define uint unsigned int
#define uchar unsigned char
//-------------------------------------------------------------------------
//串口接收、发送变量
void delay10ms(void);
void delay10ms_x(unsigned char x);
char strSentData[20]="Hello World!\r";
char m=0; // i做为访问数组的下标
main()
{
char i=0;
SPBRG=25;
SPBRGH=0;
SYNC=0; // 选择异步模式
BRGH=0; // 低波特率方式
BRG16=0; // 高波特率方式
//BRGH=1; // 高波特率方式
TXEN=1; // 发送使能
TX9=0; // 不发送第9位
SPEN=1; // USART使能
// 以上几条语句是分别对每位赋值,目的使初学者看清楚每位功能
// 实际项目中建议用以下两条语句替代,效率更高
//RCSTA=0b10000000;
//TXSTA=0b00100100;
TXREG='A'; // 把要发送的数据放到TXREG中,USART模块开始自动发送
while(1)
{
while(strSentData[i]!='\0') // 当没到字符串结束时
{
TXREG=strSentData[i];
while(TRMT!=1) // 不为一说明发送未完成,则等待
{
}
i++;
}
i=0;
}
}
网上找的一段代码。
首先没有发现波特率的具体设定,只说高低波特率。。在PDF手册有看到一个自动波特率,不知道是不是这么用的
二也没有发现定时器,即波特率发生器,难道这个PIC已经不需要这个了?
*******************************************************************************
PIC16f串口通信程序_百度文库
这边的程序却有波特率的具体值的设定。
两者有什么不一样么?
|