8位工业级通用单片机应用笔记综合_第1页
8位工业级通用单片机应用笔记综合_第2页
8位工业级通用单片机应用笔记综合_第3页
8位工业级通用单片机应用笔记综合_第4页
8位工业级通用单片机应用笔记综合_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、7 segment LED (X4) + Switch key (X4) + Momentary key(4X4) ScanV1.0.02005-1-19单片机技术资料 HYPERLINK http:/w/ http:/w7 segmt LED (X4) + Switch key (X4) + Momentary key(4X4) Scan技保留对此文件修改之权利且不另行通知。技所提供提之信息相信为正确且可靠之信息,但并不保证本文件中绝无错误。请于向技出订单前,自行确定所使用之相关技术文件及规格为之版本。若因贵公司使用本公司之文件或产品,而涉及第三人之专利或著作权等智能,本公司仅单纯贩售产品,

2、上述关于同意及权之应用及配合时,则应由贵公司负责取得同意及,非属本公之责任。又技相关设备。之正式,本公司之所有产品不得使用于医疗器材,维持生命系统及飞航等17 s gm nt L D (X4) + Switch key (X4) + Momentary key(4X4) Scan0目录页码0目录11修订. . . 22系统概要系统说明3系统框图3MCU 使用资源43硬件设计53.13.2功能描述5设计原理54说明. . . 9子程序说明9变量说明105流程图5.4主流程15键盘扫描子流程16按键处理子流程17时钟显示子流程1817

3、s gmen LE( 4) + Sw tch key ( 4) +omen ry key(4X4) Scan1修订2日期版本编写及修订说明2005-1-191.0.0初始版本7 s gmen LE(X4 + Switch key (X4) +omentary key(4X4) Scan2 系统概要2.1系统说明本系统应用于 SUNPLUS SPMC65 se ies 上扫描 5X4 按键的动作与范例程序的硬件部是以 SPMC5P2404A*2p 为开发对象。2.2系统框图 2-1系统框图3Four Digits 7segment LEDs5X4 Keys8SPMC 5P24A*28P4216M

4、Hz7 segent LED+ Sw tc k y (X )Momary e4X4) can2.3M使用资源4CU源内容AM键盘扫描e按键处by eL示5bytR主程44 yte初始理56 byte键盘扫3 byt按处理281 byteLED 显示63te盘扫描和 LED 显示相关硬件Timer bas1.024 s 时用于主环I/O PORTORTA使用PORTBLED 数据线和键盘扫描线复用PORTCLED strobe 信号PORTD未使用7 e ment LED (X4) + Switch key (X4) + Momentary key(4X4) Scan3件设计3.1功能描述本例采

5、用SPMC65P2404A*28p,外接键盘和显示,可以做为一个钟表使用,24 小时显示。按键 s0 功能: 时间的“显示状态”和“调整状态”互相 换。s0 第一次 下,进入“分钟调整状态”,s0 第二次按 ,进入“小时调 状态”,s0 第三次按下,返回“显示状态 。循环进行。按键 s1 功能: 在时钟处于“调整状态”时,显示值加一。键 s2能: 在钟处于“调状态”时,显示值减一。其它按键功能:关闭或打开时钟。时钟初始状态显示“0:00”并开始计时。3.2设计原理原理图如图 3-1所示,PB接 4 行 5 列的键盘,并与 4 个共阴极数码管的 seg 端复用 IO 口。PC3PC0 控制这 4

6、 个数码管的 com 端。图中电阻均为 510 欧。当B 口作为键盘扫描时:PB3PB0 被设置为带下拉电阻的输,各行线的状态;PB PB4 被设置输出口,用于列线扫描。当 PB 口作为 LED 的 seg 端时:PB7PB0 均被设置为输出口,输出显示数据的段码。程序设计原理:程序每隔 4ms 对键盘和数码管行一次扫描,首扫描键盘,根据键值进行相应的操作,比如时钟的“打开”、“关闭”和“调整”。键盘处理结束,接着刷新数码管显示。键盘扫描方法:按键 S4、S9、S14 和 S19 的优先级最高,应该最先扫描。首先将 PB3PB0 设置为带下拉电阻的输,PB7PB4 设置为悬浮状态,然后各行线

7、PB3PB0 的状态, 若行线状态全为低电平则表明按键 S4、S9、S14 和 S19 均没有被按下, 若行线状态中有根据行线状态便可以确定键值。,则表明有键按下。消抖之后当按键 S4、S9、S14 和S19 均没有被按下时,接着扫描余下的 16 个按键。首先将列线 PB7PB4设置为输出口,然后这 4 条列线输出则表明无键按下, 若行线状态中有,各行线 PB3PB0 的状态, 若行线状态全为低电平,则表明有键按下。若有键按下,先进行消抖,消抖结束,再对每一列进行扫描,键值。即:PB7PB4 四条列扫描线分别输出,在每次输出期间,各行线 PB3PB0 的状态,若行线状态不全为 ,便可以确定键值

8、例如:PB7 PB4 输出“0100”,此时若PB3PB0 的状态为“0001”,则表明按键 S2键盘扫描时序如图 3-2所示,按下。K0 表示列线列线全部为低时行线状态,用于判断按键 S4、S9、S14、S19 的状态;K1 表示列线全部为时行线的状态,用于判断余下的 16 个按键的状态;57 segment LED (X4) + Switch key (X4) + Moment ry key(4X4) ScanK2 表示列线 PB4 为 K3 表示列线 PB5 为 K4 表示列线 PB6 为K5 表示列线 PB7 为时行线的状态,用于判断时行线的状态,用于判断时行线的状态,用于判断键 S0

9、、S5、S10、S15 的状态;键 S1、S6、S11、S16 的状态;键 S2、S7、S12、S17 的状态;时行线的状态。用于判断按键 S3、S8、S13、S18 的状态。消抖方法:在按键闭合和打开的瞬间会产生许多尖脉冲,持续时间约几毫秒到几十毫秒。因而在程序中,当检测按被按下后,便开取键值,每隔 4m 读一次键值,直到连续 7 次的键值完全相同,则认为抖动已经消除。消抖时间至少为 4ms X 728ms。数码管扫描方法:每隔 4ms 显示一个数码管,四个数码管全部被刷新一遍需要 16ms,一直不断循环扫。显示时,PB 口和 C3PC0显示数的段码到 PB 口。输出口,先送位码到 PC3P

10、C0,选通要点亮的数码管,然后再送LED 扫描时序如图 3-3所示。67 segment LED (X4) + Switch key (X4) + Momentary key(4X4) Scan图 3-1 键盘显示原理图7comcomcomcomLED1LED2LED3LED4aa aa aa abbbf g bc f g bc f g bc f g bddde e d .ce e d .ce e d .ce e d .cfffgggdpdpdpdpQ18050Q2Q3Q4PC0805080508050PC1 PC2 PC3+5VS0S1S2S3S4SS6S7S8S9PB0S10S11S12S

11、 3S14PB1PB215S16S17S 8S19 PB3PB4 PB5 PB6 PB7SPMC65P2404A*28P+5VVDD VSS XIXO XIXORESET4.7K20p16MHz20pRESETPB7PC0PB6 1PC1+5VVDD104PB5PC2PB4PC3PB3PB4PC3 16 PB0VSS PB2PB3 PB0 15 PB1PB2PB17 segment LED (X4) + Switch key (X4) + Momenta y ey( X4) ScanmsmsMa nl opPB 3:0K0K123K45K0K1K2K3K4K5B4P 5PB6PB7LED显LE

12、D显示键盘扫描键盘扫描K2:按键 S S5 10 S15 状态K0:键S S S 4 S 9的状态K :16个按键(S4 S9 S1S 除外)状态K3: 按键S1 S6 S11 S16的状态K4: 按键 S2 S7 S12 S17的状态K5: 按键 S3 S8 S13 S 8的状态图 3-2 键盘扫描时序图4ms4ms4ms4msMainloopPB7PB0LEDLEDLED3LED40PC1PC2PC3键盘扫描 LED显示键盘扫描 LED显示 键盘扫描LED显示键盘扫描LED显示图 3-3 LED 扫描时序图87 e ment LED (X4)Sw tch k y (X4)Moen ary

13、k y(4XScan4软4 1档4 2程序说明V_ResetF_MainF_Moment5x4F_KeyCope9No eOutueGB_KeyDownFlag明扫描键盘,获得值并置键动标志属Key5x4 4LED.a m内容备注InputGB_KeyDownFlagOutpute说明等待 4m, 行键盘扫描(F_ent5x4)、按键处时钟 时( _KeyC pe)、isp)属于Main.asm备注InputNoOutpN ne说明CUer on re后所指到的向地址m in.asm文件名功类型main asmMain prosource f e (Sam le)ey5x4_ LED.asm5

14、x4keysand4- ED scan ing prosS urce file (User)SPMC65P2404A.incSPMC65X symbol definitionHead file7egenLEDX4) + Switch key (X4) + Mo4) ScaF_F IO_InitF_Variable_In4.3变量说明GB_KealueGB_KeyDownFlag1内容备注容说明示键值。高,低 4的合000001 011,键 K0 K19Bbit0有效Size1 yte初始值0Symbol 定义e内容值$0$13内备注nputetp tone说明变量初始化属于Key5x4_4LE

15、D.asm内容备注InputO tpute说明初B3PB0 为带下拉电阻输入,始化 B7 PB4 和 P 3PC输出低电平属于K5x _4LED sm内容备注InputGB_ShowBufOutput说明显示以 GB_Show中的数值,每 4ms一个循环示属于K y5x4LE .asm内容备注al e,GB_KeyDOutputGB_说明时钟属于Key5x4_7 egen LED4) + Switch key (X4) + MomentGB_BufIBexC mIByupFlagIB_CmpTimers内容备注内容说明行线状态连 的次数, 于消抖处理 扫描时 连 线状态,每读一次,比较一次,直

16、到连续 7 次全部相等,则认为按键的抖动已经消除Size1byte初始值0内容备注内容说明按下后是否 )放开标志:0 -按键已经放开- -下后仍没有被放开S eby e初始值0Symbol 定义e内容值01容备注内容说当每次D 即递一,作为制 colin 的索引e1byte初0Symb义e内容值03: om line 03内容备注内显示缓区,存放所据Size4es初始值示数据Symbol 定义e内容值$A注内容说明按键动作标志,:0- -没有被下1按键被按下ze1b te初始值0Symboe内容值7 segmentED (X4) + Switch keX4) + Mary key(4X4)ca

17、B_LasteB_LineScnIB_yIB_4msCouIB_1sCount1内容备注容备注内容说明计时寄 器s 加 1,每计 1s变量IBoun 进位一次,并重新从 0 开始Size1byt初始0Symbol 定义e内容值0250(十进制计数)容备注内容延时Siz1b te初0Symbol 定义e内容值$00$FF内内容明列扫描线控制字S1byte始值ra domSymb义No e$80$20、$10内容备注内容说明期间读的键值,用Size1b e始值romSol 定义e容值0$FSymb l 定义CB_CmpTimers(6)内容值07 segmLED (X4) + Switch key

18、 (X4) + Momentary key(4XScanIB_1mCount_1hC untIB AdjustIB_Open13内容备注内容备注内容说明钟表处于状态”或“计时状态”的标志,其值为:0表正常计时- -表处于“分钟调整状态- -钟表处于”状态S eby e初始值0Symbol 定义e内容值$0、$1、$2注内说钟表计时寄存器,1 ho,每计 4 hours后重新从时Sizeyt初始值0Symbol 定义e内容值024(十进制计数)内容备注内容说明表计时寄器,每1ute10miniute后向变量hCo nt 进位一次,并重新从时Size1te初始值Symbol 定义e内容值060(十

19、进制计数)内容说钟表计 寄1s 加 1,每计 6 s 向变量mCo nt 进位一次,并重新从时Size1te初始值Symbol 定义e内容值060(十进制计数)7 segm nt LED (X4) + Switch key (X4Moentary key4) S an14钟表开值为:0- -被关闭$FF钟表被打开Size1byte初始值0Symbol 定义e内容值$0、$FF7 sgmet LD ( 4) + Switch key (Momentary key(4Xn5流程图5.1主流程开始(V_Reset)图 5-1 键盘显示主流程图15N4ms?Y数码管显示(F_LED_4Disp)按键处理程序(F_KeyCope)键盘扫描(F_ oment5x4)初始化IO口(F_IO_Init)初始化变量(F_Variable_Init)设置1.024m 时7 segent LED (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论