完整的实验报告下载:
单片机外部中断实验报告.doc
(293 KB, 下载次数: 55)
-------------部分内容预览-----------------------
重 庆 交 通 大 学
学生实验报告
实验课程名称单片机原理及应用 开课实验室 信息技术实践中心 学 院 信息科学与工程学院年级2014级专业班通信3班 学 生 姓 名 刘凯学 号 63140680111 开 课 时 间 2015至2016学年第二学期
注:实验成果考核方式采用非实验报告形式的,可自行制定封面。 单片机原理及应用 实验报告 实验项目名称:外部中断实验 实验日期:第四次课 实验成绩: 1、掌握单片机外部中断的原理及使用方法; 2、掌握中断处理程序的编程方法。 2、实验器材 (1)AT89C52:单片机;(2)7SEG-COM-CAT-GRN:数码管;(3)CAP、CAP-ELE:电容与电解电容;(4)CRYSTAL:晶振;(5)BUTTON:按键;(6)RES:电阻。 用AT89C52单片机外部中断功能改变数码管的显示状态,当无外部中断0中断请求时,主程序运行状态为数码管的a~g段依次点亮循环显示;当有外中断0输入时,立即产生中断,转而执行中断服务程序,数码管显示状态改为闪烁显示“8”,闪烁显示“8”8次后,返回主程序断点处继续执行主程序,继续把a~g依次点亮循环显示。 1、根据外部中断实验的原理图在protues软件上找到相应器件并连接好线路; 2、在keil软件上编写外部中断的源程序; 3、调试程序并生成hex文件; 4、把hex文件加载到89C52单片机上,调试仿真,直到达到实验要求为止。 C语言源代码: - #include
- unsigned char code table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- void delay(unsigned char delay_time)
- {
- unsigned char i,j;
- for(i=0;i<=delay_time;i++)
- {
- for(j=0;j<=200;j++);
- }
- }
- void init_tx()
- {
- EA=1;
- EX0=1;
- IP=0x00;
- }
- void main()
- {
- unsigned char i;
- init_tx();
- while(1)
- {
- for(i=0;i<8;i++)
- {
- P1=table[i];
- delay(200);
- }
- }
- }
- void tx0() interrupt 0
- {
- unsigned char i;
- P1=0x00;
- delay(200);
- for(i=1;i<=15;i++)
- {
- P1=~P1;
- delay(200);
- }
- }
复制代码
运行仿真程序,当没有0中断请求时,数码管从a~g依次循环闪烁;当按一下TNT0的按键时,就相当于输入了中断请求,数码管将会出现8次“8”后,然后再次从a~g依次循环显示。
|