找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7|回复: 0
打印 上一主题 下一主题
收起左侧

基于Proteus 8 的STC15W4K32S4串口通讯实验

[复制链接]
跳转到指定楼层
楼主
近几天进行单片机串口通讯实验,因涉及其他方面的设计,所以需要寻找一款能支持STC的51单片机的仿真平台先进行测试。结果下载了新版本的Proteus,才意外地发现这新版的Proteus竟然支持STC15W单片机仿真实验。

以前都一直用Proteus 7的,里面的51单片机只有老款的,根本适应不了当前的主流51单片机。如今的8.10版本已经集成了STC15W4K32S4,虽然STC单片机型号只有一种,但基本上已适应了形势的发展。集成的STC15W4K32S4是64脚的,普通实验已经完全满足!

接着,简单地搭建了STC15W串口通讯电路。电路由两片STC15W组成,各自有一个LED作显示,主机有一个轻触开关。

串口通讯协议如下:
主机按下轻触开关时,主机通过串口向从机发送0xaa,从机接收到0xaa时,从机上的LED改变状态(亮变灭或灭变亮),同时通过串口返回数据0x55,当主机收到从机返回的数据0x55时,主机上的LED改变状态(亮变灭或灭变亮)。
然后是代码的编写。因为功能简单,所以不难编写。
下面是关键代码串口中断服务程序:
  1. void Uart() interrupt 4//UART 中断服务程序
  2. {
  3.     if (TI)
  4.     {
  5.         TI = 0;                     //清除TI位
  6.     }
  7.     if (RI)
  8.     {
  9.         RI = 0;                     //清除RI位        
  10.                 ckdat=SBUF;
  11. #if SLAVE == 1                                
  12.         if(ckdat==0x55)
  13.                         LED=!LED;
  14. #else
  15.         if(ckdat==0xaa)
  16.                 {
  17.                         LED=!LED;
  18.                         SBUF=0x55;        
  19.                 }
  20. #endif               
  21.     }
  22. }
复制代码
2026.1.17

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表