- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验9——利用Flag输入控制LED闪烁
实验9 —— 利用Flag输入控制LED 闪烁
1.实验目的
加深对Flag的了解,进一步掌握Flag控制方法。
2.实验原理
本实验采用处理器A,利用ADSP—TS201 EZ-KIT LITE板上Flag0和Flag1分别连接到按键FLAG0_A和FLAG1_A上,Flag2和Flag3分别连接到LED4和LED6上。
我们通过编程将Flag0和Flag1设置为输入,将Flag2和Flag3设置为输出,当点击FLAG0_A/FLAG1_A时,Flag0和Flag1的输入值将变为1,将改变SQSTAT寄存器相应位的值,通过程序检测SQSTAT中Flag0和Flag1输入值的变化,然后相应地改变Flag2和Flag3的值,实现对LED的控制。
3.相关寄存器说明
1 Flag控制寄存器(FLAGREG)、Flag设置寄存器(FLAGREGST)、Flag清除寄存器(FLAGREGCL)
FLAGREG 控制寄存器:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FLAGx_EN (0~3) – 设置Flag作为输入还是输出:1=output / 0=input;
bit 0-FLAG0, bit 1-FLAG1, bit 2-FLAG2, bit 3-FLAG3。
FLAGx_OUT(4~7) – Flag作为输出时设置输出值0/1(当将FLAG设置成输入时,只能通过SQSTAT来查看它的状态);
bit 4-FLAG0, bit 5-FLAG1,bit 6- FLAG2, bit 7-FLAG3。
8~15位,17~31位保留
FLAGREGST使用
如果想对FLAGREG中某一(多)位置1,而不改变其它位的值,使用FLAGREGST寄存器对FLAGREG进行修改,例如若将FLAGREG第4位置1,则使用如下指令:
FLAGREGST=0x10;;//0x10转为二进制为10000,只有第四位为1
FLAGREGCL使用
如果想对FLAGREG中某一(多)位置0,而不改变其它位的值,使用FLAGREGCL寄存器对FLAGREG进行修改,例如若将FLAGREG第4位置0,则使用如下指令:
FLAGREGCL= ~(0x10);;//~(0x10)转化为二进制只有第四位为0
2 程序控制器状态寄存器(SQSTAT)
SQSTAT是一个32位的寄存器,保存程序控制器的一些状态信息,这里我们只需要了解SQSTAT的16~19位分别代表了Flag0~3的输入值,复位后初始值为0。
4.实验例程:
本程序用汇编语言编写,包含主函数_start、子函数_testflag*、_turnon/off_flag*和_delayloop。
_start主要实现对Flag寄存器初始化设置,使能Flag0/1输入,使能Flag2/3输出;
_testflag*检测Flag0/1的输入值,如果输入值为0,即没有按键动作,则跳至_turnoff_flag*将相应LED关闭;如果检测到输入值为1,即有按键动作,那么跳至_turnon_flag*,点亮相应的LED;
_delayloop实现有限次无操作循环,用于系统延迟,便于观察LED状态。
/**************************************************************************************
利用Flag0和Flag1输入间接控制LED4和LED6闪烁
**************************************************************************************/
#include defts201.h
.section program;
_start:
/*以下设置Flag0/1作为输入,Flag2/3作为输出*/
xr0=0;
FLAGREG=xr0;;
FLAGREGST=FLAGREG_FLAG2_EN|FLAGREG_FLAG3_EN;;
_testflag0:
xr0=sqstat;;
bitest r0 by 16;; /*bitest运算*/
if xseq,jump _turnoff_flag2(np);;
_turnon_flag2:
FLAGREGST=FLAGREG_FLAG2_OUT;;
jump _delayloop(np);;
_turnoff_flag2:
FLAGREGCL=~(FLAGREG_FLAG2_OUT);;
_testflag1:
xr0=sqstat;;
xr0=sqstat;;
bitest r0
您可能关注的文档
- 制订公司年度培训计划.PDF
- 前快速检验方法的探讨.PDF
- 前我国建筑能耗约占全国社会终端总能耗的30%,它与工业、.PDF
- 剖腹产后被医生又插管又压肚子,是一种怎样的体验?.pdf
- 力必平持续性药效膜衣锭2毫克.PDF
- 加工贸易企业手册操作和管理培训报到通知.PDF
- 加。学生如因健康问题未能参加,必须以家长信连同医生证明.PDF
- 力行社的成立时间及组织层构考释.pdf
- 劲永国际股份有限公司劲永国际股份有限公司.PDF
- 化学乃研习物质及其变化的一门学科它假定宇宙中无.pdf
- 2025年台州市计量技术研究院招聘劳动合同人员笔试模拟试题及答案解析.docx
- 2025四川大学华西医院呼吸和共病研究院科研人员招聘2人笔试模拟试题及答案解析.docx
- 2025四川成都市双流区西航港社区卫生服务中心招聘急诊医师2人笔试模拟试题及答案解析.docx
- 2025四川成都市新都区金东社会工作服务中心招聘35人笔试备考试题及答案解析.docx
- 2025中国农业科学院农产品加工研究所果蔬加工制造与营养健康创新团队博士后招聘笔试备考试题及答案解析.docx
- 2025年上半年云南省交通运输厅所属事业单位招聘395人笔试模拟试题及答案解析.docx
- 2025年金华市中心医院医疗集团(医学中心)公开招聘工作人员51人笔试模拟试题及答案解析.docx
- 2025年金华事业单位招聘-磐安县中药创新发展研究院引进高层次人才笔试模拟试题及答案解析.docx
- 2025年上半年云南省有色地质局招聘38人笔试模拟试题及答案解析.docx
- 2025年绍兴市司法局公开选调工作人员1人笔试模拟试题及答案解析.docx
文档评论(0)