蓝桥杯备赛笔记.doc

蓝桥杯备赛笔记.doc

ID:56766625

大小:4.90 MB

页数:64页

时间:2020-07-08

蓝桥杯备赛笔记.doc_第1页
蓝桥杯备赛笔记.doc_第2页
蓝桥杯备赛笔记.doc_第3页
蓝桥杯备赛笔记.doc_第4页
蓝桥杯备赛笔记.doc_第5页
资源描述:

《蓝桥杯备赛笔记.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、P0口的复用P2口高3位的值38译码器低电平端口功能备注000(0x00)Y0无001(0x20)Y1010(0x40)Y2011(0x60)Y38255的CE引脚0:使能82551:禁用8255100(0x80)Y4LED灯锁存信号0:点亮LED灯1:熄灭LED灯101(0xA0)Y5UNL2003输出锁存信号0:断开继电器、禁用直流电机、关闭蜂鸣器1:闭合继电器、转动直流电机、开启蜂鸣器110(0xC0)Y6数码管位选锁存信号0:禁用该位1:使能该位111(0xE0)Y7数码管段选锁存信号0:点亮该段

2、1:熄灭该段PS1:上电后需给所有锁存器初始化(Y5,Y6初始化为0x00,其余初始化为0xFF)PS2:使用P0口时,按如下方式:禁用所有寄存器——P0口赋值——打开目标寄存器——禁用所用寄存器PS3:锁存器高电平选通,低电平关闭/***********************************************@brief初始化开发板*@paramnone*@returnnone************************************************/voidiniti

3、al_board(void){P0_BUS_COMcom;P2&=0x1F;//禁用所有锁存器for(com=3;com<8;com++){if(com==UNL2003

4、

5、com==DIGITAL_BIT)P0=0x00;elseP0=0xFF;P2

6、=com<<5;_nop_();P2&=0x1F;}}/***********************************************@brief通过P0总线传输数据*@paramcom:总线占用的端口;databuf:传输的数据*@retur

7、nnone************************************************/voidP0_BUS(unsignedcharcom,unsignedchardatabuf){P2&=0x1F;//禁用所有锁存器P0=databuf;P2

8、=com<<5;_nop_();P2&=0x1f;}PS4:数码管段码unsignedcharcodeNUM[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};2、按键一、单按键单按键按如

9、下流程图获取按键值:分层思想在按键上的应用:1、硬件层从I/0口获取按键信息映射到keybuf(按键寄存器)上2、驱动层根据keybuf的值,分析按键是否有效(是否有抖动产生的),并返回按键编码3、应用层对不同按键的响应分层的好处:如果按键连接的I/O变化,或者按键所在的I/O口不连续,只需修改硬件层的程序,驱动层和应用层则不受影响。/***********************************************@brief初始化键盘*@paramnone*@returnnone*******

10、*****************************************/voidinitial_key(void){KEY0=1;KEY1=1;KEY2=1;KEY3=1;}/***********************************************@brief读键值(硬件层)*@paramnone*@return读取的键值************************************************/staticuint8get_keybuf(void){u

11、int8keybuf;keybuf=P3&0x0F;returnkeybuf;}/***********************************************@brief获取按键编码值(驱动层)*@paramnone*@return按键的编码值************************************************/uint8readkey(void){staticuint8lastkey=NOKEY;//上一次获取的键值staticuint16keycount=0;

12、//获取同一键值的次数staticuint16keyovertime=KEY_OVER_TIME;//进入连击延时staticuint16upspeed=0;//加速相应(长按越久连击延时越短)uint8keytemp=NOKEY;//保存当前获取的键值keytemp=get_keybuf();if(keytemp==NOKEY){//是否有按键按下keycount=0;upspeed=0;keyo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。