[计算机软件及应用]实验三:数码管与键盘控制课件

上传人:公**** 文档编号:567473883 上传时间:2024-07-20 格式:PPT 页数:38 大小:701.02KB
返回 下载 相关 举报
[计算机软件及应用]实验三:数码管与键盘控制课件_第1页
第1页 / 共38页
[计算机软件及应用]实验三:数码管与键盘控制课件_第2页
第2页 / 共38页
[计算机软件及应用]实验三:数码管与键盘控制课件_第3页
第3页 / 共38页
[计算机软件及应用]实验三:数码管与键盘控制课件_第4页
第4页 / 共38页
[计算机软件及应用]实验三:数码管与键盘控制课件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《[计算机软件及应用]实验三:数码管与键盘控制课件》由会员分享,可在线阅读,更多相关《[计算机软件及应用]实验三:数码管与键盘控制课件(38页珍藏版)》请在金锄头文库上搜索。

1、实验三数码管与键盘控制IIC总线接口IIC (I2C)概述nS3C2410处理器支持一个多主IIC串行总线接口,用于连接微控制器及其外围设备 n两根串行线n一根专用串行数据线SDAn一根串行时钟线SCLn每个连接到总线的器件根据唯一的地址来识别 n传输数据的设备间是简单的主从关系n两个或多个器件同时发起数据传输时,可以通过冲突检测和仲裁来防止数据被破坏n数据传输位速率在标准模式下可达100kbit/s,在快速模式下可达400kbit/s,在高速模式下可达3.4Mbit/s n发送到SDA上的每个数据必须是8位的 IIC总线接口(1)n4种操作模式 n主发送器模式n主接收器模式n从发送器模式n从

2、接收器模式IIC总线接口(2)nIIC总线接口空闲时通常处于从模式n起始条件n当SCL保持高电平时,一个SDA下降沿初始化一个起始条件 n停止条件 n当SCL保持高电平时SDA的一个上升沿产生一个停止信号IIC总线接口(3)IIC总线接口(4)n(主设备)数据发送过程n产生起始信号n发送从设备地址(即寻找通信对象)n接收ACK信号(表明从设备已连接到总线)n发送8位数据n接收ACKn产生结束信号IIC总线接口(5)IIC总线接口(6)IIC总线接口(7)IIC总线接口(8)IIC相关寄存器n总线控制寄存器,IICCONn总线控制/状态寄存器,IICSTATn总线Tx/Rx移位寄存器,IICDS

3、n总线地址寄存器,IICADD IICCON (0x54000000)n0-3: IIC-bus transmit clock frequency n4: IIC-BUS TX/RX interrupt pending flagn5: TX/RX interrupt n7: ack generationIICSTAT (0x54000004)n0: IIC-bus last-received bit status flagn0: Last-received bit is 0 (ack was received)n1: (ack was not received)n1: address zero

4、 status flagn2: address-as-slave status flagn3: arbitration status flagn4: serial output n5: start/stop conditionn6-7: mode selectionIICADD (0x54000008)n1-7: slave addressn0: not mapped IICDS (0X500000C)n0-7: 8-bit data示例IIC初始化void iic_init_8led(void)f_nGetACK = 0; / Enable interruptrINTMOD = 0x0; r

5、SRCPND = rSRCPND; / clear all interrupt rINTPND = rINTPND; / clear all interruptrINTMSK &= BIT_IIC; pISR_IIC= (unsigned)iic_int_8led;/ Initialize iicrIICADD = 0x10; / S3C2410X slave address rIICCON = 0xef; / Enable ACK, interrupt, set IICCLK=MCLK/512 rIICSTAT= 0x10;/ Enable TX/RX 示例向从设备发送数据nvoid iic

6、_write_8led(UINT32T unSlaveAddr,UINT32T unAddr,UINT8T ucData)f_nGetACK = 0; / Send control byte rIICDS = unSlaveAddr; / 0x70 rIICSTAT = 0xf0; / Master Tx,Start 11110000 while(f_nGetACK = 0); _nGetACK = 0;/ Send address rIICDS = unAddr; rIICCON = 0xef;/ Resumes IIC operation. 11101111while(f_nGetACK

7、= 0); f_nGetACK = 0; / Wait ACK / Send data rIICDS = ucData; rIICCON = 0xef; / Resumes IIC operation. while(f_nGetACK = 0); f_nGetACK = 0; / Wait ACK / End send rIICSTAT = 0xd0;/ Stop Master Tx condition rIICCON = 0xef;/ Resumes IIC operation. delay(5);/ Wait until stop condtion is in effect.数码管显示结构

8、n由8个发光二极管组成n“日”字加上右下角的小数点类型n共阳极n8根二极管阳极连在一起n共阴极n8根二极管阴极连在一起工作原理n低电平信号点亮二极管n高电平信号熄灭二极管n8个二极管信号可用8位二进制来表示数码管显示开发板中09的表示:0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6连接电路连接电路连接图S3C2410IICSDAIICSCLZLG7290.S3C2410通过IIC向ZLG7290写入一个8位编码即可控制数码管的显示编程实现初始化void iic_init_8led(void)f_nGetACK = 0; / Enable in

9、terruptrINTMOD = 0x0; rSRCPND = rSRCPND; / clear all interrupt rINTPND = rINTPND; / clear all interruptrINTMSK &= BIT_IIC; pISR_IIC= (unsigned)iic_int_8led;/ Initialize iicrIICADD = 0x10; / S3C2410X slave address rIICCON = 0xef; / Enable ACK, interrupt, set IICCLK=MCLK/512 rIICSTAT= 0x10;/ Enable TX

10、/RX 由于通过由于通过IIC向控制芯片写数据,所以必须初始化向控制芯片写数据,所以必须初始化IIC有疑问吗?有疑问吗?难道难道GPIO端口端口E的的14、15引脚不用指定引脚不用指定IIC功能?功能?编程实现数码管显示void led8_test(void)int i, j, k;iic_init_8led();for(;) for(j=0; j10; j+) for(i=0; i8; i+) k = 9-(i+j)%10; iic_write_8led(0x70, 0x10+i, f_szDigitalk); /write to DpRam0DpRam7 of ZLG7290delay(1

11、0000); 键盘控制一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。键盘扫描阵列键盘电路设计原理n读取键值的方法n中断式n键盘按下时产生一个外部中断通知CPU,并由中断处理程序通过不同的地址读取数据线上的状态,判断哪个按键被按下。n扫描法n对键盘上的某一行发送低电平,其他为高电平,然后读取列值,若列值中有一位是低,表明该行与低电平对应列的键被按下。否则扫描下一行。n反转法n先将所有行扫描线输出低电平,读列值,若列值有一位是低,表明有键按下;接着所有列扫描线输出低电平,再读行值。根据读到的值组合就可以查表得到键码。IIC读取键值nZLG7290连接键盘n由ZLG7290实现键盘按键的检测

12、,并保存在其中的键值寄存器(0X01)中nS3C2410通过IIC接口从ZLG7290取得按键数据键盘中断信号,IICSDA IICSCL INT GPIO引脚须功能设置ZLG7290 (slave address =70H )n键值寄存器(Key)n地址01H,复位值00H。Key 表示被压按键的键值。当Key=0 时,表示没有键被压按n连击次数计数器(RepeatCnt)n地址02H,复位值00H 。0表示单击键; 大于0 表示键的连击次数。n功能键寄存器(FunctionKey)n地址03H,复位值0FFH。FunctionKey 对应位的值=0 表示对应功能键被压按。n命令缓冲区(Cm

13、dBuf0CmdBuf1)n地址07H08H,复位值00H00H。用于传输指令。n闪烁控制寄存器(FlashOnOff)n地址0CH,高4 位表示闪烁时亮的时间,低4 位表示闪烁时灭的时间n扫描位数寄存器(ScanNum)n地址0DH,复位值7。用于控制最大的扫描显示位数n显示缓存寄存器(DpRam0DpRam7)n地址10H17H,复位值00H00H。缓存中位置1表示该像素亮示例n中断处理void _irq keyboard_int(void) ClearPending(BIT_EINT1); g_nKeyPress = 1;示例n读取键值while(g_nKeyPress = 0);iic_read_keybd(0x70, 0x1, &ucChar);实验三任务n看教程理解示例代码n在开发板上跑通示例代码n编程实现:把键盘按键次数显示在数码管上n提交实验报告

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号