如何给串口收发增加二极管指示灯控制?

jintiann 2014-11-19 10:58:38
现在想当串口有数据时点亮相应的二极管指示灯,灯通过GPIO口进行控制,Linux系统是2.6的,该在驱动的那个函数中进行添加点灯的控制呢?谢谢大家。
...全文
1408 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Henzox 2014-11-21
  • 打赏
  • 举报
回复
你可以搜一下 Raspberry pi 的控制灯闪烁的小程序,好久之前做过,现在记不清了,直接向 GPIO 串口的端口中循环写入点亮熄灭,就可以闪了。
zhujinqiang 2014-11-20
  • 打赏
  • 举报
回复
RS232 的发送 TXD 和 RXD信号线上,各加一个PNP的三极管。 然后用 2个PNP的三极管来各自控制1个LED。 用PNP原因是串口负电平 h t t p://blog.csdn.net/yangshuodianzi/article/details/8958284
w_乐天 2014-11-20
  • 打赏
  • 举报
回复
你确定要去改底层程序吗,在应用程序中加上对IO的处理不更好?驱动程序应该是在内核的drivers/serial下针对你的板子的那个文件中,你也只有看懂了里面的程序才能去修改
jintiann 2014-11-19
  • 打赏
  • 举报
回复
难道都看不上这种没技术含量的问题??
基于89C51的交通灯控制系统设计 目 录 摘 要 1 1.设计任务与要求 1 2.系统硬件设计 2 3.系统软件设计 5 4. Proteus软件仿真 6 5.设计心得 7 6.参考文献 7 附录 8 交通灯控制系统设计 摘 要 自从1858年英国人发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改 变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经 济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得 交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故有显著的效果。 近年来,随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人 民的生活当中。本模拟交通灯系统利用单片机AT89C51作为核心元件,实现了通过信号灯 对路面状况的智能控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理 、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便 等优点,有广泛的应用前景。 本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统等组成,较好的 模拟了交通路面的控制。 关键词:交通灯 单片机 数码管 LED灯 1.设计任务与要求 东西、南北两干道交于十字路口,各干道有一组红、绿、黄三个指示灯,指挥车辆和 行人安全通行。东西方向为主干道,通行时间为40秒;南北方向为支干道,通行时间为 30秒。通行时间最后3秒,绿灯灭,黄灯闪烁,黄灯闪烁完毕变更通行车道。通行时间由 数字显示器显示,黄灯3秒闪烁不单另计时。 2.系统硬件设计 根据上面的功能要求,硬件系统主要有单片机模块、指示灯模块和倒计时显示模块。 各模块选择如下: (1)单片机模块 主控芯片采用AT89C51单片机,其管脚图如图1所示。 图1 AT89C51引脚图 AT89C51是AT89C5X系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解 。AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器 、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大 总线。 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二 进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制 输入输出功能等操作。 AT89C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址 的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据 ,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义 的字型表。 AT89C51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 AT89C51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序 转向。 AT89C51共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。 AT89C51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口 既可以用作异步通信收发器,也可以当同步移位器使用。 AT89C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中 断,可满足不同的控制要求,并具有2级的优先级别选择。 AT89C51内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但 AT89C51单片机需外置振荡电容。 本设计中,使单片机运行在最小系统。 时钟电路由两个20nF的微调电容和一个晶振组成。AT89C51内部有一个用于构成振荡 器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引 脚接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。本系统采用12Hz的振荡 器,机器周期为1us。复位操作有上电自动复位、按键电平复位和外部脉冲复位三种方式 。本设计采用按键电平复位。按键电平复位是通过复位端经电阻与电源接通实现,如下 图2所示。 图2 AT89C51最小系统 (2)指示灯模块 设计电路中每个路口的控制信号灯应有三个,即红灯、黄灯、绿灯各一个。因此,本 电路的设计中应用到红灯、黄灯、绿灯个四个。同一方向的两个路口的同一颜色指示灯 是同时亮灭,为简化电路,可让这两个灯接同一引脚。这样可用P1口控制所有的指示灯 。 为简化设计,信号灯不采用当个的发光二极管,而采用现用的交通灯组件。该组件及 其与单片机引脚的接法如下: " "东西方向 "南北方向 " "指示灯"红灯"绿灯"黄灯"红灯"绿灯"黄灯" "引脚 "P1.3"P1.4"P1.5"P0.0"P1.1"P1.2" 图3 指示灯及其接线引脚 (3)倒计时显示模块 由于黄灯3秒闪
1.基本任务 (1)已知甲机接 8 个开关,乙机接 8 个发光二极管,利用它们的串口方式 1,波 特率自定义,实现:将甲机中 8 个开关所代表的数据传送到乙机,并在乙机的 8 个 LED 灯显示。请在 Proteus 中画出电路原理图,并编写程序仿真实现上述功能。 (2)已知单片机的 P0 口接了 8 个发光二极管 LED0~LED7,现要求通过单片机的 串口收发上位机的命令,实现对这 8 个发光二极管控制。PC 端采用串口调试程序进 行数据发送(如使用 stc-isp 烧写软件向单片机发送“88 FB AF XX FC FC”6 个字节的 命令,其中“88 FB AF”及“FC FC”为数据的帧头和帧尾,“XX”为 00~07 数据。 )单片机 使用串口中断进行数据接收,同时需要判断帧头和帧尾的正确性。判断帧头和帧尾完毕 后,若正确的话再判断“XX” 数据,对应“XX” 数据对 LED0~LED7 进行点亮、熄灭控 制;若不正确丢掉数据, 转入等待接收。 请在 Proteus 中画出电路原理图,并编写程 序仿真实现上述功能。 2.拓展任务 在以上基本任务 1 的基础上,奇校验,实现甲机和乙机的全双工通信,即甲机和乙 机都分别接 8 个开关和 8 个发光二极管,甲机 8 个开关所代表的数据能传送到乙机并在 乙机的 8 个 LED 灯显示,同时乙机 8 个开关所代表的数据能传送到甲机并在甲机的 8 个 LED 灯显示,若校验出错则指示灯(自定义)闪烁。请在 Proteus 中画出电路原理图, 并编写程序仿真实现上述功能。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧