单片机C语言程序设计实训100例
- 格式:pdf
- 大小:1.04 MB
- 文档页数:59


第 1 页 共 21 页
关于单片机实训报告万能【六篇】
【篇1】单片机实训报告万能
通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。
由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。
踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
但在这次实训中同时使我对汇编语言有了更深的认识。当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究
第 2 页 共 21 页
的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。
【篇2】单片机实训报告万能
通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。
LED显示器:LED显示器是由发光二管组成显示字段的器件。通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。有段选码和和位选码。当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA电流;位线的电流应选择40-80MA。LED显示器的显示方式有动态和静态两种。7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。7289A的控制指令分为两类:8位宽度的单字节指令和16位宽度双字节指令;还有闪烁指令和消隐指令。7289A采用串行方式SPI总线与微处理器通信;7289A与AT89C52接口电路,在实际电路中无论接不接键盘,电路中连接到其各段上的8个 100千欧的下拉电阻均不可以省去,如果不接键盘而只接显示器可以省去8个10千欧电阻,若仅接键盘而不接显示器,可省去串入DP及SA-SG连
C51单片机实战100例
1 目录
目录 1
函数的使用和熟悉 6
实例3:用单片机控制第一个灯亮 7
实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 7
实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 8 C51单片机实战100例
2 实例6:使用P3口流水点亮8位LED 9
实例7:通过对P3口地址的操作流水点亮8位LED 11
实例8:用不同数据类型控制灯闪烁时间 13
实例9:用P0口、P1 口分别显示加法和减法运算结果 15
实例10:用P0、P1口显示乘法运算结果 15
实例11:用P1、P0口显示除法运算结果 16
实例12:用自增运算控制P0口8位LED流水花样 17
实例13:用P0口显示逻辑"与"运算结果 18
实例14:用P0口显示条件运算结果 18
实例15:用P0口显示按位"异或"运算结果 19
实例16:用P0显示左移运算结果 19
实例17:"万能逻辑电路"实验 20
实例18:用右移运算流水点亮P1口8位LED 20
实例19:用if语句控制P0口8位LED的流水方向 22
实例20:用swtich语句的控制P0口8位LED的点亮状态 23
实例21:用for语句控制蜂鸣器鸣笛次数 25
实例22:用while语句控制LED 27
实例23:用do-while语句控制P0口8位LED流水点亮 29
实例24:用字符型数组控制P0口8位LED流水点亮 30
实例25: 用P0口显示字符串常量 32
实例26:用P0 口显示指针运算结果 33
实例27:用指针数组控制P0口8位LED流水点亮 34 C51单片机实战100例
3 实例28:用数组的指针控制P0 口8 位LED流水点亮 35
实例29:用P0 、P1口显示整型函数返回值 37
实例30:用有参函数控制P0口8位LED流水速度 38
实例31:用数组作函数参数控制流水花样 40
K1~K4按键状态显示 程序更新
在学习《 案例》一书中的第12例“K1~K4按键状态显示“时发现,K3和K4一直达不到案例的要求,即K3和K4按下并释放时LED点亮,再次按下并释放时熄灭。而是K3或者K4按下时LED一直在闪,并且在K3或K4按下时,再按其它键时,其它键都没有反应。
书中电路和程序如下:
#include
#define uchar unsigned char
#define uint unsigned int
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
//延时
void DelayMS(uint x)
{
uchar i;
while(x--) for(i=0;i<120;i++);
}
//主程序
void main()
{
P0=0xff;
P1=0xff;
while(1)
{ LED1=K1;
LED2=K2;
if(K3==0)
{
while(K3==0);
LED3=~LED3;
}
if(K4==0)
{
while(K4==0);
LED4=~LED4;
}
DelayMS(10);
}
}
后修改程序,变动K3按键相关的程序,实现K3按键按下时LED点亮,再次按下时熄灭的效果。但还没有实现“按下并释放时LED点亮,再次按下并释放时熄灭”的要求。附上修改后的程序,做抛砖引玉,还请高手们提供更好的程序实现完整的程序要求。
修改后的程序如下:
#include
#define uchar unsigned char
#define uint unsigned int
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
C51单片机实战100例
C51单片机作为最常用的单片机芯片之一,具有性能稳定、资源丰富、易于学习和开发等优势。本文将介绍C51单片机实战100例,旨在帮助读者更好地理解和应用C51单片机。
第一例:LED灯闪烁
首先,我们以最简单的LED灯闪烁为例,来体验一下C51单片机的编程过程。首先我们需要准备一个开发板、几个电阻和电源。然后,根据单片机的引脚图,将LED灯连接好。
接下来,我们需要编写简单的C语言程序来控制LED灯的闪烁。例如,我们可以使用内置的延时函数来调整灯亮的时间,实现闪烁效果。经过编译和下载,我们就可以看到LED灯以一定的频率闪烁,一闪一闪的。
第二例:数码管显示
除了控制LED灯闪烁外,C51单片机还可以用来控制各种数码管显示。例如,我们可以编写程序实现数字的倒计时功能。在倒计时过程中,我们可以通过数码管的显示,直观地观察到时间的变化。
在编写程序时,我们需要根据数码管的接口电路来控制引脚的输出,并使用定时器中断来实现秒数的递减。通过不断循环调用显示函数,我们可以将倒计时的数字显示在数码管上,并实时更新。
第三例:温湿度检测 C51单片机还可以用来进行温湿度的检测。我们可以连接温湿度传感器到单片机的引脚上,并编写相应的程序来读取传感器的数据。
在编写程序时,我们可以使用串口通信来与PC机进行数据的交互。通过串口发送指令,单片机可以将温湿度的数据发送回PC机进行实时显示。这样,我们就可以通过C51单片机来实现温湿度的实时监测功能。
......
通过以上几个实例,可以清楚地看到C51单片机的强大功能和灵活性。C51单片机实战100例可以涵盖更多的应用场景,如蜂鸣器控制、电机驱动、红外遥控等。读者可以根据自己的需求和兴趣选择相应的实例进行学习和实践。
结语
总而言之,C51单片机作为一种常见且广泛使用的单片机芯片,具有强大的功能和灵活性。通过实战100例的学习和实践,读者可以更加深入地理解和掌握C51单片机的编程方法和应用技巧。希望本文对读者在C51单片机的学习和实践中提供一些帮助和指导。祝愿大家在C51单片机的世界中能够不断进步,取得更多的成就。