历史上的今天
返回首页

历史上的今天

今天是:2025年02月13日(星期四)

正在发生

2020年02月13日 | 单片机指针学习

2020-02-13 来源:51hei

单片机指针源程序如下:

#include


bit cmdArrived = 0;                 //命令到达标志,即接收到上位机下发的命令

unsigned char cmdIndex = 0;

unsigned char *ptrTxd;

unsigned char cntTxd = 0;


unsigned char array1[1] = {1};

unsigned char array2[2] = {1,2};

unsigned char array3[4] = {1,2,3,4};

unsigned char array4[8] = {1,2,3,4,5,6,7,8};

void ConfigUART(unsigned int baud);


void main()

{

  EA = 1;

        ConfigUART(9600);     //配置波特率为9600

        

        while(1)

        {

          if(cmdArrived)      //判断是否接受到数据

                {

                  cmdArrived = 0;

                        switch(cmdIndex)

                        {

                          case 1:

                                          ptrTxd = array1;

                                    cntTxd = sizeof(array1);   //sizeof(array1)=1,里面有几个字节,就等于多少,告诉我们要发送几个

                                    TI = 1;

                                    break;

                                case 2:

                                          ptrTxd = array2;

                                    cntTxd = sizeof(array2);  

                                    TI = 1;

                                    break;

                                case 3:

                                          ptrTxd = array3;

                                    cntTxd = sizeof(array3);  

                                    TI = 1;

                                    break;

                                case 4:

                                          ptrTxd = array4;

                                    cntTxd = sizeof(array4);  

                                    TI = 1;

                                    break;

                                default:                     //如果所含向没有包含一切,则必须加default

                                          break;

                        }

                }

        }

}

void ConfigUART(unsigned int baud)

{

  SCON  = 0X50;        //配置串口为模式1

        TMOD &= 0x0F;        //清零T1的控制位

        TMOD |= 0x20;        //配置T1为模式2

        TH1 = 256 - (11059200/12/32)/baud;      //计算T1重载值

        TL1 = TH1;           //初值等于重载值

        ET1 = 0;             //禁止T1中断

        ES  = 1;             //使能串口中断

}

void InterruptUART() interrupt 4

{

  if (RI)                //接受到字节

  {

          RI = 0;              //清零接收中断标志位

                cmdIndex = SBUF;

                cmdArrived = 1;        

        }                

        if(TI)                 //字节发送完毕

        {

          TI = 0;              //清零发送中断标志位

                if(cntTxd > 0)

                {

                  SBUF = *ptrTxd;

                        cntTxd--;

                        ptrTxd++;

                }                   

        }

}


推荐阅读

史海拾趣

Advanced_Linear_Devices_Inc.公司的发展小趣事

随着全球市场的不断扩大,ALD积极推进国际化战略。公司通过与全球各地的OEM制造商建立合作关系,将产品销往世界各地。同时,ALD还积极参与国际电子展会和论坛,展示其最新技术和产品,与全球同行交流合作。这些举措不仅提升了ALD的国际知名度,还为公司带来了更多的商机和发展空间。

EA Elektro-Automatik公司的发展小趣事

进入21世纪后,EA Elektro-Automatik加大了对研发的投入,致力于技术突破和产品创新。公司成功开发出一系列具有高精度、高可靠性和高性能的电力测试解决方案,如高速模拟稳压器、直流/交流源、并联操作设备等。这些产品不仅满足了市场对精密测试设备的需求,也进一步巩固了EA Elektro-Automatik在电子测量领域的领先地位。

Faraday Technology公司的发展小趣事

近年来,中国市场对EA Elektro-Automatik来说变得越来越重要。公司高层认识到了中国市场的巨大潜力和重要性,并制定了在中国市场继续投资和实现增长的明确计划。EA Elektro-Automatik的代表在多个场合与中国政府和行业领导进行交流和合作,努力拓展中国市场。目前,中国市场已经占据EA Elektro-Automatik全球业务的相当一部分份额,并有望在未来继续保持增长。

Digital Equipment Corp公司的发展小趣事

DEC始终致力于技术创新和产品研发。在20世纪70年代和80年代,DEC推出了一系列具有划时代意义的计算机产品,如PDP系列计算机和VAX系列计算机。这些产品在技术上处于领先地位,受到了市场和客户的广泛认可。此外,DEC还通过国际扩张策略,将其业务拓展到了全球范围内,进一步巩固了其市场地位。

FUJIKURA公司的发展小趣事

2001年,惠普公司与康柏公司宣布合并,DEC作为康柏的一部分也随之并入惠普。这次合并进一步扩大了DEC的业务范围和市场影响力。在合并后,DEC的计算机产品和技术被整合到惠普的产品线中,同时DEC的品牌也逐渐淡出市场。然而,DEC在计算机行业中的贡献和影响力仍然被广泛认可,其技术遗产和创新精神在惠普及其他科技公司中得到了传承和发展。

Futaba Electric Co Ltd公司的发展小趣事

1957年,麻省理工学院的工程师肯尼斯·奥尔森(Kenneth Olsen)和哈伯特·安德森(Harlan Anderson)共同创立了Digital Equipment Corporation(DEC)。他们最初的目标是开发和生产创新的数字计算设备。凭借他们在数字技术领域的专业知识和独特视角,DEC推出了首批数字实验室和数字系统组件,这些产品在市场上取得了初步的成功,为DEC的发展奠定了坚实的基础。

问答坊 | AI 解惑

Windows CE驱动程序开发.pdf

Windows CE驱动程序开发.pdf…

查看全部问答>

S3C2410管脚复用超级基础问题

新手提问,请勿取笑,呵呵。 S3C2410在管脚复用的时候有这样一段代码: //set GPG1 as EINT9 for CS8900A value = INREG32(&pOalPortRegs->GPGCON); OUTREG32(&pOalPortRegs->GPGCON,(value & ~(3…

查看全部问答>

有个产品使用了一段时间后无法启动了,帮分析分析

产品最初正常工作,内核和应用程序都好的。过了一段时间后启动异常。 步骤是开机Bootloader启动,启动时加载了LOGO界面填充了液晶的显示缓冲区,后来就停在这里了。 我可以按照原来的方式烧内核,更换了画面也可以显示。 重烧了BOOTLOADER后也没 ...…

查看全部问答>

在应用程序里如何查询某个USB连在哪一个USB controller上

在具有多个USB controller和多个USB设备的情况下, 如何查询这些USB设备连接在哪个USB controller上。 设备管理器中,如果选择“依连接排序设备”,就可以看到所 有设备的Device Tree,VC里有什么API或者什么方法可以获得 类似的信息吗? 请高 ...…

查看全部问答>

昨天收到开发板,今天做了第一块STM32的板子

看看有没有问题,第一次玩STM32,没有什么经验,硬件是按照st-link制作的,做了一些修改(st-link本来也是一块开发板)。准备自己做JTAG下载工具或者调试工具,呵呵,如果搞的定的话。PCB还没铺地,其他都OK了。发现一个错误,应该BOOT1接地,BO ...…

查看全部问答>

μC/OS-II实时性能测试指标

μC/OS-II实时性能测试指标   衡量嵌入式实时操作系统的好坏一般主要参考以下主要性能指标参数: 任务切换时间、中断响应时间、任务响应时间、任务创建/删除时间、交替信号量时间、取得/释放信号量时间、交替消息队列传输时间等。本文仅对前2个 ...…

查看全部问答>

51单片机实践群179146897

欢迎51单片机初学者加入…

查看全部问答>

lpc2366电源电压过高

最近调试LPC2366发现,该芯片再电源电压为3.5V时,可以下载程序但是不能正常工作;…

查看全部问答>

ispLEVER 软件问题,菜鸟求救

我写的一个程序,是Abel编写的,编译没用任何错误,怎么没用生成熔丝图文件啊。我用的是GAL16V8D…

查看全部问答>