1 / 24

第七章 常用程序练习

第七章 常用程序练习. 7.1 键盘及其接口. 7.1.1 独立式键盘接口 独立式按键结构. 2. 应用实例. 例 7-1-1 某单片机系统键盘结构如图 8-1-2 所示。试编写简单的按键处理程序 ,fosc=12MHz 。程序中应当考虑到键盘去抖动的问题。. 7.1.2 行列式键盘接口. 按键设置在行列式交点上,行列线分别连接到按键开关的两端。当行线通过上拉电阻接 +5 伏时,被钳位在高电平状态. 键识别方法. 1) 查询是否有键按下。 2) 查询按键所在行列位置。 3) 对所在的行号列号译码得到键值 。 4) 键的抖动处理。

Télécharger la présentation

第七章 常用程序练习

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 常用程序练习

  2. 7.1 键盘及其接口 • 7.1.1 独立式键盘接口 • 独立式按键结构

  3. 2.应用实例 • 例7-1-1 某单片机系统键盘结构如图8-1-2所示。试编写简单的按键处理程序,fosc=12MHz。程序中应当考虑到键盘去抖动的问题。

  4. 7.1.2 行列式键盘接口 • 按键设置在行列式交点上,行列线分别连接到按键开关的两端。当行线通过上拉电阻接+5伏时,被钳位在高电平状态 .

  5. 键识别方法 • 1)查询是否有键按下。 • 2)查询按键所在行列位置。 • 3)对所在的行号列号译码得到键值 。 • 4)键的抖动处理。 • 例7-2-2 根据图7-1-3,写出键盘处理程序。 • 源代码见程序清单

  6. 7.2 LED显示器接口 • 7.2.1 LED显示器结构与原理 • 七段LED显示块中有八个发光二极管,故也有人叫做八段显示器。其中七个发光二极管构成七笔字形“8”,一个发光二极管构成小数点。显示块有共阴极与共阳极两种。

  7. 段选码(字形码)

  8. 7.2.2 LED显示方式 • 7.2.2.1 LED静态显示方式

  9. 7.2.2.2 LED动态显示方式 • 八位LED动态显示电路只需要两个8位I/O口。其中一个控制段选码,另一个控制位选。要想每位显示不同的字符,必须利用人的视觉暂留,采用扫描方式。

  10. 动态显示与静态显示的比较 • 对相同个数的数码管来说,采用动态显示占用的I/O口线更少,但是因为需要CPU经常刷新显示内容,因此占用更多的CPU时间。

  11. 7.2.3 LED显示器接口实例 • 7.2.3.1 硬件译码器LED显示器接口 硬件译码器是使用BCD七段十六进制锁存、译码驱动芯片来完成BCD码到段选码的转换和显示驱动。当每个位的段选线上,使用一个芯片时为静态显示;若N位共用一个芯片作段选控制时为动态显示。常用的硬件译码器有MC14495、MC14499、CD4511等,应用时请详细查阅有关电气特性资料。

  12. 7.2.3.2 软件译码LED显示器接口

  13. 部分源程序 void display(uchar idata *p) { uchar sel,i; COM8155=0x03h; //PA、PB口输出方式 sel=0x01; for(i=0;i<8;i++) { PB8155=table[*p]; //输出段选码 PA8155=sel; //输出位选码 delay(1); p--; //取下一位待显示数据 sel=sel<<1; //选择下一位 } }

  14. 7.2.4 LED显示管理芯片MAX7219 • MAX7219是美国MAXIM公司生产的串行输入/输出共阴极显示驱动器。该芯片可直接驱动最多8位7段数字LED显示器,或64个LED和条形图显示器。它与微处理器的接口非常简单,仅用3个引脚与微处理器相应端连接即可实现最高10MHz串行口。MAX7219的位选方式独具特色,它允许用户选择多种译码方式译码选位,而且,每个显示位都能个别寻址和刷新,而不需要重写其他的显示位,这使得软件编程十分简单且灵活。

  15. 图8-2-6 MAX7219引脚图 7.2.4.1 引脚说明 • 该芯片采用24脚DIP和SO封装,工作电压4.0~5.5V,最大功耗1.1W。

  16. 7.2.4.2 基本工作原理及使用方法 • 对于MAX7219,串行数据是以16位数据包的形式从Din脚串行输入,在CLK的每一个上升沿一位一位地送入芯片内部16位移位寄存器,而不管Lout脚的状态如何。Load脚必须在第16个CLK上升沿出现的同时或之后,但在下一个CLK上升沿之前变为高电平,否则移入的数据将丢失。操作者只需编程发送16位数据包,就能简单地操作LED的位选以及段选,设置和改变MAX7219的工作模式。

  17. 16位数据包格式 • D7~D0:8位数据位,D7最高位,D0为最底位;  • D11~D8:4位地址位; • D15~D12:无关位,通常全取1。 MAX7219通过D11~D8 4位地址位译码,可寻址14个内部寄存器,分别是8个LED显示位寄存器,5个控制寄存器和1个空操作寄存器。LED显示寄存器由内部8×8静态RAM构成,操作者可直接对位寄存器进行个别寻址,以刷新和保持数据,只要V+超过2V(一般为+5V)。 • 内部RA M 地址01~08H 分别对应于DIG0~ DIG7。

  18. 几个控制寄存器的设置 • 停机寄存器(地址0CH):当D0=0时,MAX7219处于停机状态;当D0=1 ,正常工作状态。 • 译码模式选择寄存器(地址=09H);共有4种译码模式供选择,当数据位全0时选择“非译码方式”。在此方式下,8个数据位分别一一对应7个段和小数点。通常选择此方式。 • 扫描限制寄存器:地址=0BH;用于设置显示的LED个数(1~8),当D2D1D0=111、D7D6D5D4D3无关时,可接8个LED管。 • 亮度调节寄存器:地址=0AH;共有16级选择,用于LED显示亮度的强弱设置。 • 关断模式寄存器:地址=0CH;有两种模式选择:一种是关断状态模式(D0=0);一种是正常操作状态(D0=1),通常选择正常操作状态。 • 显示测试寄存器:地址=0FH;有两种选择用于设置LED是测试状态还是正常操作状态:当在测试状态时(D0=1)各位全应亮,一般选择正常操作状态(D0=0)。

  19. 图8-2-7 MAX7219与8031应用电路原理图 7.2.4.3 MAX7219的典型应用 • 源程序见程序清单

  20. 16×16点阵汉字“文” 7.3.2.4 汉字显示原理

  21. 汉字字模的提取 • 国家标准汉字字符集GB2312-80共收集了共7445个汉字和图形符号,其中汉字6763个,分为二级,一级汉字3755个,二级汉字3008个。 • 汉字图形符号根据其位置将其分为94个“区”,每个区包含94个汉字字符,每个汉字字符又称为一个“位”。区的序号和位的序号都是从01到94,

  22. 机内码、区位码 • 在PC机的文本文件中,汉字是以机内码的形式存储的,每个汉字占用两个字节:第一个字节为区码,为了与ASCII码区别,范围从十六进制的0A1H开始(小于80H的为ASCII码字符),对应区位码中区码的第一区;第二个字节为位码,范围也是从0A1H开始,对应某区中的第一个位码。这样,将汉字机内码减去0A0AH就得该汉字的区位码。

  23. 示例 “房”的机内码为十六进制的“B7BF”,其中“B7”表示区码,“BF”表示位码。所以“房”的区位码为 0B7BFH-0A0A0H=171FH。   将区码和位码分别转换为十进制得汉字“房”的区位码为“2331”,即“房”的点阵位于第23区的第31个字的位置,相当于在文件HZK16中的位置为第 32×[(23-1) ×94+(31-1)]=67136B以后的32个字节为“房”的显示点阵。

  24. 建汉字字库的方法 • 1 采用自编的软件,本书提供一个示例程序。 • 2 专用的C程序 • 3 专用的字模软件

More Related