预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验二Keil软件编程调试 一、实验目的 1、学习keil软件编程调试 2、实现控制4个按键完成一般仪表的设置 实验内容 使用AT89c51单片机控制四个数码管动态显示 三、实验条件 1、装有Keil软件的PC机 四、实验步骤 1、设计思路 设置四个按键K1—K4,实现其对数码管的显示 K1加一函数,K2除法函数,K3显示函数,K4延时函数控制。 2、利用Keil软件编程调试 a、打开Keil软件并新建一个工程文件,点击“Project->NewProject…”菜单。 b、选择工程文件要存放的路径,输入工程文件名Keil调试,最后单击保存。 c、在弹出的对话框中选择CPU厂商及型号。选择AT89C51。 d、开始编写代码前,创建一个C程序文件。选择File->New,这时会出现在一个Text文本编辑窗口,按一下保存按钮,把该文件保存为yq.c文件。 e、用鼠标在SourceGroup1上单击右键,然后再单击AddFilestoGroup‘SourceGroup1',把刚保存的Keil调试.c文件添加到工程的工作组中如下图: f、在编辑框中编写控制程序,程序见附件。 编写完成后选择Project->Buildalltargetfiles来编译工程,如果在错误与警告处看到0Error(s)表示编译通过。 g、进入Project->OptionsforTarget„Target1‟,再进入Output一栏,将“CreateHEXFi”一栏钩上,再按确定,生成yq.hex文件。 h、程序下载运行。 五、实验结论 此次实验过程不仅仅是检验了我的专业知识的学习程度,更是培养了一种综合性能力,无论是对事件的设计分析还是过程的编写调试,实践加理论的全方面结合,不断的调试修改再调试,一次又一次的改进使得自己有决心去完成它,做好它。的确,由于自己专业知识的欠缺,我请求了同学的帮助,与同学通过书本,网络等一些资料的搜索去不断的学习,实践。 智能仪表的实验的确加深了对所学知识的理解,巩固了知识并加以实践运用。学习运用Keil软件,从生疏到熟练的逐步渐进的过程并不像曾经学习的软件那么顺风顺水,它的运用结合太多了专业知识,很多问题结合在一起的确给实验的完成带来了不少的困难,好在在同学帮助下和理论知识的搜索下还是完成了实验内容。 这次实验的过程,体现出了自己单独设计能力和专业理论知识综合运用的能力,不断的发现问题,解决问题,认识到自己曾经学习时候的不足之处,从而加以弥补。 附件: 编写程序: #include<reg51.h> voidjiayi();//加1函数 voidchufa();//除法函数 voidxianshi();//显示函数 voiddelay();//延时函数 sbitP2_0=P2^0;//个位位码 sbitP2_1=P2^1;//十位位码 sbitP2_2=P2^2;//百位位码 sbitP2_3=P2^3;//千位位码 unsignedcharqianwei,baiwei,shiwei,gewei; unsignedintcount=0; unsignedcharcodedis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极0-9 voidmain() { while(1) { jiayi(); chufa(); xianshi(); } } voidchufa()//将数字的各个位拆开 { qianwei=count/1000;//千位数 baiwei=count%1000/100;//百位数 shiwei=count%100/10;//十位数 gewei=count%10;//个位数 } voidjiayi() { count=count+1; if(count==10000) count=0; } voiddelay()//延时 { unsignedinti,j; for(i=0;i<10;i++) { for(j=0;j<200;j++); } } voidxianshi()//显示当前数值 { P2_0=1;//显示个位 P1=dis[gewei]; delay(); P2_0=0; P2_1=1;//显示十位 P1=dis[shiwei]; delay(); P2_1=0; P2_2=1;//显示百位 P1=dis[baiwei]; delay(); P2_2=0; P2_3=1;//显示千位 P1=dis[qianwei]; delay(); P2_3=0; }