瑞多多 发表于 2020-2-10 18:56:41

C编程在Keil上的应用

在keil平台上编写一个C51程序:
从计算机键盘输入一串数字,例如23,回车后,把这串数字对应的单片机内存读出来显示到电脑屏幕上
如何用scanf和printf语句编写

Sun正气 发表于 2020-2-10 19:12:05

51单片机?

瑞多多 发表于 2020-2-10 20:00:44

Sun正气 发表于 2020-2-10 19:12
51单片机?

对的,是51单片机

Sun正气 发表于 2020-2-10 21:55:30

瑞多多 发表于 2020-2-10 20:00
对的,是51单片机

我只会一点静态动态数码管,做不到你说的那种

瑞多多 发表于 2020-2-10 23:11:59

Sun正气 发表于 2020-2-10 21:55
我只会一点静态动态数码管,做不到你说的那种

假如我用键盘输入一个十进制数20,然后用指针指向20代表的内存地址,就是把输入的这个数转化成地址,这样可以用纯C语言实现吗?
#include <stdio>
int main()
{
   int a;
   int *pointer_1;

   scanf("%d", &a);
   pointer_1 = &a;
   printf("内容为%d\n", *pointer_1);
   
   return 0;
}
但是我这样的结果是输出和输入是一样的,学了半天也学不明白
还望大神有时间赐教,我这个刚学C的小白太不容易了{:10_266:}

Sun正气 发表于 2020-2-10 23:22:09

#include <stdio.h>
int main()
{
   int a;
   int *pointer_1;
   pointer_1 = &a;
   scanf("%d", &a);
   printf("%p\n",&a);// 输出的是a变量的地址
   printf("%p\n",pointer_1);//通过指针变量a输出a变量的地址
   printf("%p\n",&pointer_1);//指针变量pointer_1本身自己的地址
   printf("内容为%d\n", *pointer_1);
   
   return 0;
}
   
试试这个

Sun正气 发表于 2020-2-10 23:25:35

Sun正气 发表于 2020-2-10 23:22
试试这个

我运行输入20得到的是000000000062FE1C
000000000062FE1C
000000000062FE10
内容为20

木头-1 发表于 2020-2-10 23:46:26

用单片机试试,串口通信

SHRS23 发表于 2020-2-11 00:49:57

单片机里用 scanf 和 printf 一般都是利用串口,电脑上配合超级终端来使用
看看这个可能对你有帮助
https://blog.csdn.net/lin111000713/article/details/38390225

我在单片机程序里只用过printf, 对于小ROM的51单片机,printf这种“庞大”的代码十分不友好。。

1905900117 发表于 2020-2-13 12:44:16

这个是用到串口可以解决的,写一个串口发送程序到单片机上,用串口助手或者STC自带的串口调试助手就可以
页: [1]
查看完整版本: C编程在Keil上的应用