三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4键盘程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按键按下 {delayms(1); //延时去抖动 if((PINC&0x0f)!=0x0f) //有按下则判断 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //复位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按键是否放开 { display(data); } i=4; //计算返回码 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的键盘码 } } else return 17; //没有按键按下 }
上传时间: 2013-11-12
上传用户:a673761058
载波相移正弦脉宽调制(SPWM)技术是一种适用于大功率电力开关变换装置的高性能开关调制策略,在有源电力滤波器中有良好的应用前景。本文介绍了如何利用高性能数字信号处理器TMS320F28335的片内外设事件管理器(EV)模块产生三相SPWM波,给出了程序流程图及关键程序源码。该方法采用不对称规则采样算法,参数计算主要采用查表法,计算量小,实时性高。在工程实践中表明,该方法既能满足控制精度要求,又能满足实时性要求,可以很好地控制逆变电源的输出。
上传时间: 2013-11-05
上传用户:tzrdcaabb
超级单片机开发工具,包含:模拟/数字转换表计算,LED 编码器,色环电阻阻值计算,Hex/Bin转换,串口调试器,端口监视器等实用功能 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。 1. 模拟/数字转换表计算 本功能主要用于准备用于查表计算的 R/T 表格,主要用于温度、浊度等模拟量的测量,根据电路分压电阻的位置分为两种,可以参看图示选择正确的电路连接形式;可自定义分压电阻阻值;目前支持8位 /10位转换精度;可选择生成汇编/C源代码格式的数据等。 2. LED 编码器 本功能主要用于自动根据图形信息、段位置信息生成可保存在单片机程序存储器中供查表使用的数据。可自行定义字符的图形及各段的位置信息;可以选择LED类型,目前有 7段、14段、16段三种类型;自带图形定义,也可自定义并能保存自定义方案;自定义位置信息并可保存;可以生成 8位、4位编码,4位编码主要针对一些有 4个COM端的LED/LCD驱动器;同样可以保存为C/ASM格式数据。 3. 色环电阻阻值计算 本功能主要为记不住色环值的人(像我)用的,比较简单,单击相应环的相应颜色,阻值将实时给出。 4. Hex/Bin转换 Intel Hex格式文件和Bin格式文件相互转换,本功能使用机会较少。 Hex/Bin文件转换为文本方式(变量定义方式),将Hex文件或Bin文件转换为C/ASM源代码格式的数据。 CRC计算,提供3种计算方法。 5. 串口调试器 可以通过串口接收/发送数据,作为普通的串口调试器,可以手动发送所填内容,也可以发送整个文件; 内存映射功能,对于监控单片机内存非常方便,还可以定义内存变量,自动从接收到的数据中提取变量值,支持字节型、整型、长整型、浮点型、双精度型、位掩码(可用于位变量)、数组型(其他不规则变量)等,同时支持10进制、16进制、2进制显示;可以自由选择需要实时监测的变量;变量方案可以存盘等等;可以设为固定长度或定义首/尾标志,设置内存中实际起始地址,显示时和计算变量时用;由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本); 变量组合,适用于文本方式的变量监测,例如: Var1=1111#var2=2222#var3=333.333 通讯时可以选择二进制、文本方式显示;可设置自动滚屏;设置最大显示行数; 可以选择多命令交互方式通讯,且可以作为主发方、从发方;主发时可以循环发送所选命令;从发时可以定义自动应答命令,即接收到表中所列的命令后,自动用相应内容应答,是不是很实用? 可以设为手动发送或定时发送。 可自定义通讯超时时间。 可以保存历史数据,包括发送和接收数据! 计划加入调制解调器控制。 6. 端口监视器 监视所选串口/并口的一切通讯活动而不占用其资源,可以设置过滤条件,可同时监视多个端口,可以保存数据,可以直接记录到文件中。
上传时间: 2013-10-13
上传用户:大灰狼123456
超级单片机开发工具,包含:模拟/数字转换表计算,LED 编码器,色环电阻阻值计算,Hex/Bin转换,串口调试器,端口监视器等实用功能 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。 1. 模拟/数字转换表计算 本功能主要用于准备用于查表计算的 R/T 表格,主要用于温度、浊度等模拟量的测量,根据电路分压电阻的位置分为两种,可以参看图示选择正确的电路连接形式;可自定义分压电阻阻值;目前支持8位 /10位转换精度;可选择生成汇编/C源代码格式的数据等。 2. LED 编码器 本功能主要用于自动根据图形信息、段位置信息生成可保存在单片机程序存储器中供查表使用的数据。可自行定义字符的图形及各段的位置信息;可以选择LED类型,目前有 7段、14段、16段三种类型;自带图形定义,也可自定义并能保存自定义方案;自定义位置信息并可保存;可以生成 8位、4位编码,4位编码主要针对一些有 4个COM端的LED/LCD驱动器;同样可以保存为C/ASM格式数据。 3. 色环电阻阻值计算 本功能主要为记不住色环值的人(像我)用的,比较简单,单击相应环的相应颜色,阻值将实时给出。 4. Hex/Bin转换 Intel Hex格式文件和Bin格式文件相互转换,本功能使用机会较少。 Hex/Bin文件转换为文本方式(变量定义方式),将Hex文件或Bin文件转换为C/ASM源代码格式的数据。 CRC计算,提供3种计算方法。 5. 串口调试器 可以通过串口接收/发送数据,作为普通的串口调试器,可以手动发送所填内容,也可以发送整个文件; 内存映射功能,对于监控单片机内存非常方便,还可以定义内存变量,自动从接收到的数据中提取变量值,支持字节型、整型、长整型、浮点型、双精度型、位掩码(可用于位变量)、数组型(其他不规则变量)等,同时支持10进制、16进制、2进制显示;可以自由选择需要实时监测的变量;变量方案可以存盘等等;可以设为固定长度或定义首/尾标志,设置内存中实际起始地址,显示时和计算变量时用;由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本); 变量组合,适用于文本方式的变量监测,例如: Var1=1111#var2=2222#var3=333.333 通讯时可以选择二进制、文本方式显示;可设置自动滚屏;设置最大显示行数; 可以选择多命令交互方式通讯,且可以作为主发方、从发方;主发时可以循环发送所选命令;从发时可以定义自动应答命令,即接收到表中所列的命令后,自动用相应内容应答,是不是很实用? 可以设为手动发送或定时发送。 可自定义通讯超时时间。 可以保存历史数据,包括发送和接收数据! 计划加入调制解调器控制。 6. 端口监视器 监视所选串口/并口的一切通讯活动而不占用其资源,可以设置过滤条件,可同时监视多个端口,可以保存数据,可以直接记录到文件中。
上传时间: 2013-10-29
上传用户:lacsx
软件介绍:主要用于LED数码管段位置信息生成,可保存在单片机程序存储器中供查表使用的数据。可自行修改数码管各段的位置信息;可以选择LED类型:共阴或共阳;自定义位置信息并可保存;可以生成 8位同样可以保存为C、ASM、PIC、EMC、数组等格式数据。
上传时间: 2013-12-31
上传用户:zwei41
在《软件加密技术》这本书里看过PE文件各部分的详细解释之后,我也有了一个自己写PE文件分析器的的想法。虽然好的分析器不在少数,但对于一堆十六进制数,有些朋友可能不明白它代表什么意思。如果在程序里就可以将这些01序列转换成可以直接看懂得信息,那至少用户可以省去以后去查表的麻烦。怀着这样的想法,我仔细的研究了书中分析器PEInfo的源代码,我发现它没有提供信息转换的功能。 通过研究发现,PEInfo是通过PE文件在内存中的映象来获取文件信息的,我在想是否还有别的方法可以绕过将文件映象到内存这一步,直接读取文件信息。这样的方法只有直接读取磁盘上的PE文件,在磁盘上寻找所需要的文件信息。 在这里暂且不说这样的做法和内存映象法有什么优劣,我在此仅仅只是想找寻另一条解决问题的道路,并实现之。看完我的分析和源程序,大家自然知道孰优孰劣。
上传时间: 2014-01-07
上传用户:熊少锋
C51实例代码:FLASH驱动,IIC,usart,触摸液晶控制显示,电热壶烧水程序,定点滤波,定时器及计数器的生成,二分法查表,浮点滤波,浮点滤波,控制SED1335的液晶显示,软件看门狗,十六进制_BCD码相互转换,时间倒计时,实时时钟,数字时钟,温度芯片驱动,无线数据传输,以太网芯片
上传时间: 2015-09-05
上传用户:hjshhyy
一、 使用键盘显示接口芯片8279接收按键键值,并在七段数码管上显示出来,通过判断键值进入相应音乐播放处理程序。在音乐播放程序中,使用定时器/计数器8253的计数器2,使其工作在方式¬ ¬ 3—方波发生器,通过查表依次取出乐曲频率值送入计数器作为计数初值,经out2输出方波,驱动扬声器发出不同频率的声音,在每个音阶之间加入相应的延迟时间,即实现了音乐的播放。
上传时间: 2014-01-22
上传用户:阿四AIR
】 本文主要讨论了Modbus 通信协议的R TU 帧格式中常用的错误校验方法,即循环冗余校验法( CRC) 。 提出了Modbus 协议反转CRC 校验的方法,推导了反转CRC 校验快速计算表格,并用C 语言实现了基于快速查 表算法的循环冗余校验程序。
上传时间: 2015-12-16
上传用户:498732662
采用delphi自编的sin函数傅立叶离散数据数据表生成器,正弦函数发生器查表输出;
上传时间: 2016-01-21
上传用户:1427796291