当前位置:文档之家› 单片机实验三示例

单片机实验三示例

P2=table[count%10];
while(1){
if(P3_7==0){
delay(10);
if(P3_7==0){
count++;
if(count==100)
count=0;
P0=table[count/10];
P2=table[count%10];
while(P3_7==0);
}
}
}
}
【运行结果】
uchar ledi=0;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if (ldelay)
{ldelay=0;
P2=table[ledi];
ledi++;
P0=table[t];
if(ledi==10)
{
ledi=0;
t++;}
if(t==6)
班级
B100505
学号
B10050523
姓名
张涛
课程名称
单片机原理及应用
实验日期
实验名称
电子秒表显示器
成绩
【实验目的】
掌握中断和定时计数器工作原理。熟悉C51编程与调试方法。
【实验原理】
实验电路原理图如图A.62所示。该电路与实验1的计数显示器电路基本相同,只去掉图A.1中的按钮BUT即可。
图A.62实验5的电路原理图
}
int1_key() interrupt 2
{
count++;
if(count>0x0f)
count=0;
P2=led_mod[count];
}
void main()
{
IT0=1;EX0=1;EA=1;
IT1=1;
EX1=1;
P0_4=0;
P2=0x3f;
while(1);
}
【运行结果】
系部
计算机系
【实验要求】
(1)主函数在程序初始化完成后进入原地循环状态,等待中断请求。
(2)两路外部中断均设为下降沿触发方式,且为自然优先级。
(3)计数变量初值为0,变化范围为0~F。
(4)实验报告内容包括:电路原理图及分析、中断原理分析,C51源程序,仿真运行截屏图,实验小结
【设计程序】
#include<reg51.h>
t=0;
}
}
}
timer0() interrupt 1 {
m++;
if(m==20)
{
m=0;
ldelay=1;
}
TH0=0x3c;
TL0=0xb0;
}
【运行结果】
【实验总结】
单片机课程设计让我们受益匪浅.此次实验是软件与硬件相结合,考察了我们的电脑模拟实验与编程能力.对于我们科学与技术的学生,编程,出现了很大的障碍。不过经过我们一步步的努力,花费的时间与精力终于没有白费,效果渐渐地出现了.其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了.
程序启动后,8只发光二极管做循环点亮控制,其中灯亮顺序为P0.0→P0.1→P0.2→……P0.5→……P0.0,无限循环,两次LED亮的时间间隔约0.5s。
图A.32 实验3 的电路原理图
【实验内容】
(1)熟悉uVision3编译软件,了解软件的结构组成与功能;
(2)学会C51语言的程序设计方法;
【设计程序】
#define uchar unsigned char
#include <reg51.h>
bit ldelay=0;
uchar t=0;
uchar m=0;
uchar n;
void main(void)
{
uchar code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
(3)学会在uVision3中进行C51程序录入、编译和调试;
(4)理解Proteus与Keil联合的仿真原理,实现LED指示灯循环控制功能。
【实验步骤】
(1)在ISIS中绘制电路原理图,按照表A..4将元件添加到编译环境中;
(2)在uVision3中编写C51程序;
(3)利用uVision3的编译调试功能检查程序的语法和逻辑错误;
unsigned char count;
void delay(unsigned int time){
unsigned int j=0;
for(;time>0;time--)
for(j=0;j<125;j++);
}
void main(void) {
count=0;
P0=table[count/10];
(2)在Proteus中绘制电路原理图,按照表A..1将元件添加到编辑环境中;
(3)在Proteus中加载程序,观察仿真结果,检验电路图绘制的正确性。
【实验要求】
实验电路原理图及实验结果分析
表A.1实验1的元器件清单
Category
Reference
Value
Microprocessor ICs
U1
系部
计算机系
班级
B100505
学号
B10050523
姓名
张涛
课程名称
单片机原理及应用
实验日期
实验名称
LED指示灯循环控制
成绩
【实验目的】
熟悉uVision3编译软件,掌握C51编程与调试方法。
【实验原理】
图A.32为LED指示灯循环控制电路原理图。图中LED指示灯外接于P0口。由于P0口作为I/O口使用时是漏极开路的,需要外接上拉电阻,因而图中还加有8只100Ω的电阻。图中的时钟电路和复位电路与实验1相同。
(2)在Keil中编写C51程序,并使之编译通过。
(3)在Proteus中加载程序,观察仿真结果。
表A.6实验5的元器件清单
Category
Reference
Value
Microprocessor ICs
U1
80C51
Data Converter
U3
ADC0808
Miscellaneous
X1
CRYSTAL
Capacitors
C1、C2
CAP
Capacitors
C3
CAP-ELEC
Resistors
R2~R8
RES
Resistors
R1
ERS
Optoelectronics
LED1、LED2
7SEG-COM-CAT-GRN
【实验要求】
提交的实验报告中应包括带有头块部分的电路原理图、含注释内容的源程序及实验结果分析。
【实验内容】
(1)学习使用Proteus软件,掌握原理图绘制方法;
(2)学习Keil C软件,掌握C51程序编写与调试方法;
(3)理解定时器的工作原理,完成定时中断程序的编写与调试;
(4)深入理解定时中断的编程。
【实验步骤】
(1)在Proteus中绘制电路原理图,按照表A.6将元件添加到编辑环境中。
80C51
Miscellaneous
X1
CRYSTAL
Capacitors
C1、C2/1nF
CAP
Capacitors
C3/22uF
CAP-ELEC
Resistors
R2~R8/100
RES
Resistors
R1/1kΩ
ERS
Optoelectronics
LED1、LED2
7SEG-COM-CAT-GRN
X1
CRYSTAL
Capacitors
C2~C3
CAP
Capacitors
C1/22uF
CAP-ELEC
Resistors
R2~R8/200
RES
Resistors
R10~R18/100
ERS
Optoelectronics
D1~D8
LED-YELLOW
【设计程序】
#include<reg51.h>
sbit P0_0=P0^0;
【实验内容】
(1)熟悉Proteus软件,了解软件的结构组成与功能;
(2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、画总线、修改属性等基本操作;
(3)学会可执行文件加载及程序仿真运行方法;
(4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制。
【实验步骤】
(1)观察Proteus软件的菜单、工具栏、对话框等基本操作;
实验报告
实训题目:单片机原理与应用实训
院系:计算机系
专业:科学与技术_
班 级:B100505
学号:B********
*****
*******
系部
计算机系
班级
B100505
学号
B10050523
姓名
张涛
课程名称
单片机原理及应用
实验日期
实验名称
计数显示器
成绩
【实验目的】
熟悉Proteus仿真软件,掌握单片机原理图的绘图方法。
(4)下载可执行文件,在Proteus中观察仿真结果,检查程序的正确性。
【实验要求】
包括电路原理图及实验结果分析
表A.4实验3的元器件清单
Category
相关主题