龙空技术网

这么好的单片机综合训练指导你确定不想看看吗

说单片机的大方老师 166

前言:

如今我们对“用c语言编写程序实现1s定时计数”大约比较讲究,同学们都想要知道一些“用c语言编写程序实现1s定时计数”的相关内容。那么小编也在网络上搜集了一些关于“用c语言编写程序实现1s定时计数””的相关文章,希望大家能喜欢,大家快快来了解一下吧!

这么好的单片机综合训练指导你确定不想看看吗

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以~点我头像黑色字体加我地球呺也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比///

单片机综合训
实验指导书

实验环境介 1
1Keil集成开发环境介 1
实验内 9
实验练习使用集成调试软 9
实验简单输入输 10
实验定时器应 11
实验流水灯程序设 13

一、实验环境介绍
1Keil集成开发环境介绍
Keil集成开发环境是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编语言PLM语言C语言的程序设计,界面友好,易学易用。
(1)建立工作文件夹
在规定的盘符建立一个以自己学号命名的文件夹,作为工作文件夹,将日后实验所有的文件都存放在该文件夹中。
(2)进入集成开发环境
双击桌面图标,进uVision4集成开发环境。

(3)新建工程
选择菜porjectnew uvision project,弹Creat New Project对话框;

保存下拉列表中选择自己的工作文件夹,文件文本框中键入工程名(不需要键入扩展名,扩展名默认 .uv2),单按钮,关新建工对话框,弹为目target 1选择设对话框,选择目标芯片型号;

Atmel公司89C52芯片,单按钮,关闭对话框,新建一个工程。

(4)新建源程序
选择菜FileNew新建源程序文Text1

单击保存按钮,.C后缀名保存改文件。

(5)将源程序添加到工程中
右键单工程窗Source Group 1,在弹出的菜单中选增加文件到;(注:软件汉化有误)

增加文件到对话框;

选中欲添加的源程序,单Add按钮,源程序添加到工程中。但是,该对话框并不关闭,等待用户继续添加其他程序。添加完毕后,单按钮,关闭对话框工程窗Source Group 1下将出现该源程序文件名。

若对同一个文件二次添加,则会弹出如下警告框。

(6)编译和连接
Rebuild all target files按钮,对原程序进行编译和连接,构造结果将Build Output窗口中显示。如果程序有语法错误,则会指出错误类型及所在行,修改后,重新构造,直至没有任何语法错误。

(7)开始调试
/停止调按钮,进入调试状态。

在调试状态下构造工具调试工具。通过单步运行,查看寄存器、存储器的值,判断程序是否运行正确。若不正确,找出问题所在,单/停止调按钮,停止调试,进入编辑状态,修改程序,重新编译、调试。
(8)查看寄存器
进入调试状态后工程窗寄存器窗,可以查CPU各寄存器的值。
(9)查看存储器
存储器窗按钮,打开存储器窗口;该窗口共4个标签,可显4个存储器的值。单击一个标签,在地址栏中输入要查看的存储器单元的类型及地址。
片内数据存储 I : []
片外数据存储 X : []
程序存储 C : []
若要人为修改某存储单元的值,可右键单击该单元,在弹出的菜单中选更新存储,在弹出的文本框中输入该单元的新值,单即可。注:十六进制数前0x
(10)单步运行
在调试状态下,源程序的左边有一个黄色的箭头,指示当前程序执行的位置,即将要执行的一条指令。单按钮,程序执行一条指令,黄色箭头下移一行。寄存器和存储器的值的变化显示在相应位置。执行过的指令左边用一绿色方块标记。
(11)运行到光标行
若想快速、连续执行若干条指令,可将光标定位在这些指令的最后一行处,单运行到光标按钮,即可。
(12)全速运行
对于有些程序,只有全速运行才能实现其功能,这时只需单按钮;若要暂停运行,单按钮。
(13)将源程序从工程中删除
一个程序调试成功后,若要调试另一个程序,可不必新建工程,只需新建一个源程序,添加到原有的工程中,同时,将前一个源程序从工程中删除。
工程窗中,单击要删除的源程序名,Delete键,在弹出的对话框中选即可。
对于初学者,一般一个工程中只包含一个源程序,应将多余的源程序删除。

二、实验内容
实验一练习使用集成调试软件
1.实验目的
1)练习使Keil集成调试软件;
2)进一步熟悉语言指令的功能。
2.实验内容
按照实验指导书的说明,结合附录中的例子,练习使Keil集成调试软件,为以后的实验打下基础。
3.实验器材
计算1
4.实验步骤
1)新建工程;
2)输入源程序;
3)将源程序添加到工程中;
4)编译和连接;
5)运行程序;
6)观察记录运行过程和结果。
5.实验报告要求
1)列出源程序,并加以注释;
2)结构复杂的程序,画出流程图;
3)对实验过程和结果进行分析;
4)写出心得体会。

实验二简单输入输出
1.实验目的
1)进一步理I/O口的工作原理;
2)掌握输/输出程序的设计方法
2.实验内容
编写程序,点亮发光二极管
3.实验器材
1)计算12)仿真13)开发板一套
4.硬件电路

5.试编写程序点亮开发板上的发光二极管
6.思考与发挥
1)如何实现多个开关控制多个发光二极管
2)如何实8个发光二极管闪烁?

实验三定时器应用
1.实验目的
1)进一步了解定时器的结构和工作原理;
2)掌握定时器的应用程序设计方法。
2.实验内容
编写定时程序,实现发光二级D1的定1s亮灭
3.实验器材
1)计算12)仿真13)开发1
4.硬件连线

5.实验程序

6.思考与发挥
1)如何改变亮灭的频率?
2)计数初值变大,亮灭频率将如何变化?

实验四流水灯程序设计
1.实验目的
初步掌C51程序设计方法。
2.实验内容
编写程序,使D0-D88LED呈现流水灯效果进行左移右移滚动
3.实验器材
1)计算12)仿真13)开发1
4.实验程序
/**************************************************************************************

·LED流水灯实 *

实现现象:下载程序LED呈现流水灯效果进行左移右移滚动
注意事项:无
***************************************************************************************/

#includereg52.h //此文件中定义了单片机的一些特殊功能寄存器
#include //因为要用到左右移函数,所以加入这个头文件

typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;

#define led P2 //P2口定义led后面就可以使ledP2

/*******************************************************************************

· : delay

·函数功 :延时函数i=1时,大约延10us
*******************************************************************************/
void delay(u16 i)
{
while(i);
}

/*******************************************************************************

· : main

·函数功 :主函数

· :

· :
******************************************************************************/
void main()
{
u8 i;
led=0xfe;
delay(50000); //大约延450ms
while(1)
{
/ for(i=0;i
{
P2=~(0x01</1i位,然后将结果取反赋值P2
delay(50000); //大约延450ms
}
*/
for(i=0;i/led左移一位
{
led=crol(led,1);
delay(50000); //大约延450ms
}
for(i=0;i/led右移一位
{
led=cror(led,1);
delay(50000); //大约延450ms
}
}
}本例main是主函数名,要执行的主函数的内容称为主函数体,主函数体用大括{ }括起来。函数体中包含若干条将被执行的程序语句,每条语句都必须以分号为结束符。

标签: #用c语言编写程序实现1s定时计数