嵌入式系统课程实践.docx
《嵌入式系统课程实践.docx》由会员分享,可在线阅读,更多相关《嵌入式系统课程实践.docx(11页珍藏版)》请在冰豆网上搜索。
嵌入式系统课程实践
嵌入式系统课程实践
实验报告
指导教师
姓名
班级
学号
实验一流水灯
一.实验目的
1、学习Keil软件的程序调试方法。
2、学习单片机HEX文件的下载。
3、学会KEILC程序设计及调试,重点学会预处理命令、数据类型的定义
二.实验仪器
1.PC计算机、Keil软件、STC_ISP软件Proteus-Pro-crack-ha-7.8sp2软件
三.实验内容
1、依据电路图,实现LED的闪烁,每隔0.2秒更替一次亮灭
2、按照KEIL软件的使用步骤,建立工程。
3、编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。
4、用STC-ISP下载软件下载HEX文件到单片机系统。
5、运行、调试程序,观察实验结果。
四.实验步骤
电路图
程序跑马灯
#include
voiddelay()
{intt=0;
for(t=0;t<9999;t++);
}
voidmain()
{intled=0x01;
P1=led;delay();
while
(1)
{
if(led==0x80)
{led=0x01;P1=led;delay();}
led=led*2;
P1=led;
delay();}}
5.实验感悟
通过这次试验,学到了很多程序思想,在实际调试过程中一些困难,但在同学帮助下都一一解决,加深了对单片机的理解,知道了单片机的实际应用的重要性。
实验二电机速度控制
一.实验目的
1学习Keil软件的程序调试方法。
2学习单片机HEX文件的下载。
3学会KEILC程序设计及调试,重点学会预处理命令、数据类型的定义
二.实验仪器
1.PC计算机、Keil软件、Proteus-Pro-crack-ha-7.8sp2软件、
三.实验内容
1依据电路图,实现单片机实现对电机的控制即数字量到模拟量的转化
2按照KEIL软件的使用步骤,建立工程。
3编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。
4用STC-ISP下载软件下载HEX文件到单片机系统。
5运行、调试程序,观察实验结果。
.四。
实验步骤
电路图
主程序
#include
intspeed=0;
intrspeed=20;
intyspeed=0;
inte=0;
intkp=3;
voidtime1_int(void)interrupt3
{TR1=0;
TR0=0;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
yspeed=TH0*256+TL0;
TH0=0;
TL0=0;
TR1=1;
TR0=1;
e=rspeed-yspeed;
P2=e*kp;}
main(){
TMOD=0x15;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
TH0=0;
TL0=0;
IE=0x89;
TR1=1;
TR0=0;
EA=1;
EX0=1;
IT0=1;
while
(1);
}
五.实验感悟
通过这次试验,认识了控制电机的工作原理,实验过程中出现了好多问题,只能一点一点慢慢修改,最终完成实验,认识到了实践的重要性。
实验三AD,DA转换
一实验目的
1学习Keil软件的程序调试方法。
2学习单片机HEX文件的下载。
3学会KEILC程序设计及调试,重点学会预处理命令、数据类型的定义。
二实验仪器
PC计算机、Keil软件、Proteus-Pro-crack-ha-7.8sp2软件、
三实验内容
1依据电路图,调节电路图里的可调电阻通过单片机测量电路里的电压的变化最后把电压值在4个七段数码管显示从而实现了模拟量到数字量的转化
2按照KEIL软件的使用步骤,建立工程。
3编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。
4用STC-ISP下载软件下载HEX文件到单片机系统。
5运行、调试程序,观察实验结果。
四.实验步骤
电路图:
程序:
#include
#include
#defineucharunsignedchar
sbitP2_0=P2^0;
sbitP2_1=P2^1;
sbitP2_2=P2^2;
sbitP2_3=P2^3;
sbitOE=P3^0;
sbitEOC=P3^1;
sbitST=P3^2;
sbitP3_4=P3^4;
sbitP3_5=P3^5;
sbitP3_6=P3^6;
ucharcodeleddata_dot[]={0x40,0x79,0x24,0x30,0x19,0x12};//整数加小数点{0.1.2.3.4.5.}
ucharcodeleddata[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//小数位
voiddelay(ucharn)
{uchari,j;
for(i=0;ifor(j=0;j<125;j++);}
voidconvert(intvolt_data)
{uchartemp;
P0=leddata_dot[volt_data/51];//255对应5V,1V对应51二进制
P2_0=1;
delay(3);
P2_0=0;
{P0=leddata[(volt_data%51)*10/51];
P2_1=1;
delay(3);
P2_1=0;}
//temp=(((volt_data%51)*10)/51)*10%51;
temp=(((volt_data%51)*10)%51);//*10%51;
{P0=leddata[temp*10/51];
P2_2=1;
delay(3);
P2_2=0;}temp=((temp*10/51)*10/51);{
P0=leddata[(temp*10/51)*10/51];
P2_3=1;
delay(3);
P2_3=0;}}
voidmain()
intvolt_data;
P3_4=0;
P3_5=0;
P3_6=1;
while
(1)
{ST=0;
_nop_();
ST=1;
_nop_();
ST=0;//6(START):
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
if(EOC==0)
delay(100);
while(EOC==0);//(EOC):
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE=1;//9(OE):
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
volt_data=P1;
OE=0;
convert(volt_data);}}
5.实验感悟
通过这次实验,了解了AD转换,模拟量和数字量的转换,在老师已有程序的前提下,艰难的完成了实验,让我们知道我们还差很远,还得努力学习
实验四单片机中断查询工作方式
一.实验目的
1学习Keil软件的程序调试方法。
2学习单片机HEX文件的下载。
3学会KEILC程序设计及调试,重点学会预处理命令、数据类型的定义
二.实验仪器
PC计算机、Keil软件、Proteus-Pro-crack-ha-7.8sp2软件、
三.实验内容
1依据电路图,实现单片机对外部状态的查询和输出,即根据按键的状态来输出结果。
2按照KEIL软件的使用步骤,建立工程。
3编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。
4用STC-ISP下载软件下载HEX文件到单片机系统。
5运行、调试程序,观察实验结果。
四.实验步骤
电路图:
程序:
#include
unsignedcharcodekeytable[]=
{0xee,0xde,0xbe,0x7e,
0xed,0xdd,0xbd,0x7d,
0xeb,0xdb,0xbb,0x7b,
0xe7,0xd7,0xb7,0x77};
unsignedcharcodetable[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
voiddelay()
{unsignedintn=10000;
while(n--);}
voidmain()
{unsignedchartemp,key,num,i;
while
(1)
{P3=0xf0;
if(P3!
=0xf0)
{delay();
if(P3!
=0xf0)
{temp=P3;
P3=0x0f;
key=temp|P3;
for(i=0;i<16;i++)
if(key==keytable[i]){
num=i;break;}
P1=table[num];
delay();}}}}
5.实验感悟
通过这次课,了解到中断对单片机是很重要的,学习中断对我们学习单片机的帮助是很大的,熟悉了keil仿真软件、proteus仿真软件的使用和单片机外部中断的使用,了解并熟悉了51单片机中中断的概念,中断处理系统的工作原理。
掌了中断的设计,会利用中断进行简单的加减设计。
同理还可以扩展设计成多位数码管的加减运算,并能得到广泛的应用。