1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直到0,然后再从0逐渐增大,一直这样输出。试编写一函数,使从P2口输出的值产生三角波,并且使三角波的周期和最大值通过入口参数能够改变。

  #include #define DAC0832 XBYTE[0x7FFF] void san(unsigned char max1,unsigned char zhou1)

  { unsigned char i,j,max,zhou;max=max1;zhou=zhou1;while(1)

  { for(i=0;i0,i——)

  { DAC0832=i;for(j=0;j1,j——)

  { for(i=0;i*(ptr+i+1))

  { temp=*(ptr+i+1);*(ptr+i+1)=*(ptr+i);*(ptr+i)=temp;} *ptr1=*(ptr+20/2);}

  2.在数字滤波中有一种叫做“去极值平均滤波”技术,就是对采集的数据按照从大到小或者从小到大进行排序,然后去掉相同数目的极大值和极小值,对中间部分数据求算术平均值作为采样值。试编写一函数,对存放在片外数据存储器中从0x150开始的16个单元的采样数据,用选择法进行“去极值平均滤波”,把得到的采样数据存放到0x14f单元中。

  void teaf()

  { unsigned char xdata *ptr;unsigned char data temp,i,j,*ptr1;ptr=0x150;ptr1=0x4f;for(j=16;j>1,j——)

  { for(i=0;i*(ptr+i+1))

  { temp=*(ptr+i+1);*(ptr+i+1)=*(ptr+i);*(ptr+i)=temp;} temp=0;for(i=0;i void main()

  { unsigned char data *dpt;unsigned char i=0,temp;dpt=0x40;while(1)

  { temp=_getchar();if(temp==0x0d)

  break;*(dpt+i)=temp;i++;}

  3.利用库函数scanf编写一函数,实现从单片机串行口接收数据的C51程序,把接收的数据存放在片外数据存储器从0x240开始的区域,遇到回车符CR(ASCII码是0x0d)结束。

  include void main()

  { unsigned char xdata *xdpt;unsigned char i=0,temp;xdpt=0x240;while(1)

  { scanf(“%c”,if(temp==0x0d)

  break;*(xdpt+i)=temp;i++;}

  4.利用库函数putchar编写一函数,实现从单片机串行口发送数据的C51程序,发送的数据存放在片内数据存储器从0x50开始的区域,遇到回车符CR(ASCII码是0x0d)结束。

  include void main()

  { unsigned char data *dpt;unsigned char i=0;dpt=0x50;while(*(dpt+i)!=0x0d)

  { putchar(*(dpt+i));i++;}

  5.利用库函数printf编写一函数,实现从单片机串行口发送数据的C51程序,发送的数据存放在片外数据存储器从0x100开始的区域,遇到回车符CR(ASCII码是0x0d)结束。

  include void main()

  { unsigned char xdata *xdpt;unsigned char i=0;xdpt=0x100;while(*(xdpt+i)!=0x0d)

  { printf(“%c”,*(xdpt+i));i++;}

  6.编写一定时器/计数器0定时100ms中断处理函数,使函数实现时钟的功能,即产生时钟的秒、分钟和小时。设定时初值的高、低字节分别为TIMER_H和TIMER_L.设fosc=6mhz #include sfr TIMER_H=0x8b;sfr TIMER_L=0x8a;unsigned char data shi,fen,miao,bfm;

  void main()

  { TMOD=0x01;TIMER_H=15536/16;TIMER_L=15536%16;ET0=1;EA=1;TR0=1;while(1);}

  void time0_int() interrupt 1 { TIMER_H=15536/16;TIMER_L=15536%16;bfm++;if(bfm==10)

  { bfm=0;miao++;} if(miao==60)

  { miao=0;fen++;} if(fen==60)

  { fen=0;shi++;} if(shi==24)

  { shi=0;}

单片机C语言基础编程源码六则的更多相关文章

  1. 单片机C语言基础编程源码六则2

    1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直 ...

  2. C语言基础 (4) 原码反码补码与数据类型

    1.回顾 使用gcc编译代码 gcc hello.c -o hello windows下编译代码 C语言编译步骤: 预处理(头文件展开,干掉注释) gcc -E hello.c -o hello.i ...

  3. C语言基础(4)-原码,反码,补码及sizeof关键字

    1. 原码 +7的原码是0000 0111 -7的原码是1000 0111 +0的原码是0000 0000 -0的原码是1000 0000 2. 反码 一个数如果值为正,那么反码和原码相同. 一个数如 ...

  4. unix网络编程源码编译问题

    ​##获得更多资料欢迎进入我的网站或者 csdn或者博客园 今天在温习计算机网络时,突然将我很久前买的<unix网络编程第三版卷一>拿出来看看了.放了两年了,哈哈.主要讲的套接字,之前编写 ...

  5. 【itclx面向对象二】窥探itcl面向编程源码

    从上一篇博客看出,itcl的语法其实不难,但是有个缺点,编程习惯与当前类似C++常见的面向编程还是有些区别,并且在大型项目实施中这种方式很费劲. 于是有了itclx. 例如: 1.成员变量.成员方法调 ...

  6. 如何快速入门单片机C语言

    一.为什么要学单片机技术? 传统的电子产品升级改造成智能化的电子产品需要用到单片机技术.也就是说传统的电子产品如电视机.电子表.计算器.数码相机.手机.MP3.遥控器.洗衣机等产品智能化.微型化,需要 ...

  7. 单片机教程4.C语言基础以及流水灯的实现

    单片机教程4.C语言基础以及流水灯的实现 C语言,没接触过计算机编程语言的人会把它看的很神秘,感觉非常的难,而在我看来,C语言的逻辑和运算,就是小学水平,所以大家不要怕它,我尽可能的从小学数学逻辑方式 ...

  8. Java语言基础(六)

    Java语言基础(六) 前一章提到的, BigDecimal, DecimalFormat等具体用法,这里就不在说了,网上有许多 一.下面让我们看一个例子(自由落体运动位移) 说明: (1).公式是 ...

  9. 第二十六节:复习Java语言基础-Java的概述,匿名对象,封装,构造函数

    Java基础 Java语言概述 Java语言 语言 描述 javaee 企业版 javase 标准版 javame 小型版 JDK JDK(Java开发工具包) Java语言 语言 Java语言 Ja ...

随机推荐

  1. node.js 模块的分类

    模块的简单分类可分为三类: 第一类分别为:核心模块:http.fs.path.... 第二类分别为:文件模块:var (util)=require('.util.js') 第三方类分别为:其他模块:v ...

  2. JS-词法作用域 作用域链

    ## 词法作用域 概念:所谓的词法作用域,就是代码在编写过程就体现出来的作用范围.代码一旦写好,不用执行, 作用范围就已经确定好了,这个就是所谓的词法作用域. ## 词法作用域的规则: 1,函数允许访 ...

  3. 一般处理程序(ashx)的使用

    ASP.NET 中发送请求的页面代码如下: <head runat="server"> <title></title> <script s ...

  4. linux_grub resue模式恢复

    //20190417 今天中午装linux的电脑崩了…… 一开始还以为是什么硬件问题,搞了半天,是更新的时候吧grub启动项弄坏了 行吧,没人教咱就上网搜,搞一下午搞出来了 ============= ...

  5. Unicode编码范围

  6. 《PHP内核剖析 - FPM》

    一:概述 - FPM 定义 -  FPM(FastCGI Process Manager)是PHP FastCGI运行模式的一个进程管理器. -  FastCGI -  Web服务器(如:Nginx. ...

  7. 推荐一个Monokai风格的EditPlus配色方案

    如何配置 找到EditPlus的配置文件editplus_u.ini,该文件默认在:系统盘:\Users\用户名\AppData\Roaming\EditPlus目录中.将其中的内容替换为如下即可: ...

  8. HotSpot设计原理与实现:一、初识HotSpot

    一.HotSpot内核模块组成和功能框架 1.HotSpot内核模块图 (1)Prims模块: (2)Service模块: (3)Runtime模块: 二.虚拟机生命周期(JVM初始化过程) 1.虚拟 ...

  9. CAS单点登录入门

    一.单点登录简介 SOO是现在企业比较流行的业务整合解决方案之一,定义解决登录,可以应用在不同系统中,用户只需要登录一次,就可以访问所有相互信任的应用系统(模块开发.同家公司不同产品等等),例如百度, ...

  10. C# 使用MongoDB遇到的问题

    错误:缺少 System.Runtime.InteropServices.RuntimeInformation.dll version = 4.0.0 解决方法: 下载了System.Runtime. ...