第一范文网 - 专业文章范例文档资料分享平台

单片机原理与接口技术实验指导(c语言版) (4)

来源:用户分享 时间:2020-06-23 本文由一枚小可爱 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

else {分支2}

当条件为真时执行分支1,否则,执行分支2 2) 在多分支的时候用

在分支比较多的情况下使用switch语句,格式如下: Switch(表达式) {

Case(常量表达式1):

语句1;

Break; Case(常量表达式2):

语句2;

Break; ???????

Case(常量表达式n):

语句n;

Break; Default:语句n+1; Break; }

Switch语句又称开关语句,switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,直到遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句n+1,然后退出switch语句,程序流程转向开关语句的下一个语句。 需要注意的是:

①default总是放在最后,这时default后可以不要break语句.并且,default部分也不是必须的,如果没有这一部分,当switch后面圆括号中表达式的值与所有case后面的常量表达式的值都不相等时,则不执行任何一个分支直接退出switch语句.此时,switch语句相当于一个空语句 。

②每一个分支语句后的break语句是必不可少的,否则程序并不能跳出switch,会继续执行case后面的case语句。

3. 循环结构程序设计

1)for循环

格式:for(循环体初始化;循环体执行条件;循环体执行后的操作) {

循环体; }

2)while循环

格式:while(循环体) { 循环体;

}

3)do while循环

格式:do{循环体内容} While(循环体执行条件) 需要注意的是:前两种循环是先进行条件是否满足的判断,才决定循环体是否执行;

而do while循环是先执行循环体,再判断条件是否满足,再决定循环体是否再继续执行。

(5)子程序设计

当一段代码需要经常被调用或是在不同的地方使用时,通常将该段代码编制成子

函数的形式以方便调用。

程序执行过程往往要调用其它函数以实现一些特定的功能,在程序中函数调用的

执行流程图如下所示:

正在执行程序调用其它函数处继续执行程序进入执行被调用函数返回

通常在进行函数调用时,调用函数与被调用函数之间有数据的传递,这种数据

的传递是通过函数的参数实现的。在定义一个子函数时,位于函数名括号内的变量是形式参数,而在调用函数的语句中函数名后的括号里的变量实际参数,参数传递中只能由实际参数传递给形式参数,而不能由形式参数传递给实际参数。

需要读者注意的是,当程序代码比较多的时候,通常主程序和子函数是分别在

不同的文件中的,同时子程序也是按照功能分别存放在不同的文件中的,方便查阅。这时,如果要调用子程序,如果该子程序不在此文件中,就要事先声明将被调用的子函数。为了方便使用,也可以对每个文件做一个.h文件,.h文件包括对端口的定义、变量的定义、常量的定义、子函数的声明等。每次需要调用相关子函数时,只要直接调用这个.h文件就可以了。

例如,在后面按键的程序设计中,可以将按键扫描分为三个子函数,读按键、

按键去抖、键值转换,保存在一个文件中,方便以后其它代码中的调用。一种主程序设计格式为:

#include void Keyin (void) ; //调用函数 void Keychk(void); void Keycvt(void);

void main() // 主函数 { While(1) {

Keyin();

Keychk(); Keycvt(); }

}

另外一种设计方法就是事先设计好key.h文件,在主程序中包含就好了: key.h文件格式:

#include 端口定义; 变量定义; 常量定义;

void Keyin (void) ; //函数声明 void Keychk(void); void Keycvt(void);

完成key.h文件设计后,主程序为:

#include #include “key.h”

void main() // 主函数 { While(1) {

Keyin();

Keychk(); Keycvt(); }

} 从上面的对比可以明显的看出,定义.h文件,简化了程序的书写,也减少

了编程中错误的出现。

2实验内容

(1)掌握C中的运算符、分支语句 (2)熟悉C语言中的关键词及相关函数 (3)学习C语言程序设计的格式和方法 4 实验参考程序

#include #include

unsigned int getnumber(void); void output(unsigned int); void main(void) {

unsigned int number1,number2; bit operation; SCON=0x52; TMOD=0x20; TCON=0x69; TH1=0xf3;

printf(\ while(1) { number1=getnumber(); number2=getnumber(); printf(\ operation=(getchar()=='+'); output(operation? (number1+number2):(number1-number2)); } }

实验板电路介绍

1. 电源电路介绍

电源电路如图所示,它采用三端稳压器7805及外围电路组成的稳压电路,,从J输入一个8—12V的直流电压,在输出端产生5V的稳压输出。其中发光二极管作为电源指示灯,二极管D12是防止电源接反,保护电路。

VCCU9780531+5VVinC15C12C13C14D124007R16104104100uF/16VJ7100uF/24V1KGNDD112 2. 复位电路

RSTGNDC24.7uFS1D14001

10KVCCR5 图中RST接单片机的复位引脚RST,形成复位电路。平时RST端口是高电平,当按键按下后,RST端口为低电平,实现低电平复位。

3. 流水灯电路 RP11KVCC123456789D3D4D5D6D7D2D8D9LED1LED2LED3LED4LED5LED6LED7LED8

J11J11 J12J12 J13J13 J14J14 321J15321LED5P14ELED1P10A321J16321LED6P15FLED2P11B321J17321LED7P16GLED3P12C321J18321LED8P17DPLED4P13D

如图示,8个发光二极管接P1[0:7]口,组成一个流水灯电路。实验板中P1口是流水灯和数码管显示的复用端口,通过跳线J11、J12、J13、J14、J15、J16、J17、J18进行选择。在流水灯实验中,将J11—J18跳线的2、3短接,二极管LED1—LED8就与P1口导通,当P1口有低电平时,二极管点亮。

4. 数码管显示电路

12345678RP21K161514131211101110742195faABCDEFGPDDPY1afegdbcdpfeagdbcdpfegdpbdace3afegdbcdpgdbcdpcom4com3com21298com16COM1Q1COM29012Q2COM39012Q3COM49012Q49012VCC

数码管显示电路如图所示,段选端口接到复用端口P1上,在数码管显示电路中,将J11—J18跳线的2、3短接,就可以进行段选。数码管的公共端COM1—COM4是经PNP三极管9012接单片机的P0.0—P0.3口上的,属于共阳极的接法,当COM端有低电平时,选中数码管的某个位。

5. 键盘电路

本次采用的是独立式键盘,8个按键一端分别接P2[0:7]口,并通过10K的电阻上拉,另一端地。没有按键状态下,P2口为高电平,当有按键按下时,为低电平状态。

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育单片机原理与接口技术实验指导(c语言版) (4)全文阅读和word下载服务。

单片机原理与接口技术实验指导(c语言版) (4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1098995.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top