大家知道,大家用MCU写程序的时候,只有移位的语句,没有循环移位的语句。那么如何实现循环移位呢,详见下述: 循环移位区别于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程[详细]
80C51上的C语言编程 C51的特色:(1)学习过C语言的同学在对单片机有了基本了解之后,就可以开始试着写一两个基于单片机的C语言的程序了。C51语言继承了ANSI C 的绝大部分的特性,基本的语法相同,同学们上手会比较快。但是,由于C51语言是对硬件进行控制的编程语言,其本身又在硬件结构上有所扩展以增强C语言[详细]
关于程序的执行,以前想的不多,没有意识到一个程序在运行时,从哪里读指令,数据又写在哪里。从单片机上知道,在上电的那一刻,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的 main之前,还有一系列其他的的初始化要做,如堆栈的初[详细]
已知51单片机,fosc=6MHz,试编写程序,利用T0和P1.7产生如下图所示的连续矩形脉冲。参考程序:org 0000hljmp mainorg 000bhljmp int_t0org 0030hmain: mov tmod,#00000010bmov ie,#10000010bmov th0,#0echmov tl0,#4chclr p1.7setb tr0sjmp $int_t0: jb p1.7,loopmov th0,#4chsetb p1.7reti[详细]
单片机中一个程序的运行过程分为取指令,分析指令和执行指令几个步骤。取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。计算机执行程序的过程实际[详细]
2位16进制转10进制,用除以10求商跟余数的方法,即可。4位16进制数呢?DIV指令只可以对2位16进制数进行除法运算啊,求高手解答。例如把TH1 TL1的数值转成十进制, 分别存入R4 R3 R2 R1 R0。;------------------------------------------------------------------下面把这段转换程序,写成子程序的结构,便于网[详细]
程序 :/*** 读IO, 用按钮控制点灯.*/#include #include // 10个LEDsbit P10 = P1^0;sbit P11 = P1^1;sbit P12 = P1^2;sbit P13 = P1^3;sbit P14 = P1^4;sbit P15 = P1^5;sbit P16 = P1^6;sbit P17 = P1^7;// 定义开关. 低电平有效.sbit K1 = P3^2;sbit K2 = P3^5;void main( void ){while([详细]
C51编程经验三则在单片机的开发应用中,已逐渐开始引入高级语言,C语言就是其中的一种。用惯了汇编的人,总觉得高级语言“可控性”不好,不如汇编那样随心所欲。以下是笔者在C51编程中的几点经验,希望对初学C51者有所帮助。一、C51热启动代码的编制工业控制计算机,往往设有看门狗电路,看[详细]
单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是:将指令寄存器中的指令操作码取出[详细]
1. 动手编码之前,你需要对要编码实现的解决方案有一个正式的或粗略的设计。永远不要在没有任何设计的前提下就开始编码,除非所编代码不重要。2. 优秀的代码文档跟编程语言知识一样重要。在代码源文件中,为每个主要的代码段添加注释,解释代码的基本逻辑。最好注明程序的构建和修改日期,以及修改的原[详细]
/* 名称:用 ADC0808 控制 PWM 输出说明:使用数模转换芯片 ADC0808,通过调节可变电阻 RV1 来调节脉冲宽度,运行程序时,通过虚拟示波器观察占空比的变化。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit CLK=P2^4; [详细]
最近做毕业设计,需要用按键来触发外部中断。实验的时候是正常的,但是换了个核心板以及用上自己做的PCB电路板后,出现了一些问题。问题如下:要求:将连接按键的IO口配置为上拉输入,按键一端接IO口,一端接地,即当按键按下后,该IO口会产生一个下降沿,触发下降沿中断。问题:将相应的IO口配置好后,测了引[详细]
按一下按键灯就亮,延时 10s 后自动灭。在亮灯期间再按一下键,灯立即就灭。用定时器及中断实现。题目链接:http://zhidao.baidu.com/question/1302357964153805259.html提问者采纳 2013-12-09 13:47LED EQU P3.3KEY EQU P3.7ORG 0000HLJMP STARTORG 000BHLJMP T0_INTORG 0030H;------------------------------[详细]
/* 名称:单片机与 PC 通信说明:单片机可接收 PC 发送的数字字符,按下单片机的K1 键后,单片机可向 PC 发送字符串。在 Proteus 环境下完成本 实 验 时 , 需 要 安 装 Virtual Serial Port Driver 和[详细]
/* 名称:ADC0809 数模转换与显示说明:ADC0809 采样通道 3 输入的模拟量,转换后的结果显示在数码管上。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//各数字的数码管段码(共阴)uchar code DSY_CODE[详细]
1、EQU 指令用于将一个数值或寄存器名赋给一个指定的符号名。格式: 符号名 EQU 表达式符号名 EQU 寄存器名表达式必须是一个简单再定位表达式。用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者直接当做一个立即数使用。比如:s equ bx+simov cx,[s]那么上面两句代码相当于如下指令:mov[详细]
在单片机中,常用到数字与字符的方法,在C中都是使用itoa函数,C51也有这个函数,但是,8051的RAM是很有限的,所以尽量避免使用int型,常用的是unsigned char。当需要转换成字符串时用itoa的话,还是有点浪费。还是自力更生,自己写了一个,代码如下:typedef unsigned char BYTE;BYTE * ByteToStr(BYTE n){BYT[详细]
关于程序的执行,以前想的不多,没有意识到一个程序在运行时,从哪里读指令,数据又写在哪里。最近在看CSAPP时这个念头经常在脑袋中晃荡。从单片机上知道,在上电的那一刻,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的 main之前[详细]
最近参与了一个项目,需要用嵌入式汇编写测试程序。汇编程序写过,C程序也写过,但是将它们混合起来写还是第一次,完全没有概念。只能上网找资料,自己慢慢摸索。自己一直用Windows操作系统,但是我们的项目是在Linux系统上,这两者的汇编语言系统是不同的,windows一直是Intel汇编,而Linux是At&T汇编。为[详细]
在单片机应用系统的数据处理过程中,经常会遇到小数的运算问题,如求解BCD的增量算式、线性化处理等。因此,需要用二进制数来表示小数。表示小数的方法一般有两种,定点数和浮点数。定点数结构简单,与整数的运算过程相同,运算速度快。但随着所表示数的范围的扩大,其位数成倍增加,给运算和存储带来不便,而且[详细]
扫码关注我们
0755-82591179
传真:0755-82591176
邮箱:vicky@yingtexin.net
地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08
Copyright © 2014-2025 颖特新科技有限公司 All Rights Reserved. 粤ICP备14043402号-4