目的是通过串口输入100以内任意两个数,进行加法运算后通过串口输出结果。我遇到两个问题:第一,如何输入两位数;第二,加法运算的时候是按照ASCII码来计算的,比如我输入1和2,ASCII码分别是49和50,计算结果是99,输出的时候也按照ASCII码输出看到的结果就变成了c,求解。希望能提供下程序代码。特别声明下,我想做2个2位数的加法运算,但是SBUF变量是八位的,比如我输第一个两位数33,通过助手传入单片机后,单片机误认为是传了两次1位的数字,并以ASCII码的形式相加。很是苦恼。
单片机C语言中碰到的问题?
都是循环延时函数,其中都包含了如下两句;for(m=20;m>0;m--) 、 for(n=20;n>0;n--);但是不同的是语义不同(这里就是有无“;”分号的不同);而 是镶套循环,那么其循环次数 = m * n;而 则是两个独立的循环,其循环次数 = m + n;...
C语言单片机程序 初学大家帮忙看看错在哪里了 #include <reg51.h...
程序百分百没问题,可能是编译的有问题,你 用的是keil编译的吗? 建议你多重新编译一下, 也有可能是你烧写程序的时候 数据传输的过程中出错了,校验出错 一般是传输过程中某个或者某些bit或者byte出错 建议你重新编译 重新下载烧写试试, 单片机这东西就是经常出些小问题,有时候我们买的开发板或者有...
如何用51单片机做计算器(要求用C语言编程) 由于是新手所以没积分 对 ...
我的实验板上的键不够,所以只能做加法运算,而且两数之和不能大于十。嘿嘿,没错这个给某种人用的。\/\/*** myh.h ***有两个文件,一个是头文件myh.h一个是js.c include <reg52.h> typedef unsigned char uchar;typedef unsigned int uint;typedef bit BOOL;\/\/ sbit rs=P2^6;sbit rw=...
单片机编程(C语言)问题
你可以尝试将num从0累加到255再看看什么情况,include <stdio.h>#include <string.h>void main(){unsigned char num=0;int index=0;for(index=0;index<300;index++){printf("%3d ",num);if(num % 15==0){putchar('\\n');}num++;}} ...
用C语言编写的单片机程序为啥不能再满足条件时退出,程序如下
因为单片机的指令计数器PC是一直随时钟自增的,当执行到最后一条指令后,就会溢出,清零,从头开始执行,所以你的程序相当于是一个循环,无法保持最后的状态。除非你在最后加一个while(1);
51单片机按键式计数器 程序一直显示有错,在void(jj),请帮忙解答一下...
char j=0;\/\/没空格 void jj(void) \/\/没参数就写个void 你这个代码有个很大的缺陷就是按键检测放在主循环里调用,你稍微按一下,程序都可以执行了几遍按键检测了,所以你无法可以正常按一次显示一次计数值,避免这个问题就是加一个标志位,按下后标志位置1,松开按键标志位清0,标志位为0时才开...
求大神帮忙用C语言解决一下,不胜感激,单片机
程序:include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code dis_code[] ={ 0xF9, \/\/"1" 0xB0, \/\/"3" 0x92, \/\/"5" 0xF8, \/\/"7" 0xA4, \/\/"2" 0x99, \/\/"4" 0x82, \/\/"6" 0x80, \/\/...
关于C语言编写8051程序的问题
第一,LZ 的主函数没有循环语句,虽然编译器 编译的时候 会帮你加上去,可是这不是个好习惯;第二,51单片机 只能识别低电平,无法识别高电平,所以,来低的可以识别,来高的,就需要硬件支持了。第三,真要写程序的话,LZ的要求描述,与程序都过于简单,无法设计合理程序。
我在keil软件 用c语言写51单片机的时候发现?
其实,C语音的变量并不直接定义到寄存器,而是定义到内存单元,寄存器算是个中介,数据从内存取出临时存放到寄存器,然后将当时用不上的数据又从寄存器回写到内存,这样就解决了寄存器共享问题了;另外,你在调试时,再打开个反汇编窗口,跟踪C语音程序的汇编代码,就更清楚了;...
C语言 单片机问题
void delay(unsigned int i);void main (){ unsigned int m;\/\/定义变量 unsigned char led1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; \/\/定义数码段值 unsigned char led2[]={0x01,0x02,0x04,0x08,0x10,0x20}; \/\/定义数码管位值 while(1){ for(m=0...