- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机输入输出接口
* 例如图5.5是接有五个共阴极数码管的动态显示接口电路,用74LS373接成直通的方式作驱动 电路,阴极用非门74LS04反相门驱动,字形选择由P1口提供,位选择由P3口控制。 当P3.0~P3.4轮流输出1时,五个数码管轮流显示。P1.7接开关,当开关打向位置“1”时, 显示“12345”字样,当开关打向“2”时,显示“HELLO”字样,程序清单如下: * * 用C语言完成上述功能编程 #includereg51.h #define uint unsigned int #define uchar unsigned char sbit P17=P1^7; main( ) { uchar code tab1[5]={0x86,0xdb,0xcf,0xe6,0xed}; /*“1~5”的字 形码, 因P1.7接的开关,最高位送“1”*/ uchar code tab2[5]={0xf8,0xf9,0xb8,0xb8,0xbf}; /*“HELLO”的段码, 最高位送 “1”*/ * uchar i; uint j; while(1) { P3=0x01; for(i=0;i5;i++) { if(P17==1)P1=tab1[i]; else P1=tab2[i]; P3=1; for(j=0;j=25000;j++); }}} 课本习题5.8 *关于液晶显示 * 键盘输入 键盘是单片机系统中通用的输入设备,用于向系统输入数据或控制信息。键盘中一般矩阵式(行列式)键盘用得较多,适用于按键数量较多的场合。 矩阵式键盘由行线和列线组成,按键位于行线、列线的交叉点上。当键被按下,则其交点的行线和列线接通。行和列可分别用两个I/O口来控制。 D7 D6 D5 D4 D3 D2 D1 D0 I/O 接口 +5V * 1. 判断是否有键按下 原理:行线通过上拉电阻接+5V上 (1)平时无按键动作时,行线处于高电平状态; (2)若有键按下,行线状态将由与行线相连的列线电平决定。 步骤: (1) 先使所有列线为低电平( I/O 输出0) (2) 读行线状态(输入口) 当无键按下时,所有行线为高电平,即读到“全1”数据; 当有某键按下时,总会有一根行线为低电平,即读到的数 据不全为“1” 。 D7 D6 D5 D4 D3 D2 D1 D0 I/O 接口 +5V * 2. 按键的识别(识别键的行列位置) (1)扫描法 a. 依次给每一根列(行)线送低电平; b. 读所有行线状态 若全为‘1’,则所按下之键不在此低电平列上; 若不全为‘1’(有一根为‘0’),则按键在现有低电平行 与低电平列的交叉处。 D7 D6 D5 D4 D3 D2 D1 D0 I/O 接口 +5V * (2) 反转法 a. 将行线接一并口,做输出方式;列线接一并口,做输入方式。 使所有行线为低电平(送全“0”),读入列线值,为“0”的那列, 即按键所在列; b. 反过来,使行线做输入方式,列线做输出方式。将刚读到的 列线值输出,然后读行线值,为“0”的那行,即按键所在行。 (0) D7 (0) D6 (0) D5 (0) D4 (1) D3 (1) D2 (0) D1 (1) D0 I/O 接口 +5V +5V +5V (1) D7 (0) D6 (1) D5 (1) D4 (0) D3 (0) D2 (0) D1 (0) D0 I/O 接口 +5V +5V +5V (0) (0) (0) (0) (1) (1) (1) (1) (1) (1) (1) (1) (0) (0) (0) (0) * P1=0x0f; while(P1==0x0f); //判断有无按键 if(P1!=0x0f) { delay(); //消抖 P1=0x0f; m=P1; P1=0xf0; n=P1; mn=m|n; switch(mn) { case 0xee: break; case 0xed: break; case 0xeb: 。。。。。。。 * 3. 按键抖动的消除 按键或键盘都是一个机械开关,键的按下和放开是利用机械触点的闭合和断开来实现的。由于机械触点的弹
您可能关注的文档
最近下载
- 24点题目(200题)与答案种数.docx VIP
- 本特勒电动汽车平台电池包技术--本特勒BENTELER.pdf VIP
- 中国金融移动支付 远程支付应用 第4部分:文件数据格式规范.pdf VIP
- 2022年小学数学新课标解读.pdf VIP
- 河北省围场满族蒙古族自治县2025年上半年事业单位公开招聘教师岗试题含答案分析.docx VIP
- 电子工业洁净厂房设计规范完整版2024.pdf VIP
- 2024年艺术文化生活娱乐知识竞赛-趣味知识竞赛考试历年真题荟萃带答案.docx VIP
- 石油科技成果间接经济效益计算方法.ppt VIP
- 生菜全程机械化技术规范.pdf
- 行为习惯养成教育主题班会PPT课件.pptx VIP
文档评论(0)