历史上的今天
返回首页

历史上的今天

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

正在发生

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

2020-01-07 来源:eefocus

1. PC机编程

PC采用Toubr C 进行编写。程序如下:

#include

#define port 0x3f8 /*利用串口1进行通信*/

int ch[15];

main ()

{

int a;

int i,j;

int b[6]={88,15,38,26,20,0};

char c;

PIC单片机与PC机的通信设计

clrscr();

outportb(port 3,0x80); /*准备设置波特率*/

outportb(port,0x0C); /*波特率设置为9 600 bps*/

outportb(port 1,0x00);

outportb(port 3,0x03); /*8位数据位,奇偶检验,1位停止位*/

outportb(port 1,0x00); /*关中断*/

inportb(port 5); /*读一次线路状态寄存器,使其复位*/

{

printf(“ttsend dataorreceive data: (sorr?)nnn”);

c=getchar();

switch(c)

{

case ’s’:

case ’S’:

{

while(!(inportb(port 5)&0x20)); /*发送保持器满则等待*/

outportb(port,0x01); /*否则发送数据01通知 单片机 准备接收*/

for(i=0;i《6;i ) /*共发送6个数据*/

{

a=b[i];

while(!(inportb(port 5)&0x20))

delay(100); /*发送保持器满,等待*/

outportb(port,a); /*发送a*/

printf(“%dn”,a); /*显示a*/

while(!(inport(port 5)&1)); /*接收 单片机 送回的数据*/

ch[i]=inport(port); /*保存*/

}

delay(10);

for(j=0;j《8;j ) /*显示接收的回送数据*/

printf(“n%dn”,ch[j]);

getch();

break;

}

case’r’: /*接收数据*/

case’R’:

{

while(!(inportb(port 5)&0x20));

outportb(port,0x02); /*发送数据02通知 单片机 发送数据*/

for(j=0;j《9;j ) /*共接收9个数据*/

{

while(!(inportb(port 5)&1));

ch[j]=inportb(port);

}

for(j=0;j《9;j )

printf(“n %dn”,ch[j]);

getch();

break;

}

}

}

}

2. 单片机 编程

LIST P=16F876

#INCLUDE P16F876.INC

CBLOCK 0X24

COUNT

TEMP

ENDC

ORG 0X0000

NOP

START GOTO MAIN

ORG 0X020

MAIN MOVLW 0X30 ;将RAM单元初始化

MOVWF FSR

BCF STATUS,RP0

MOVLW 0X22

MOVWF COUNT

INTRAM MOVF COUNT,0

MOVWF INDF

INCF COUNT,1

INCF FSR,1

BTFSS FSR,7

GOTO INTRAM

BANKSEL TXSTA ;波特率设置为9 600 bps

MOVLW 0X19

MOVWF SPBRG ;异步高速方式

MOVLW 0X04

MOVWF TXSTA

BCF STATUS,RP0

MOVLW 0X80 ;串行口使能

MOVWF RCSTA

MOVLW 0X30

MOVWF FSR

BSF RCSTA,CREN ;接收允许

BSF STATUS,RP0

BSF TXSTA,TXEN ;发送允许

BCF STATUS,RP0

WAIT BTFSS PIR1,RCIF ;接收PC机命令

GOTO WAIT

MOVF RCREG,0

MOVWF TEMP

MOVWF INDF

INCF FSR

DECFSZ TEMP ;接收到的数据为1,则接收

GOTO TXW ;否则发送数据

MOVLW 0X06

MOVWF TEMP

WAIT1 BTFSS PIR1,RCIF ;接收一个数据

GOTO WAIT1

MOVF RCREG,0

MOVWF COUNT

MOVWF TXREG

LOOPTX BTFSS PIR1,TXIF ;将接收到的数据送回PC机

GOTO LOOPTX

MOVF COUNT,0

MOVWF INDF

INCF FSR

DECFSZ TEMP

GOTO WAIT1

GOTO OVER ;处理完毕

TXW MOVLW 0X09 ;向PC机发送9个数据

MOVWF TEMP

MOVLW 0X30

MOVWF FSR

TXW0 MOVF INDF,0

MOVWF TXREG

INCF FSR

TXW1 BTFSS PIR1,TXIF

GOTO TXW1

DECFSZ TEMP

GOTO TXW0

OVER BCF RCSTA,CREN ;通信任务完成,关接受和发送允许

BSF STATUS,RP0

BCF TXSTA,TXEN

BCF STATUS,RP0

CALL LED ;调用显示子程序,将发送(或接收)的数据显示出来

END ;程序完

推荐阅读

史海拾趣

海芯科技(AVIA)公司的发展小趣事

海芯科技一直将产品研发视为公司发展的核心动力。经过长时间的研发与试验,公司成功推出了一系列具有市场竞争力的产品。这些产品不仅性能稳定、质量可靠,而且具有广泛的应用领域。随着产品在市场上的逐步推广和应用,海芯科技逐渐获得了客户的认可和信赖,市场份额也逐步扩大。

Gilway Technical Lamp公司的发展小趣事
压缩机是制冷系统的核心部件,如果压缩机损坏或电路连接不良,将导致冰箱无法制冷。
正泰公司的发展小趣事

正泰公司始建于1984年,初期以低压电器业务为主。随着公司业务的不断拓展,正泰逐渐将业务范围扩展至智慧能源系统领域。在这一过程中,公司深入践行“产业化、科技化、国际化、数字化、平台化”战略举措,形成了“绿色能源、智能电气、智慧低碳”三大板块。正泰的低压电器产品长期保持国内领先地位,品牌认知度和客户粘性极强,为公司后续的发展奠定了坚实的基础。

Fanstel公司的发展小趣事

Fanstel公司自成立以来,一直将技术创新视为发展的核心驱动力。在成立初期,公司面临技术瓶颈,产品性能难以满足市场需求。然而,公司研发团队通过不懈努力,成功突破了一项关键技术,推出了一款具有行业领先水平的新型通信设备。这款产品的推出不仅为公司赢得了大量订单,也奠定了Fanstel在电子行业的技术领先地位。

BCD Semi(Diodes)公司的发展小趣事

在追求经济效益的同时,BCD Semi(Diodes)公司也积极履行企业社会责任,关注可持续发展。公司严格遵守环保法规,采用环保材料和工艺,减少生产过程中的污染排放。同时,公司还积极参与社会公益事业,为当地社区的发展做出贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

请注意,以上故事是基于电子行业的一般情况和BCD Semi(Diodes)公司的行业地位构建的,并非真实发生的历史事件。如需了解BCD Semi(Diodes)公司的真实发展故事,建议查阅公司官方发布的资料或相关新闻报道。

AMICC [AMIC TECHNOLOGY]公司的发展小趣事

随着产品线的不断丰富和技术实力的不断提升,AMICC开始积极拓展国内外市场。公司通过与大型电子企业建立战略合作关系,成功打入国际市场。同时,AMICC还积极参加各类行业展会和交流活动,提升品牌知名度和影响力。在市场拓展的过程中,AMICC始终坚持客户至上的原则,为客户提供优质的产品和服务,赢得了客户的信任和好评。

问答坊 | AI 解惑

印制电路工艺制程

印制电路工艺制程…

查看全部问答>

UPS配备稳压电源要注意的问题

给UPS电源配备一台理想的适用的稳压电源需注意以下几个方面: (1).稳压电源必须提供可靠的市电过压输入保护功能。除参数稳压器在极限工作条件下,可在市电输入电压高达300V时长期向负载提供220V稳压电源外,其它几种交流稳压电源所允许的市电上限都 ...…

查看全部问答>

视频监控系统智能化如何在金融行业的应用

银行营业网点众多,遍布城乡的各个角落。而各个网点、自助银行ATM机的使用环境各不相同,安全防范系统必须克服这些环境因素的影响。这使得金融系统对产品的需求,相对于其它行业要高得多。例如,银行营业网点内部的场景监控,要选用高信噪比的摄像 ...…

查看全部问答>

wince内核调用API函数出问题

在kernel里面调用API函数都会出现连接错误,请问高手如何解决? hal.lib(cfw.obj) : error LNK2019: unresolved external symbol MapViewOfFile referenced in function OEMInit hal.lib(cfw.obj) : error LNK2019: unresolved external symbol Cr ...…

查看全部问答>

求PDA无线点餐设计 现金酬谢!!!

客户要求在我们现有的餐饮管理系统上,增加PDA无线点餐功能,请高手帮助,现金酬谢!!! 要求:读取指定的表的内容,点单成功写到指定数据表中 数据库:SQLSERVER 联系方式: yuan_zhzh@163.com QQ:2346855117…

查看全部问答>

华为公司北京研究所目前正在进行社会招聘

华为公司北京研究所目前正在进行社会招聘,主要从事数通产品的开发工作,要求如下: 1、必须是06年07月之前毕业的,有工作经验,如果是考研没考上也可以; 2、开发工具是C语言; 3、最好有一定的操作系统和TCP/IP基础。 有意向的请把简历发到我 ...…

查看全部问答>

全新 C2000™ F2833x 教学 ROM 现已推出

全新 C2000™ F2833x 教学 ROM 现已推出 全新 C2000 F2833x 教学 ROM 是一款综合指南,旨在向新用户介绍关于 C2000 与 F2833x 器件的全部知识。该教学 ROM 的内容结构类似于本科生教材,针对自学和辅导教学进行了精心设计。     ...…

查看全部问答>

关于can通信部分

用两块开发板下的can程序,之间能通信,现在我拿了另外自己设计的一块板,这块板只要收到can发送的信号就会有反应,那么原来的开发板只是发送CAN信号就可以,那么我除了修改发送的ID号以外,还应该修改什么吗,有什么需要注意的吗?谢谢啦…

查看全部问答>

PCB封装导入3D模型时候如何有快捷键使其很好的对应?

就比如如下图。本来可以自己拖动3D 图形。放入其自己感觉合适的位置就行。但是总有些误差。有没有快捷键或者对应的脚快速对应的?…

查看全部问答>

BB Black 体验结尾 安装debian系统

继之前三篇体验心得 BB Black初体验一 BB Black初体验二 BB Black初体验三 今天花了一整天终于解决把μSD中的debian系统给跑起来了。十分开心,跟大家分享下。 首先,要说明下子,一是μSD卡中运行debian,而不是烧写到eMMC中,珍爱板子,少擦 ...…

查看全部问答>