- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三实验告(单片机人机接口设计)
实验项目名称:单片机人机接口设计
实验目的
I/O口交叉开关设置和I/O端口的使用。
3. 掌握独立式按键和LED显示接口电路和程序设计方法。
二、实验内容
三、实验说明通过本实验,掌握单片机、制作和调试方法C8051F020单片机的I/O口交叉开关和振荡器及配置使用;C语言程序设计方法。四、实验仪器和设备
PC机、Keil uVision2软件,C8051F单片机,EC3在线仿真器。
五、实验原理
1
LED为共阳型接法,所以输为,控制数码
亮。
2
当按下时,相当于输入了实际的实验中,
右图的上电阻,所以需要将输入设置为弱上。
七、实验结果与分析
当按照流程图,利用模块式的方法编写C程序,在开发板的、P3.1、P3.2的三个按键,P3.0处按键按下的八个指示灯只有灯,并且亮所表示处的二进制数按下而加一,当加至,将跳变到再按下,继续向上计数。当P3.1处按键则相反,二进制数减一,减值,将跳变到再按下,继续向下计数。当按下处指示灯将全灭,处于复位状态。
主程序.c
#includec8051f020.h
#includebdwtd.h
#includekeyf.h
#define nokey 0xff
#define jia 0x0A
#define jie 0x0B
#define re 0x0C
/*为使主程序更简洁,另外写按键处理的按键的函数keyf.c,
以及诸如可控制看门狗的头文件,并定义常量以供程序作为
按键类型的标记*/
unsigned char code de[]={0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,
0xf7,0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0};
/*
定义一个16位的数组,其值从0xf0到0xff,对应于单片机的与
数码管相连的P5端口的八二进制数。可以让加减命令转化为这
个数组下标的移动,在数码管上就显示为灯的明灭,由于前四
个管总是灭的状态,灯可表示一个四位二进制数的变化。
*/
void main()
{
unsigned int num;
bdwtd(); //禁止看门狗
P3MDOUT=0X00; //初始化端口
P3=0X07; //初始化端口
num=0; //将数组下标初值设为0(复位状态)
while(1)
{
unsigned char key1;
P5=de[num]; //将数组赋值于与数码管相连的P5端
keyscan();
key1=keyinput(); //判断按键输入的类型
if(key1==jia)
{
num++;
if(num=16)
num=0;
keyoff();
}
/*如果输入为jia,则数组下标加一,
外部LED灯表现为二进制值加一*/
if(key1==jie)
{
num--;
if(num==-1)
num=15;
keyoff();
}
/*如果输入为jia,则数组下标减一,
外部LED灯表现为二进制值减一*/
if(key1==re)
{
num=0;
keyoff();
}
/*如果输入为re,即复位功能,那么
执行复位的功能,将数组下标赋值为0,
在外部表现为灯全灭的状态*/
}
}
辅助程序keyfc
#includec8051f020.h
#includedelay.h
#define nokey 0xff
#define jia 0x0A
#define jie 0x0B
#define re 0x0C
sbit add=P3^0;
sbit div=P3^1;
sbit rest=P3^2;
/*
这是一个按键处理的程序,以配合work4.c 使用主要
有按键扫描函数判断按键状态,按键输入函数判断按
键输入的类型,按键释放函数判断按键是否释放。
*/
unsigned char keyscan(void)
/*
按键扫描函数
*/
{
unsigned char keycode;
if(add==0)
keycode=jia;
if(div==0)
keycode=jie;
if(rest==0)
keycode=re;
if(add==1div==1rest==1)
keycode=nokey;
/*
以上是判断按键
您可能关注的文档
最近下载
- 居家护工合同8篇.docx VIP
- 建议信+课件-2025届高三上学期英语一轮复习专项.pptx VIP
- 癌痛规范治疗管理课件.ppt .ppt VIP
- 轻质隔墙板施工工艺要点.pdf
- 公安招警《公安专业科目》公安基本能力知识点汇编.pdf VIP
- 建筑电工考试题库(带答案).pdf VIP
- 2025年重庆市城市建设投资集团有限公司招聘笔试模拟试题及答案解析.docx VIP
- 统编版语文五年级上册第五单元教材解读课件(共38张PPT).pptx VIP
- 2025重庆市城市建设投资(集团)有限公司招聘7人笔试模拟试题及答案解析.docx VIP
- 中职高一英语 高教版(2025)基础模块1 Part02 Unit3 Shopping 课件 (共31张PPT)(含音频+视频).pptx VIP
文档评论(0)