设计了一种基于两片AVR单片机的交通诱导屏显示单元控制系统,该系统由通信模块、显示控制模块和开关模块3部分组成。单片机A用于以RS-485的通信方式接收数据和应答主机,把处理好的数据发送到I/O口并写入EEPROM中,再通知单片机B读取数据。单片机B接收到数据后控制LED显示,通过调节驱动LED电流占空比的方式调节LED的亮度。给出了控制系统的硬件和软件设计方案。
上传时间: 2013-10-13
上传用户:wenyuoo
单片机与PC机通信发送数据到PC机的串口助手显示
上传时间: 2013-11-21
上传用户:ynzfm
内容提要: 本书深入浅出,全面系统地介绍了PC机及单片机数据通信技术.内容包括:数据通信的基本概念,MODEM及编/解码技术、串行通信总线标准及接口技术、8051单片机间串行通信技术、PC机间的通信技术和PC机与8051间的通信技术。 本书内容丰富、新颖、实用,便于自学。适合作为大、中专院校计算机通信及相关专业的教材或参考书,也可供广大工程技术人员和爱好者参考。 第1章 数据通信基础 1.1 串行数据通信 1.1.1 数据通信的概念 1.1.2 串行通信的传送方式 1.1.3 异步通信和同步通信 1.1.4 波特率和接收/发送时钟 1.2 串行通信的过程及通信协议 1.2.1 串一并转换与设备同步 1.2.2 串行通信协议 1.3 通信介质的选择 1.3.1 通信同轴电缆 1.3.2 双绞线 1.3.3 电话线 1.3.4 电力线 1.3.5 光缆 第2章 数据通信中... [显示全部]
上传时间: 2013-11-22
上传用户:bruce5996
附件为:LCD12864显示汉字和数字的程序与电路 /* 自定义延时子函数 */ void delayms(uchar z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /* 判断LCD忙信号状态 */ void buys() { int dat; RW=1; RS=0; do { P0=0x00; E=1; dat=P0; E=0; dat=0x80 & dat; } while(!(dat==0x00)); } /* LCD写指令函数 */ void w_com(uchar com) { //buys(); RW=0; RS=0; E=1; P0=com; E=0; } /* LCD写数据函数 */ void w_date(uchar date) { //buys(); RW=0; RS=1; E=1; P0=date; E=0; } /* LCD选屏函数 */ void select_screen(uchar screen) { switch(screen) { case 0: //选择全屏 CS1=0; CS2=0; break; case 1: //选择左屏 CS1=0; CS2=1; break; case 2: //选择右屏 CS1=1; CS2=0; break; /* case 3: //选择右屏 CS1=1; CS2=1; break; */ } } /* LCDx向上滚屏显示 */ void lcd_rol() { int x; for(x=0;x<64;x++) { select_screen(0); w_com(0xc0+x); delayms(500); } } /* LCD清屏函数:清屏从第一页的第一列开始,总共8页,64列 */ void clear_screen(screen) { int x,y; select_screen(screen); //screen:0-选择全屏,1-选择左半屏,2-选择右半屏 for(x=0xb8;x<0xc0;x++) //从0xb8-0xbf,共8页 { w_com(x); w_com(0x40); //列的初始地址是0x40 for(y=0;y<64;y++) { w_date(0x00); } } } /* LCD显示汉字字库函数 */ void lcd_display_hanzi(uchar screen,uchar page,uchar col,uint mun) { //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-3,mun:显示第几个汉字的参数 int a; mun=mun*32; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } } /* LCD显示字符字库函数 */ void lcd_display_zifuk(uchar screen,uchar page,uchar col,uchar mun) { //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-7,mun:显示第几个汉字的参数 int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } } /* LCD显示数字字库函数 */ void lcd_display_shuzi(uchar screen,uchar page,uchar col,uchar mun) { //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-7,mun:显示第几个汉字的参数 int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } } /* LCD初始化函数 */ void lcd_init() { w_com(0x3f); //LCD开显示 w_com(0xc0); //LCD行初始地址,共64行 w_com(0xb8); //LCD页初始地址,共8页 w_com(0x40); //LCD列初始地址,共64列 } /* LCD显示主函数 */ void main() { //第一行 int x; lcd_init(); //LCD初始化 clear_screen(0); //LCD清屏幕 lcd_display_shuzi(1,0,4,5); //LCD显示数字 lcd_display_shuzi(1,0,5,1); //LCD显示数字 lcd_display_hanzi(1,0,3,0); //LCD显示汉字 lcd_display_hanzi(2,0,0,1); //LCD显示汉字 //LCD字符汉字 lcd_display_hanzi(2,0,1,2); //LCD显示汉字 //第二行 lcd_display_zifuk(1,1,2,0); //LCD显示字符 lcd_display_zifuk(1,1,3,0); //LCD显示字符 lcd_display_zifuk(1,1,4,0); //LCD显示字符 lcd_display_zifuk(1,1,5,4); //LCD显示字符 lcd_display_shuzi(1,1,6,8); //LCD显示字符 lcd_display_shuzi(1,1,7,9); //LCD显示字符 lcd_display_shuzi(2,1,0,5); //LCD显示字符 lcd_display_shuzi(2,1,1,1); //LCD显示字符 lcd_display_zifuk(2,1,2,4); lcd_display_zifuk(2,1,3,1); lcd_display_zifuk(2,1,4,2); lcd_display_zifuk(2,1,5,3); //第三行 for(x=0;x<4;x++) { lcd_display_hanzi(1,2,x,3+x); //LCD显示汉字 } for(x=0;x<4;x++) { lcd_display_hanzi(2,2,x,7+x); //LCD显示汉字 } //第四行 for(x=0;x<4;x++) { lcd_display_zifuk(1,3,x,5+x); //LCD显示汉字 } lcd_display_shuzi(1,3,4,7); lcd_display_shuzi(1,3,5,5); lcd_display_shuzi(1,3,6,5); lcd_display_zifuk(1,3,7,9); lcd_display_shuzi(2,3,0,8); lcd_display_shuzi(2,3,1,9); lcd_display_shuzi(2,3,2,9); lcd_display_shuzi(2,3,3,5); lcd_display_shuzi(2,3,4,6); lcd_display_shuzi(2,3,5,8); lcd_display_shuzi(2,3,6,9); lcd_display_shuzi(2,3,7,2); while(1); /* while(1) { // LCD向上滚屏显示 lcd_rol(); } */ }
上传时间: 2013-11-08
上传用户:aeiouetla
根据LED轮廓显示控制的结构特点,设计了基于STC单片机的显示控制器。该系统控制采用STC11/12系列单片机为控制处理器,加以外围电路,利用485接口实现主从远距离控制。设计了色带数据与效果数据格式,充分利用单片有限的存储空间完成更多显示效果。利用分控制器完成对现有市场上的6803、2803和1809系列LED专用驱动芯片的兼容。本案开发的LED护栏管显示屏控制器已产品化,控制效果良好。
上传时间: 2013-10-29
上传用户:rolypoly152
TLC1543是TI公司推出的采用SPI技术的模数转换器。具有输入通道多、高速、高分辨率、性价比高、易于和单片机接口等特点,在各种数据采集系统中有着广阔的应用空间。51单片机、TLC1543加上很少的外围器件即可构成一个高性价比的数据采集系统,同时TLC1543占用单片机I/O资源较少,使得单片机有足够的I/O资源去完成如控制、显示等功能。由AT89C52和TLC1543构成的三相单独可调400Hz中频电源的数据采集系统在实际运用中达到很好的效果。
上传时间: 2013-11-17
上传用户:xg262122
在单片机应用系统中,用户必须时刻掌握系统的运行状况及某些重要的过程信息,即用户必须通过显示系统获取当前单片机的运行情况,因此显示技术是单片机的重要组成部分。在实际应用中,为了节约端口资源和整机成本,通常采用单片机的通用串行口、8位移位寄存多闪烁现象越严重。本文介绍一种利用SPI器件优化单片机显示系统的方法,该方法克服了一般显示方法的以上两个缺点,具有一定的实用性。器74LS164及LED数码管构成串行动态显示系统,该系统一定程度优化了显示输出通道对单片机I/O端口的占用数量,但它仍需大量(几个LED就占用几条I/O口线)的I/O端口作LED片选,同时由于74LS164本身未提供输出允许端,单片机送来的串行数据从高位LED移向低位LED的过程中,会出现LED本应熄灭的笔划发光而形成闪烁现象,且LED数越多闪烁现象越严重。本文介绍一种利用SPI器件优化单片机显示系统的方法,该方法克服了一般显示方法的以上两个缺点,具有一定的实用性。
上传时间: 2013-10-30
上传用户:asdstation
摘要:利用STC89C55RD+的在应用可编程功能和射频芯片nRF401,设计了一个无线数据通信方式下的LED点阵显示系统。该系统采用了上一下位机的结构构建,利用无线收发模块实现显示信息及控制命令的发送,并且充分利用了该单片机大容量的数据Flash区,通过在应用可编程功能实现多条信息的实时发布、擦除和修改。关键词:单片机,在应用可编程,无线,点阵
上传时间: 2013-11-03
上传用户:zjwangyichao
介绍了单片机数据采集系统的硬件原理和软件设计。该系统以89C51 单片机为核心,以12 位TLC2543 为串行模数转换器,由MC14489 构成采集数据实时显示系统,带有RS2232 通信接口,系统具有易实现、易编程、可移植、体积小、功耗低等优点,具有良好的推广与应用价值。
上传时间: 2013-10-18
上传用户:熊少锋
交换机与多个现场单片机连通。现场单片机完成对各物理参量的数据采集,进行数字滤波、数据处理、比值告警、现场显示及对现场设备进行控制等,并定时或随机地向中央管理PC机报告过程情况。中央管理PC机定时或随机地汇集各测试点的信息,进行数据处理、显示打印、声光报警,并负责全局的综合控制、管理调度和策划指挥等任务。中央PC机可通过电话网依次自动拨号呼叫下属各现场单片机,单片机收到呼叫并建立联接后发送数据到中央管理PC机,各现场单片机之间则不能进行呼叫联络。由于单片机应用系统的安装数量和分布范围不同,与中心站的距离一般为几公里到几十公里,在单片机与PC机之间需要传送的数据量不是很大的情况下,采用调制解调器通过电话线路进行通信较为适用。下位单片机以其所在单位的电话号码作为其唯一的地址,并由单片机控制电话的使用,可以实现无人值守自动通信。每当电话响铃一定次数后仍无人接听,则单片机自动接入线路,通过不同标志来判断是主机呼叫还是人打电话。若是主机呼叫,表示中心站要求通信,单片机将保持与上位PC机连接,将各种测量数据发送出去并接收主机发来的命令;若是人打电话,则断开连接继续进行数据采集,并接通模拟响铃电路,提醒人们接听。
上传时间: 2014-12-27
上传用户:赵一霞a