应急呼叫服务器的设计论文(编辑修改稿)内容摘要:

工 业 大 学 课 程 设 计 说 明 书(论 文) 9 符更清晰。 典型的结构如图 所示。 人机对话接口电路的设计 在单片机应用系统中,为了控制其运行状态,需要向系统输入一些命令或数据,因此应用系统中应设有键盘, 这些键或键盘都是以开关状态来设置控制功能或输入数据的。 但是,这些开关绝不仅仅是简单的电平输入。 当所设置的功能键按下时,单片机应用系统应完成该按键所设定的功能,因此,键盘信息输入是与软件结构密切相关的。 对于任何一个单片机应用系统,键盘总要有其相应的接口电路与 CPU 相连,通过软件了解键盘输入的信息。 本系统设置了四个独立按键A A B B2,分别代表不同房间不同病床号,通过光电耦合器与单片机的 P3 口的图 12864 液晶显示电路 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 10 低四位相连接, 电路如图 所示。 图 按键电路 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 11 第 3 章 程序 设计 程序流程图 本设计 主程序主要完成系统参数的初始化、按键扫描、键值处理、 电流电压转换 和扫描显示等,其主程序流程图如图 所示。 图 主程序流程图 开始 数据 初始化 判断 A1 是否为 0 判断 A2 是否为 0 判断 B2 是否为 0 判断 B1 是否为 0 12864 液晶显示数据 Yes Yes Yes Yes No No No No 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 12 源程序清单 include include define uchar unsigned char define uint unsigned int //下面是点阵数据,一个汉字有 32 字节数据组成 unsigned char code yi[]= //一 { 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }。 unsigned char code hao[]= //号 { 0x80,0x80,0x80,0xBE,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xBE,0x80,0x80,0x80,0x00, 0x00,0x00,0x00,0x06,0x05,0x04,0x04,0x04,0x44,0x84,0x44,0x3C,0x00,0x00,0x00,0x00, }。 unsigned char code bing[]= //病 { 0x10,0x60,0x00,0xFC,0x04,0x24,0x24,0x24,0x25,0xE6,0x24,0x24,0x24,0x24,0x04,0x00, 0x84,0x42,0x31,0x0F,0x00,0xFF,0x11,0x09,0x05,0x03,0x05,0x59,0x81,0x7F,0x00,0x00, }。 unsigned char code fang[]= //房 { 0x00,0x00,0xFC,0x24,0x24,0x24,0x25,0x66,0xA4,0x24,0x24,0x24,0x24,0x3C,0x00,0x00, 0x40,0x30,0x0F,0x81,0x41,0x31,0x0F,0x09,0x09,0x09,0x49,0x89,0x79,0x01,0x00,0x00, }。 unsigned char code er[]= //二 { 0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00, 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, }。 unsigned char code chuang[]= //床 { 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 13 0x00,0x00,0xFC,0x04,0x44,0x44,0x44,0x45,0xF6,0x44,0x44,0x44,0x44,0x44,0x04,0x00, 0x40,0x30,0x0F,0x20,0x10,0x08,0x06,0x01,0xFF,0x01,0x06,0x08,0x10,0x20,0x20,0x00, }。 unsigned char code wei[]= //位 { 0x00,0x80,0x60,0xF8,0x07,0x10,0x90,0x10,0x11,0x16,0x10,0x10,0xD0,0x10,0x00,0x00, 0x01,0x00,0x00,0xFF,0x40,0x40,0x41,0x5E,0x40,0x40,0x70,0x4E,0x41,0x40,0x40,0x00, }。 sbit CS1=P2^4。 //片选 1,低电平有效, CS1=0 开左屏幕, CS1=1 关左屏幕 sbit CS2=P2^3。 //片选 2,低电平有效, CS2=0 开右屏幕, CS2=1 关右屏幕 sbit RS=P2^2。 //数据,指令选择信号, RS=1 为数据操作, RS=0 为写指令或读状态(一般为读忙标志) sbit RW=P2^1。 //读写选择信号, RW=1 为读选通, RW=0 为写选通 sbit EN=P2^0。 //读写使能信号 sbit A1=P3^0。 sbit A2=P3^1。 sbit B1=P3^2。 sbit B2=P3^3。 void busy()//忙检测函数 { P0=0X00。 //这句不能少 RS=0。 RW=1。 EN=1。 while(P0amp。 0X80)。 //P0amp。 0X80 结果为真则一直执行空操作,也就是说 P0amp。 0X80 为 0则结束循环 EN=0。 } void wcmd(uchar cmd) { busy()。 //每次写 入指令或数据之前都进行忙检测 RS=0。 RW=0。 P0=cmd。 EN=1。 _nop_()。 _nop_()。 //在 EN 下降沿写入数据和指令 EN=0。 } void wdata(uchar dat) //写命令和写数据只在 RS=0 或 RS=1 上不同,其余都相同 { busy()。 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 14 RS=1。 RW=0。 P0=dat。 EN=1。 _nop_()。 _nop_()。 //在 EN 下降沿写入数据和指令 EN=0。 } void set_page(uchar page)//设置页, 12864LCD 共有 8页,每页有 8行点阵点。 { page=0xb8|page。 //首页地址为 0XB8 wcmd(page)。 //page 取值范围为 0~7,表示第 1到 8页。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。