单片机人机交互系统的C语言编程简介

第5章 单片机人机交互系统的C51语言编程 5.1 单片机的输入/输出端口 5.2 LED数码管显示器 5.3 LED数码管点阵显示器 5.4 液晶显示器 5.5 非编码键盘 5.6 本章小结 5.7 实训五 模拟数字密码锁 教学提示 教学要求 5.1 单片机的输入/输出端口 5.2 LED数码管显示器 5.2.1 LED数码管显示器简介 5.2.2 静态显示编码 5.2.3 动态显示编码静态显示编程 5.2.1 LED数码管显示器简介 5.2.2 静态显示编程 5.2.3 动态显示编程 5.3 LED数码管点阵显示器 5.3.1 字母、数字及图形的显示 5.3.2 中文字符的显示 5.3.1 字母、数字及图形的显示 5.3.1 字母、数字及图形的显示 5.3.2 中文字符的显示 5.4 液晶显示器 5.4.1 点阵字符型LCD的内部结构 5.4.2 点阵字符型LCD的指令系统 5.4.3 点阵字符型LCD应用举例 5.4.1 点阵字符型LCD的内部结构 5.4.2 点阵字符型LCD的指令系统 5.4.3 点阵字符型LCD应用举例 5.5 非编码键盘 5.5.1 线性非编码键盘 5.5.2 矩阵非编码键盘 5.5.1 线性非编码键盘 5.5.2 矩阵非编码键盘 5.6 本章小结 5.7 实训五 模拟数字密码锁 (a) 主机、显示部分 (b) 键盘部分 图5.26 矩阵非编码键盘的应用 根据矩阵非编码键盘逐行扫描法处理流程,键盘扫描 程序应包括以下内容: (1) 查询是否有键被按下 首先单片机向行扫描口输出扫描码F0H,然后从列检 测口读取列检测信号,只要有一列信号不为“1”,即P1口的值不等于F0H,则表示有键被按下;否则表示无键被按下。 (2) 查询闭合键所在的行列位置 若有键被按下,单片机将得到的列检测信号取反,列 检测口中为1的位便是闭合键所在的列。 列号确定后,还需要进行逐行扫描以确定行号。单片 机首先向行扫描口输出第1行的扫描码FEH,接着读列检测口,若列检测信号全为“1”,则表示闭合键不在第1行。接着向行扫描口输出第2行的扫描码FDH,再读列检测 口,……。以此类推,直到找到闭合键所在的行,并将该 行的扫描码取反保存。如果扫描完所有的行后仍没有找到 闭合键,则结束行扫描,判定本次按键是误动作。 图5.15 例5.5程序流程图 根据题目要求,主程序的流程图如图5.15所示。 液晶显示器(LCD)由于功耗低、抗干扰能力强等优点,日渐成为各种便携式产品、仪器仪表以及工控产品的理想显示器。LCD种类繁多,按显示形式及排列形状可分为字段型、点阵字符型、点阵图形型。单片机应用系统中主要使用后两种。 本节重点介绍1602点阵字符型LCD(Proteus ISIS中的LM016L),16代表每行可显示16个字符; 02表示共有2行,即这种LCD显示器可同时显示32个字符,如图5.16所示。 图5.16 1602点阵字符型LCD 图5.17 1602点阵字符型LCD的内部结构框图 1602点阵字符型LCD显示模块(LCM) 由LCD控制器、LCD 驱动器、LCD显示装 置(液晶屏)等组成, 主要用于显示数字、 字母、图形符号及少 量自定义符号,内部 结构如图5.17所示。 w g W G 7 ' (8) 0111 v f V F 6 & (7) 0110 u e U E 5 % (6) 0101 t d T D 4 $ (5) 0100 s c S C 3 # (4) 0011 r b R B 2 ” (3) 0010 q a Q A 1 ! (2) 0001 p \ P @ 0 (1) 0000 0111 0110 0101 0100 0011 0010 0000 (CGRAM) 高4位 低4位 表5-5 字符发生器中部分常用的5×7点阵字符代码 ← o — O ? / (8) 1111 → n ^ N > · (7) 1110 } m ] M = ˉ (6) 1101 | l ¥ L < , (5) 1100 { k [ K ; + (4) 1011 z j Z J : * (3) 1010 y i Y I 9 ) (2) 1001 x h X H 8 ( (1) 1000 续表5-5 字符发生器中部分常用的5×7点阵字符代码 图5.19 1602点阵字符型LCD的显示地址编码 点阵字符型液晶显示模块是一个智能化的器

c语言人机互动编程,单片机人机交互系统的C语言编程简介.ppt相关推荐

  1. 烟雾检测电路c语言程序,基于51单片机火灾报警器系统烟雾检测温度检测设计(原理图+程序仿真+论文)...

    课题题目基于单片机的火灾自动报警系统 课题的目的.意义以及和本课题有关的国内外现状分析:1.目的:本系统以单片机为主控单元,能够及时监测到系统故障和环境中有无火灾,火灾一旦发生将实现声光报警,并采取有 ...

  2. 按键去抖动c语言编程,单片机实现电脑键盘去抖的编程设计

    当轻触开关合闭或是断掉时都有每段电平不平稳的時期,轻触开关在合闭时不容易立刻就平稳的接入,在断掉时也不容易突然之间完全断掉,只是在合闭和断掉的一瞬间随着了一个一个的电平颤动.这类颤动通常都会10ms上 ...

  3. ubuntu下c语言编程工具,Ubuntu系统下C语言代码检查工具(Splint)

    看一下下面的代码(当然包括错误,以检验splint的功能): #include int main(int argc,char* argv[]){ int a=100; /*没有使用的变量*/ int ...

  4. java和c语言的区别_单片机为什么一直用C语言,不用其他编程语言?只有学过的知道...

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言. 这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢 ...

  5. 单片机c语言时钟设计,基于单片机的数字时钟C语言设计.pdf

    第 2O卷第 6期 北华航天工业学 院学报 Vo1.2O No.6 2010年 l2月 JournalofNorthChinaInstituteofAerospaceEngineering Dec.2 ...

  6. 步进电机应用c语言程序设计实例,51单片机调节步进电机应用C语言程序设计

    51单片机调节步进电机应用C语言程序设计 //步进电机应用C语言程序设计 #include #define uchar unsigned char sbit dula=P2^6; //数码管显示段选I ...

  7. 单片机c语言中断意义,51单片机中断系统的重要性

    描述 在接下来的教程中,将会介绍定时器.串口通信等外设的基本使用,而这些外设的使用都要涉及中断,而且中断是单片机或嵌入式开发中一个相当重要的概念.不能掌握中断系统,就无法灵活应用这些外设. 1.什么是 ...

  8. 用C语言编程网上购物系统,基于c语言的购物系统.doc

    基于c语言的购物系统 #include #include #include #include #include /******************************************* ...

  9. c语言语法sc,适合于嵌入式系统的C语言单元测试框架:SCUNIT

    说明 主流语言都有测试框架,在嵌入式领域特别是资源紧缺的单片机工程中没有合适的测试框架.本文发布一种简单的C语言测试框架SCUNIT,可以应用于嵌入式领域. 测试环境 本框架是基于标准C语言编写,对平 ...

最新文章

  1. 干货 | 《利用Python进行数据分析》资料开源下载
  2. java8 时间 LocalDateTime常用方法
  3. Html制作知识库管理系统,HTML 编辑器
  4. android 全屏动画,Android开发之全屏与非全屏的切换设置方法小结
  5. [vue] 为什么data属性必须声明为返回一个初始数据对应的函数呢?
  6. littlevgl 透明按钮_张家港3-10吨叉车日租价格透明2020
  7. 嘉善 机器人比赛_电脑机器人比赛辅导教师培训在浙师大嘉善附校举行
  8. int** 赋值_关于Java语言复合赋值运算符的两个问题,快来瞧瞧
  9. 详解数据治理相关的7个术语和名词
  10. adc采集出来一段波形 如何求周期与频率_DMA+ADC快速采集直流无刷电机电流
  11. Python__正则表达式
  12. docker network 网络模式
  13. 详解云原生应用实践与未来趋势
  14. 十字链表实现矩阵存储
  15. Markdown 语法(1)- 写标题
  16. EMUI10安装java_速升级!荣耀Play推EMUI 9.1正式版更新:方舟编译器和EROFS系统来了 - IT之家...
  17. 做好PMC管理三大工作,轻松搞定生产计划与物料控制
  18. js如何获取当天开始时间和结束时时间并传递(时间戳)给后端
  19. SpringBoot【基础篇】
  20. linux 搜狗输入法 太慢,【分享】ibus使用搜狗输入法词库后,反应慢的解决方法...

热门文章

  1. Linux学习日志-01
  2. 记录Linux下安装elasticSearch时遇到的一些错误
  3. Java BlockingQueue
  4. https请求连接超时
  5. 碳排放权、碳交易日度数据分部门、能源碳排放面板数据
  6. oracle导出一半报1046,Oracle 数据库1046事件
  7. 将uchar转换为Mat并显示出来
  8. mysql 42000 报错_MySQL SQL Error: 1064, SQLState: 42000 错误
  9. Java一维数组和二维数组的长度
  10. Phobos Runtime Library