




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能仪器课程设计报告智能仪器课程设计组员: 学院:机械与电子工程学院专业:电子信息工程 2016年1月目录第一章 系统设计分析31.1设计要求.31.2总体设计.3第二章 硬件电路设计分析2.1 RS232通信模块.32.2 点阵显示模块42.2.1 HC595芯片.42.2.3 1616点阵52.3 多机通信模块.6第三章 软件电路设计分析3.1 发送程序部分.73.2 接收程序部分.7 3.2.1 主程序7 3.2.2 点阵移动函数7 3.2.3 595数据传送函数.7附录一源程序.8附录二电路图.13第一章 系统设计分析11设计要求1) 通过C51控制点阵,显示汉字或英文2) 通过远程按键(通过RS232通信)控制点阵的上翻、下翻、左移、右移、暂停等功能12总体设计硬件方面主要通过595芯片连接CPU和点阵。RS232用于两机之间的数据发送与接收。其连接方式为两个单片机之间的TXD引脚和RXD引脚相互连接。软件方面此设计需要两个CPU相互通信分别达到显示与控制的功能。其中一个CPU用来通过发送返回的键码值到另一个CPU。另一个CPU接受其发送过来的键码值以后,调用相应的函数,控制点阵。第二章 硬件电路设计分析21 RS232通信模块1) RS232的主要作用是通信传输数据2) 发送数据(Transmitted data-TxD)通过TxD终端将串行数据发送到MODEM,(DTEDCE)。3) 接收数据(Received data-RxD)通过RxD线终端接收从MODEM发来的串行数据,(DCEDTE)。RS232转串口原理图:2. 2 点阵显示模块2.2.1 74HC595芯片1)595芯片简介74HC595具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器有相互独立的时钟。数据在SH_cp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在ST_cp(存储器时钟输入)的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。2)引脚声明符号引脚描述Q0-Q7第15脚,第1-7脚8位并行数据输出,GND第8脚地Q7第9脚串行数据输出MR第10脚主复位(低电平)SHCP第11脚数据输入时钟线STCP第12脚输出存储器锁存时钟线OE第13脚输出有效(低电平)DS第14脚串行数据输入VCC第16脚电源3) 与单片机连接电路图2.2.21616点阵1)点阵原理所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。也就是说用四个8*8点阵组合成一个16*16的点阵。比如要显示“你”则相应的点要点亮,由于点阵在列线上是低电平有效,而在行线上是高电平有效,所以要显示“你”字,则它的位代码信息要取反,即所有列(1316脚)送(0xF7,0x7F),而第一行(9脚)送1信号,然后第一行送0。再送第二行要显示的数据(1316脚)送(0xF7,0x7F),而第二行(14脚)送1信号。依此类推,只要每行数据显示时间间隔够短,利用人眼的视觉暂停作用,这样送16次数据扫描完16行后就会看到一个“你”字;第二种送数据的方法是字模信号送到行线上再扫描列线也是同样的道理。同样以“你”字来说明,16行(9、14、8、12、1、7、2、5)上送(,0x00,0x00)而第一列(13脚)送、“0”。同理扫描第二列。当行线上送了16次数据而列线扫描了16次后一个“你”字也就显示出来了。2)点阵与HC595连接示意图23 多机通信模块1)两单片机通过TXD、RXD相互连接,相互通信第三章 软件设计模块31 发送程序1)应用键盘键入值,反馈给CPU,通过串口通信发送给另个CPU流程:CPU串口通信发送字码CPU得到按键返回值检查是否有按键按下2)程序见附录32接收程序1)接收主机发来的键码值,调用相应的程序,配置相关寄存器接收主机发来的键码值流程:调用相应的操作函数配置相关寄存器点阵显示调用HC595传输函数2)程序见附录附录一1) 发送程序#include#define GPIO_KEY P1 /独立键盘用P1口void Delay10ms(unsigned int c); /延时10msunsigned char Key_Scan();void send(unsigned char sendValue)SBUF=sendValue;while(TI=0);TI=0 ;void UsartConfiguration() SCON=0X50;/设置为工作方式1TMOD=0X20;/设置计数器工作方式2PCON=0X80;/波特率加倍TH1=0XF3; /计数器初始值设置,注意波特4800的TL1=0XF3;ES=1;/打开接收中断EA=1;/打开总中断TR1=1; /打开计数器void main(void)unsigned char keyNum;UsartConfiguration();while(1)keyNum=Key_Scan();switch (keyNum)case(0xFE) : /返回按键K1的数据send(0x00);break;case(0xFD) : /返回按键K2的数据send(0x01);break;case(0xFB) : /返回按键K3的数据send(0x02);break;case(0xF7) : /返回按键K4的数据send(0x03);break;case(0xEF) : /返回按键K5的数据send(0x04);break;case(0xDF) : /返回按键K6的数据send(0x05);break;case(0xBF) : /返回按键K7的数据send(0x06);break;case(0x7F) : /返回按键K8的数据send(0x07);break;default:break;unsigned char Key_Scan()unsigned char keyValue = 0 , i; /保存键值if (GPIO_KEY != 0xFF)/检测按键K1是否按下Delay10ms(1);/消除抖动if (GPIO_KEY != 0xFF)/再次检测按键是否按下keyValue = GPIO_KEY;i = 0;while (i0;c-)for (b=38;b0;b-)for (a=130;a0;a-);2) 接收显示程序 /RS232串口通信#include#include #include text.h/调用自定义头文件#define uchar unsigned char/宏定义#define uint unsigned int /宏定义sbit R_CLK = P35;/特殊位定义sbit S_CLK = P36;/特殊位定义sbit Ser = P34;/特殊位定义uchar receiveData=0;/全局变量void UsartConfiguration();/串口初始化函数声明void SendData_595(uchar row8_1,uchar row16_9,uchar line16_9,uchar line8_1);/数据传送函数声明void upshift();/上移函数声明void downshift();/下移函数声明void leftshift();/左移函数声明void rightshift();/右移函数声明void allshift();/全部方向移动函数声明void main()SendData_595(0x00,0x00,0,0); /清屏UsartConfiguration(); /串口初始化while(1)if(RI = 1)/查看是否接收到数据 receiveData = SBUF;/读取数据RI = 0;/清除标志位 if(receiveData=0x01) /当收到01,循环上移显示upshift();if(receiveData=0x02)/当收到02,循环下移显示downshift();if(receiveData=0x03) /当收到03,循环左移显示 leftshift();if(receiveData=0x04) /当收到04,循环右移显示rightshift();if(receiveData=0x00) /当收到00,清屏SendData_595(0x00,0x00,0,0);if(receiveData=0x05)/当收到05,循环上左下右移显示allshift();elseSendData_595(0x00,0x00,0,0);void UsartConfiguration()SCON=0X50;TMOD=0X20;PCON=0X80;TH1=0XF3;TL1=0XF3;TR1=1;ES=1;EA=1;void upshift()/上移函数uchar i,j,time;while(1)for(j=0;j0;time-) /移动快慢for(i=0;i0;j-=2)/文字下移for(time=10;time0;time-) /移动快慢for(i=0;i16;i+)SendData_595(tab0i*2,tab0i*2+1,zitij+i*2,zitij+i*2+1); if(RI=1) return void leftshift()/左移函数uchar i,j,time;while(1)for(j=0;j0;time-)for(i=0;i0;j-=2)/文字右移for(time=10;time0;time-) /移动快慢for(i=0;i16;i+)SendData_595(zidj+i*2+1,zidj+i*2,tab0i*2+1,tab0i*2);if(RI=1) return ;void allshift()uchar i,j,time;while(1)for(j=0;j0;time-)for(i=0;i16;i+)SendData_595(tab0i*2,tab0i*2+1,zimoj+i*2,zimoj+i*2+1);if(RI=1) return ;for(j=0;j0;time-)for(i=0;i0;j-=2)for(time=10;time0;time-)for(i=0;i0;j-=2)for(time=10;time0;time-for(i=0;i16;i+)SendData_595(zidj+i*2+1,zidj+i*2,tab0i*2+1,tab0i*2);if(RI=1) return ;void SendData_595(uchar row8_1,uchar row16_9,uchar line16_9,uchar line8_1)uchar i;for(i=0;i8;i+)S_CLK = 0;Ser = line16_9 & 0x80;line
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷装饰工新员工考核试卷及答案
- 沈阳趣味跑活动方案策划
- 新春抽奖活动策划方案范文
- 青霉素营销策划方案
- 乡村普法咨询活动方案
- 传媒专业活动策划方案案例
- 思明门店活动促销方案策划
- 建筑方案设计图纸格式
- 建筑服务窗帘安装方案设计
- 云冈石窟营销传播方案
- 选煤厂安全知识培训课件
- 全新人教版七年级上册生物教案(全册)
- 道路工程检验批划分
- 高标准农田建设项目实施的组织与管理方案
- 积滞病中医护理方案
- 《免疫细胞疗法》课件
- 《遥感技术及其在环境监测中的应用》课件
- 6.《秋天的雨》第二课时课件
- 幼少女妇科恶性肿瘤-妇产科课件
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 2024手术室标本管理
评论
0/150
提交评论