本科单片机c语言实验手册(实验报告)(可编辑修改word版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机C语言程序设计》
实验手册
院系信息工程学院
专业物联网工程
学生姓名宋增
学号5006130037
指导教师王闯
许昌学院信息工程学院
实验情况一览表
实验一单片机最小系统
班级、姓名、学号、指导教师
实验学时数、实验位置、实验日期年月日三、实验仿真(画出实验电路)
实验二点亮一盏灯
班级、姓名、学号、指导教师
实验学时数、实验位置、实验日期年月日三、实验仿真(画出实验电路)
实验三流水灯
班级、姓名、学号、指导教师
实验学时数、实验位置、实验日期年月日三、实验仿真(画出实验电路)
实验四脉冲触发外部中断
班级、姓名、学号、指导教师
实验学时数、实验位置、实验日期年月日
实验五电平触发外部中断
班级、姓名、学号、指导教师
实验学时数、实验位置、实验日期年月日
二、实验要求
用proteus 画出电路图,用keil 软件编程,并生成HEX 文件,在proteus 上面仿真实现,结果无误,在试验箱上下载验证。
三、实验仿真(画出实验电路)
实验六定时器
班级、姓名、学号、指导教师
实验学时数、实验位置、实验日期年月日一、实验目的
掌握定时器的工作原理,编程实现定时器1s 的精准延时。
二、实验要求
用proteus 画出电路图,用keil 软件编程,并生成HEX 文件,在proteus 上面仿真实现,结果无误,在试验箱上下载验证。
三、实验仿真(画出实验电路)
四、实验程序
#include
#define uint unsigned int
#define uchar unsigned char
uchar num,temp,shi,ge;
uchar code
table[]={ 0x3f,0x06,0x5b,0
x4f, 0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c};
void miao(uchar,uchar);
void main()
{
TMOD=0X01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
miao(shi,ge);
}
}
void miao(uchar shi,uchar ge)
{
P0=table[shi];
P2=table[ge];
}
void TO_jishi() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==18)
{
num=0;
temp++;
if(temp==100)
temp=0;
shi=temp/10;
ge=temp%10;
}
}
五、总结:
在实验过程中,使我接触了许多我以前没接触过的元件,提高了自己的动手能力。而且在编程时重新温习了刚学不久的51 单片机,不仅让我学习了一些新的知识,而且对以前所学内容进行了巩固,让我懂得理论知识的重要性,没有理论的指导一切实际行动都是盲目的,且实际操作是所学的理论知识得到验证,更能加深对理论知识的理解,让我受益匪浅。
六、评语
实验七定时器方波脉冲
班级、姓名、学号、指导教师
实验学时数、实验位置、实验日期年月日
二、实验要求
用proteus 画出电路图,用keil 软件编程,并生成HEX 文件,在proteus 上面仿真实现,结果无误,在试验箱上下载验证。
三、实验仿真(画出实验电路)
实验八计数器
班级、姓名、学号、指导教师
实验学时数、实验位置、实验日期年月日
四、实验程序
#include
#define uint unsigned int
#define uchar unsigned char
uint num;
uchar code
table[]={ 0x3f,0x06,0x
5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void main()
{
TMOD=0x66;
TH0=0xff;
TL0=0xfd;
TH1=0xff;
TL1=0xfa;
TR0=1;
TR1=1;
ET0=1;
ET1=1;
EA=1;
while(1)
{
P0=table[num];
if(num>9)
num=0;
}
}
void T0_jishu3() interrupt 1
{
TH0=0xff; //ÖØ×°³õÖµ
TL0=0xfd;
num++;