1 / 21
文档名称:

单片机实验报告.docx

格式:docx   大小:27KB   页数:21页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机实验报告.docx

上传人:文库旗舰店 2022/7/9 文件大小:27 KB

下载得到文件列表

单片机实验报告.docx

相关文档

文档介绍

文档介绍:成都理工大学
信息科学与技术学院




课程名称: 单片微型计算机系统原理与应用
姓名: 贺成佳
学号: 201113010803
专业: 信息工程
任课教师: 林凡强
实验一
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
/*********************主函数**********************/
void main(void)
{
LED = 0xfe; //初始化P0口
while(1)
{ //延时
delayms(250);
LED = _crol_(LED,1); //循环右移1位,点亮下一个LED
}
}
三、现象及结果
LED流水灯
实验三 外部中断计数实验
一、实验目的
○掌握89C51单片机中断系统的工作原理
○掌握89C51单片机中断优先级的概念
二、程序设计
#include <>
#include <>
#define uchar unsigned char
#define uint unsigned int
/**********************共阳数码管编码表***************************/
unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3
0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off
unsigned char dis_buf[4]; // 显示缓冲区
uint int0_cnt=0; //计数初始化
/**********************函数定义***********************************/
void update_disbuf();
void delayms(uint j);
/**********************主函数*************************************/
void main(void)
{
IE=0X81; //开总中断和外中断0
IT0=1; //下降沿触发
P0=0x00; //初始化io口
P1=1;
dis_buf[0]=dis_code[0]; //缓冲器初始化
dis_buf[1]=dis_code[0];
dis_buf[2]=dis_code[0];
dis_buf[3]=dis_code[0];
while(1)
{
P0=dis_buf[3];
P1=0x01; // 显示千位
delayms(5);
P0=0xff;
P0=dis_buf[2]; // 显示百位
P1=0x02;
delayms(5);
P0=0xff;
P0=dis_buf[1]; // 显示十位
P1=0x04;
delayms(5);
P0=0xff;
P0=dis_buf[0]; // 显示个位
P1=0x08;
delayms(5);
P0=0xff;
}
}
/*********************INT0中断处理函数*****************************/
void ex_int0()interrupt 0
{
EX0=0; //关闭中断
int0_cnt++; //计数器加1
if(int0_cnt>9999) //判断
int0_cnt=0;
dis_buf[3]=dis_code[int0_cnt/1000]; //分离出千位数
dis_buf[2]=dis_code[int0_cnt%1000/100]; //分离出百位数
dis_buf[1]=dis_code[int0_cnt%100/10]; //分离出十位数
dis_buf[0]=dis_code[int0