- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《单片机原理与应用》实验报告
实验序号:5 实验项目:外部中断程序设计
学 号
姓 名
专业、班级
实验地点
实1-416
指导教师
许华荣
实验时间
一、实验目的及要求
1、掌握单片机组成结构和特点;
2、掌握Keil 编辑、编译单片机C语言源代码的典型流程;
3、掌握单片机程序烧写的典型流程和注意事项;
4、掌握单片机外部中断的原理及过程。
5、掌握中断服务程序的编写方法。
二、实验设备(环境)及要求
爱普雷德A6000开发板、Windows XP或Windows 7操作系统。
三、实验内容与步骤
1.试编写按键控制数码管显示程序,要求:
(1)数码管的DIG1位初始显示0;
(2)当按下独立按键的Key_up按键时,数码管上数字在原有基础上加1;
(3)当按下独立按键的Key_down按键时,数码管上数字在原有基础上减1;
(4)所显示数字采用循环滚动显示方式,即当显示为0时,减1操作后显示变为9,当显示为9时,加1操作后显示变为0;
(5)独立按键判断部分要求采用外部中断方式实现。
#include reg52.h
#include intrins.h
sbit K1 =P1^1;
sbit K2 =P1^2;
#define uint unsigned int
#define uchar unsigned char
sbit DIG_DATA = P0^2;
sbit DIG_SHCP = P0^4;
sbit DIG_STCP = P2^3;
code uchar ucSegment[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
code uchar ucSelect[] ={0xFF,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar num = 0;
void Display(uchar ucSelect, uchar ucSegment)
{
uchar i;
DIG_SHCP = 0;
DIG_STCP = 0;
for(i = 0 ;i 8 ; i++)
{
if(ucSegment 0x80)
DIG_DATA = 1;
else
DIG_DATA = 0;
_nop_();
DIG_SHCP = 1;
_nop_();
DIG_SHCP = 0;
_nop_();
ucSegment = 1;
}
for(i = 0 ;i 8 ; i++)
{
if(ucSelect 0x80)
DIG_DATA = 1;
else
DIG_DATA = 0;
_nop_();
DIG_SHCP = 1;
_nop_();
DIG_SHCP = 0;
_nop_();
ucSelect = 1;
}
DIG_STCP = 1;
_nop_();
DIG_STCP = 0;
_nop_();
}
void Delay(void)
{
uchar i, j;
for(i = 100; i 0; i--)
for(j = 100; j 0; j--);
}
void eint0() interrupt 0
{
if(K1 == 0) //第一次判断按键
{
Delay();
if(K1 == 0) //第二次判断按键
{
num++;
if(num 9)
num = 0;
}
while(K1 == 0); //等待按键松开
}
}
void eint1() interrupt 2
{
if(K2 == 0) //第一次判断按键
{
Delay();
if(K2 == 0) //第二次判断按键
num--;
if(num == -1)
num = 9;
}
while(K2 == 0); //等待按键松开
}
void intt()
{
IT0 = 1;
EX0 = 1;
IT1= 1;
EX1 =1;
EA = 1;
}
void main()
{
intt();
while(1)
{
Display(ucSelect[8], ucSegment[num]);
}
}
四、分析与讨论
对上机实践结果进行分析,上机的心得体会。
五、教师评语
签名:
日期:
成绩
文档评论(0)