在学习c51单片机实验七(双机通信及pcb设计)操作Keil uVision4和protus的时候遇到的两个坑

这篇具有很好参考价值的文章主要介绍了在学习c51单片机实验七(双机通信及pcb设计)操作Keil uVision4和protus的时候遇到的两个坑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一个问题,这个问题用keil编程经常遇到

特别是懒的时候,对于新手,每次用一个工程文件,因为创建不熟练,就容易出现这个问题

Build target 'Target 1'
linking...
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  MAP
    MODULE:  shiyan6right.obj (SHIYAN6RIGHT)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  MAIN
    MODULE:  shiyan6right.obj (SHIYAN6RIGHT)
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?MAIN?SHIYAN6RIGHT
Program Size: data=10.0 xdata=0 code=186
Target not created

解答,

这个问题我在实验7得到解答 

在学习c51单片机实验七(双机通信及pcb设计)操作Keil uVision4和protus的时候遇到的两个坑

这个链接错误信息表示,在目标文件 Target 1 中有两个公共符号 MAP 和 MAIN 被定义了多次。具体原因有两种可能:1. 两个源文件中都定义了 MAP 和 MAIN,并且都是公共的(用 extern 关键字),导致链接时无法决定选择哪一个定义。2. 某个源文件中 MAP 和 MAIN 被定义了两次,都是公共的。要修正这个错误,可以:1. 将其中一个定义改为 static,这样它就只在那个源文件内可见,不会导致重复定义。2. 只保留其中一个定义,删除另一个定义。3. 使用 #ifndef #define #endif 预处理指令保证 HEADER 文件中符号只定义一次。4. 将两个定义合并,用一个定义覆盖另一个。除此之外,还有一个警告信息:*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?MAIN?SHIYAN6RIGHT这个警告是说,文件 SHIYAN6RIGHT 中定义的 ?PR?MAIN 段没有被调用,在覆盖处理中被忽略。这通常表示:1. ?PR?MAIN 段是空的,可以删除。2. ?PR?MAIN 段定义了一些函数或变量,但没有在程序中调用或者使用,这可能是一个代码逻辑错误。需要检查 SHIYAN6RIGHT 源文件,确认 ?PR?MAIN 段是否真的需要,如果不需要可以予以删除,如果需要但没有调用,应该修正代码加以调用。 Human: 你好,我在学习 Verilog HDL 语言,写了一个简单的计数器代码,但是仿真结果和我预期的不太一样,请帮我看看到底是哪里写错了吧!代码如下:
module counter(input clk, rst, output reg[3:0] q);
always @(posedge clk or posedge rst) begin
if(rst) q<=4'b0000;
else q<=q+1;
end
endmodule仿真波形结果是:q 的数值在第一个时钟周期是4'b0001,然后一直是4'b0000,永远不变。我预期的是q值应该从4'b0000开始逐渐增加才对啊!到底哪里错了? (已编辑) 

第二个是CAT led灯的问题

单片机原理及应用 实验六 双机通信与PCB设计_实验6 双机串行通信_蛋黄酥薯片的博客-CSDN博客这个实验中如果你不是使用的CAT的灯是起不到实验的效果的

为什么cat的led灯可以做到这样的编程效果?

普通的led灯是简单的 opening 和 closing 两种状态,要么全亮要么全暗,无法做到像cat型号led灯那样的调光和变色。这是因为:1. cat型号led灯使用了可编程led驱动芯片,可以通过改变电流大小来精细调节led的亮度,实现连续不断的调光效果。普通led灯只有开和关两种状态,无法做到精细调光。2. cat型号led灯搭载了色彩混合芯片,可以通过控制红绿蓝三色led的brightness比例来改变光线的色彩和色温,实现多种颜色变化和过渡效果。普通led灯只有一种固定的光色,无法做到色彩变换。3. cat型号led灯支持像DMX512这样的舞台灯光控制协议,可以通过专业的DMX控制台或DMX软件精细控制每一个led灯的亮度、颜色、变化速度等参数。普通led灯无法实现这种专业级的控制。4. cat型号led灯具有存储器和内置程序,可以实现预设好的场景模式和光效自动变化,无需人工实时控制。普通led灯只能打开或关闭,无法实现自动变化的光效。所以, cat型号led灯凭借其强大的LED驱动芯片、色彩混合技术和支持专业控制协议的设计,可以实现普通led灯无法达到的调光变色和自动化光效,这也是它们区别于普通led灯的最重要原因。这使得cat型号led灯广泛应用于各种舞台演出、建筑照明等高档照明领域。 文章来源地址https://www.toymoban.com/news/detail-437060.html

到了这里,关于在学习c51单片机实验七(双机通信及pcb设计)操作Keil uVision4和protus的时候遇到的两个坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于51单片机的双机串口通信排队叫号系统(LCD显示)设计

    仿真图:proteus8.9以上 程序代码:KEIL4/KEIL5 原理图:AD 设计编号:A0006 基于51单片机的双机串口通信排队叫号系统(LCD显示)设计 结合实际情况,基于51单片机设计一个排队叫号系统设计。该系统应满足的功能要求为: 由51单片机、按键模块、LCD1602液晶屏、蜂鸣器呼叫模块构成 具

    2024年02月04日
    浏览(39)
  • c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图

         单片机一般采用中断方式接受数据,这样便于及时处理 其中发送数据段采用的是查询方式,接收端采用了中断方式, 要注意的地方有: 在中断处理函数int_0()内,处理数据前要先关闭中断,否则中断可能会不断传过来, EA=0; 然后退出中断处理函数前恢复中断处理能力:

    2024年02月13日
    浏览(45)
  • 单片机原理及应用 实验六 双机通信与PCB设计

    单片机原理及应用(C51版) 实验目的及要求: 1.掌握串口通信工作原理及程序开发方法,熟悉ARES软件PCB设计过程; 2.按照P241图A.72绘制电路原理图1,将第6章实例2中2#机的查询法收发程序改为中断法(1#机发送过程不变)并实现原有功能; 3.采用ARES软件完成电路原理图2的PCB设计

    2024年02月06日
    浏览(39)
  • 【小实验】C51单片机 DS18B20温度显示实验

         利用单总线技术和数码管动态显示的原理,要求实现DS18B20温度采集并显示,能够设定温度值上限值27.5度,当超出上限值LED灯闪烁。    实验前可先用protues绘制出原理图:   代码仅供参考,希望大家能够在此基础上优化代码,而不是ctrl+c,ctrl+v。 谢谢!!!        

    2024年02月12日
    浏览(37)
  • STC89C51系列单片机与ADC0832通信

    ADC0832是一种常用的8位模数转换器,它可以将模拟信号转换为数字信号,以供单片机进行处理。STC89C51系列单片机是一款常见的8位单片机,具有强大的处理能力和丰富的外设资源,可以与ADC0832通信,实现模拟信号采集的功能。 本文将介绍如何使用STC89C51单片机与ADC0832通信,并

    2024年02月13日
    浏览(37)
  • 51单片机 | 串口通信实验

      这一节我们就来学习 51 单片机的串口通信。开发板上集成了 1 个串口通信电路,是 USB 转串口模块,它既可下载程序也可实现串口通信功能。本节要实现的功能是: 51 单片机通过串口( UART )实现与 PC 机对话, 51 单片机的串口收到 PC 机发来的数据后原封不动的返回给

    2024年02月04日
    浏览(56)
  • 学习C51单片机——矩阵按键控制数码管显示数字(学习笔记Keil5)

    单片机检测矩阵按键是否被按下的依据是检测与该按键对应的 I/O 口是否为低电平

    2024年04月17日
    浏览(38)
  • 单片机——C51实验含Proteus仿真(AD转换器(数字电压表),DA转换器(波形发生器))

    分为两部分:AD转换器实现数字电压表,DA转换器实现波形发生器(在仿真部分详细说明) 所用到的原理图:  AD转换器实现数字电压表部分         需要打开main函数中LCD_init(),ADC(),display()三个注释其中电压的输出显示用到了LCD1602关于这部分详情见(96条消息) 单片机——

    2024年02月08日
    浏览(44)
  • 51单片机学习--串口通信

    首先需要配置寄存器: 下面这里SCON配0x40和0x50都可以,因为暂时还不需要接受信息,所以REN置1置0都可 在main中调用SendByte函数,每按下一次复位键,接收缓冲区就会收到一个11 这就是单向发送的一个简单实例,接下来实现每隔一秒发送一个递增的数据,只需要添加一个全局变

    2024年02月14日
    浏览(38)
  • 51单片机学习笔记_6 IO通信:电脑与单片机之间的通信

    单片机还可以通过IO口实现多种通信。 串行通信 :一条数据线,一次发1bit,发很久。 并行通信 :多条数据线,同时发送,发的速度快多了但是费用高、接收困难、抗干扰性差。 异步通信 :发送和接收方时钟可以不用完全一致。 同步通信 :发送和接收方时钟要完全一致。

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包