广工单片机实验报告
计算机 学院 计算机科学与技术 专业 5班 学号 3110006054
姓名 谭威 协作者______________ 教师评定________________
实验题目 单片机I/O口—流水灯实验
一.实验目的:
1.学习单片机各I/O口的结构特点及相关寄存器的使用方法。
2.掌握一个简单的具体的单片机项目的开发流程。
3.了解Proteus ISIS 软件及实用方法。
4.熟悉Proteus ISIS 与uVision2 IDE 的开发环境的互连调试。
二.实验内容:
1.打开 ISISProfessional,参照“实验电路”绘制仿真电路的原理图。
2.编程实现:
(1)从VD1~VD32逐次点亮每个LED,然后熄灭。每个LED亮灯时间约为200ms。
(2)点亮VD32,200ms后再点亮VD31····最后点亮VD1,直到全部灯被点亮。
(3)在全部灯亮的情况下,从VD1~VD32逐次熄灭LED,熄灭VD1,延时200ms;然后熄灭VD2,延时200ms····熄灭VD32,全部灯被熄灭。
(4)重复上述过程。
三.实验电路:
四.实验源程序:
#include <REG52.H>//片内寄存器定义
#define uchar unsigned char
#define uint unsigned int
uchar code fun[]={0xfe,0x7f,0x01};
void delay()//延时函数
{
uchar i,j; for (i=0;i<250;i++) for (j=0;j<250;j++);
}
void fun1()//逐个点亮、熄灭
{
uchar j,i=0; uchar temp; temp=fun[i]; for (j=0;j<8;j++) { P0=temp; temp=temp<<1 ; temp|=0x01;
} P0=0xff; temp=fun[i]; for (j=0;j<8;j++) { P1=temp; temp=temp<<1 ; temp|=0x01; delay(); } P1=0xff; temp=fun[i]; for (j=0;j<8;j++) { } P2=0xff; temp=fun[i]; for (j=0;j<8;j++) { P3=temp; temp=temp<<1 ; temp|=0x01; P2=temp; temp=temp<<1 ; temp|=0x01; delay(); delay(); } P3=0xff;
}
void fun2()//逐个点亮,最后全部点亮
{
uchar j,i=1;
uchar temp; temp=fun[i]; for (j=0;j<8;j++) { P3=temp; temp=temp>>1 ; delay(); } temp=fun[i]; for (j=0;j<8;j++)
} P2=temp; temp=temp>>1 ; delay(); temp=fun[i]; for (j=0;j<8;j++) { } P1=temp; temp=temp>>1 ; delay(); temp=fun[i]; for (j=0;j<8;j++) { } P0=temp; temp=temp>>1 ; delay();
}
void fun3()//逐次熄灭
{
uchar j,i=2;
uchar temp;
temp=0x00;
P0=temp; P1=temp; P2=temp; P3=temp; temp=fun[i]; for (j=0;j<8;j++) { } P0=0xff; temp=fun[i]; for (j=0;j<8;j++) { P1=temp; temp=temp<<1 ; temp|=0x01; P0=temp; temp=temp<<1 ; temp|=0x01; delay();
} P1=0xff; temp=fun[i]; for (j=0;j<8;j++) { P2=temp; temp=temp<<1 ; temp|=0x01; delay(); } P2=0xff; temp=fun[i]; for (j=0;j<8;j++) { } P3=0xff; P3=temp; temp=temp<<1 ; temp|=0x01; delay();
}
void main()//主函数
{
}
while (1) { } fun1(); fun2(); fun3();
实验题目 定时器实验 计算机 学院 计算机科学与技术 专业 5 班 学号3110006054 姓名 谭威 协作者______________ 教师评定______________
一.实验目的:
1.学习80c51单片机的定时器的使用和编程。
2.熟悉定时器中断处理程序的编程。
3.掌握编写数据处理程序。
4.掌握具体的单片机嵌入式系统的软硬件设计方法。
二.实验内容:
1.打开ISISProfessional,参照“实验电路”设计仿真电路原理图。
2.编写程序实现:
(1)计时监督百分之一秒的田径比赛电子计时器。
(2)计时精度百分之一秒的篮球比赛电子计时器。
(3)计时精度1ms的电子计时器,可实现正在计时和倒计时。
要求:按“启动”按钮后,计时器开始工作;安“暂停\继续”按钮后,计时器停止计时,再按“暂停\继续”按钮后,计时器在此基础上开始计时;按“清0”|按钮后,计时器变0;按“退出”按钮后,退出计时器模式。
三.实验电路:
四.实验源代码:
#include<reg51.h>
#include"miao_code.h"
#define uint unsigned int
#define uchar unsigned char
//--------------------------
//延时函数 xms
//--------------------------
void delayms(uint xms)
{
} uint i,j; for(i = xms;i > 0;i--) for(j = 110;j > 0;j--);
//--------------------------
//各变量定义
//--------------------------
uint minute = 0,second = 0,millisecond = 0;//定义分,秒,毫秒
uchar packet = 0;//计数模式选择:0为正计时,1为倒计时
sbit start = P0^0; //启动项
sbit pause = P0^1; //暂停项
sbit clear = P0^2; //清零项
sbit quit = P0^3; //退出项
//--------------------------
//数码管显示函数
//--------------------------
void display()
{
P3 = table1[minute/10] | table[minute%10];
P2 = table1[second/10] | table[second%10]; P1 = table1[millisecond/10] | table[millisecond%10];
}
//--------------------------
//定时器初始化
//--------------------------
void init()
{
//确定模式 此处一上电便是0x00 故而可以省略 TMOD = 0x01; //装载初值 TH0 = 0xd8; TL0 = 0xf0; //开启中断 EA = 1; ET0 = 1;
}
//--------------------------
//键盘扫描控制函数
//--------------------------
void key_scan()
{
}
//--------------------------
//主函数
//-------------------------- if(start == 0) TR0 = 1; if(pause == 0) TR0 = TR0 ^ 1; if(clear == 0) { } if(packet == 1){minute = second =59; millisecond= 99;} if(packet == 0){minute = second = millisecond = 0;} if(quit == 0) { } packet = packet ^ 1; if(packet == 1){minute = second =59; millisecond= 99;} if(packet == 0){minute = second = millisecond= 0;}
void main()
{init();
while(1)
{
if(packet == 0)
} { if(millisecond == 100) { millisecond = 0; second++; } if(second == 60) { } second = 0; minute++; if(minute == 60) minute = 0; } if(packet == 1) {if(millisecond == 0) { millisecond = 99; second--; } if(second == 0) { second = 60; minute--; } if(minute == 0) minute = 60; } display(); key_scan();
}
//--------------------------
< …… 此处隐藏:4849字,全部文档内容请下载后查看。喜欢就下载吧 ……- 基于PLC控制的航空电镀生产线自动输送
- 中考预测课内外文言文对比阅读2
- 2018-2023年中国商业智能(BI)产业市场
- 中国金融体制改革研究2011new
- 外窗淋水试验方案
- 精益生产(Lean Production)
- 学校安全事故处置和信息报送制度
- Chapter 5 Human Resources Management
- 【小学数学】人教版小学六年级上册数学
- 初中数学解题方法与技巧
- 山东省创伤中心建设与管理指导原则(试
- 函数与数列的极限的强化练习题答案
- 10分钟淋巴按摩消脂
- 网络应急演练预案
- 服装设计入门基础知识
- 初二数学分式计算题练习
- (人教新课标)高二数学必修5第二章 数列
- 最新自主创业项目
- 北京大学 无机化学课件 4第4章 配合物
- 贸易公司业务管理制度




