完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#define uint unsigned int #define uchar unsigned char uchar rdata; #pragma config CONFIG1 = 0X0F04; #pragma config CONFIG2 = 0X1EFC; void init_port(); void init_USTRA(); void delay(uint z); void USTRA_send(uchar data); void main() { init_port(); init_USTRA(); while(1) { PORTC=rdata; } } void init_USTRA() { BRG16=0; //使用8位波特率发生器 BRGH=1; //高波特率选择 SPBRGL=25; //设置波特率发生寄存器的值9600 SPBRGH=0; ANSA1=0; //A1引脚被配置为端口或数字特殊功能 ANSA0=0; //A0引脚被配置为端口或数字特殊功能 SPEN=1; //串口功能打开 SYNC=0; //EUSART选择异步模式工作 PEIE=1; GIE=1; TX9=0; //不发送第9位数据 RX9=0; //不接收第9位数据 CREN=1; //串口接收功能打开 TXEN=1; //串口发送功能打开 TXIE=0; //打开关闭发送中断 RCIE=1; //关闭打开接收中断 RXDTSEL=1; //备用引脚控制寄存器0的bit7 即RA1上具有RX/DT功能 TXCKSEL=1; //备用引脚控制寄存器0的bit2 即RA0上具有TX/CK功能 TRISA0=0; //配置AO端口为输出 TRISA1=1; //配置A1端口为输入 } void interrupt receive() { if(RCIE&&RCIF) { RCIF=0; rdata=RCREG; while(!TRMT); } } void init_port() { OSCCON=0X6A; //0110 1000 内部时钟为4MHz delay(10); APFCON0=0XC4; //RA1、RC4 上具有RX/DT功能 APFCON1=0X08; //RC0上具有P1D功能,RC1上具有P1C 功能 TRISA=0X0A; LATA=0x00; ANSELA=0x00; //0000 0000 PORTA为数字功能 WPUA=0X00; //弱上拉输出使能 INLVLA=0x00; //0000 0000 PORTA电平TTL控制 RA2=0; TRISC=0X00; //RC0、RC1、RC3、RC4、RC5为输出,RC2为输入 LATC=0x00; ANSELC=0x00; //0000 0000 PORTC为数字功能 WPUC=0XFF; //弱上拉输出使能 INLVLC=0x00; //0000 0000 PORTC电平TTL控制 PORTC=0X00; CCPTMRS0=0XE4; } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } |
|
相关推荐
|
|
485通信有使能接收 和 使能发送 必须用单片机IO口控制 ,你没有接收到485信号,看看485的使能接收有没有打开。
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2083 浏览 1 评论
3628 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2335 浏览 2 评论
2762 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4023 浏览 5 评论
971浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6356浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 01:59 , Processed in 0.490514 second(s), Total 43, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号