搜索
bottom↓
回复: 44

单片机什么时候会有中文的文字编程啊?

[复制链接]

出0入0汤圆

发表于 2012-5-3 13:10:47 | 显示全部楼层 |阅读模式
单片机什么时候会有中文的文字编程啊?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2012-5-3 13:36:16 | 显示全部楼层
没有意义的东西 为什么总有人在幻想?我要你输入“如果”和IF 你更愿意输入哪一个?   我要你输入DJNZ R4,XXX 和 “减R4 跳转XXX”你愿意输入哪一个?用中文文字编程就是自找麻烦,我建议你去学易语言吧  中文编程的

出0入0汤圆

发表于 2012-5-3 13:37:53 | 显示全部楼层
最好别有

出0入0汤圆

发表于 2012-5-3 13:43:00 | 显示全部楼层
去学易语言吧,论坛上发项目都有50块钱一个项目的

出0入0汤圆

发表于 2012-5-3 13:46:56 | 显示全部楼层
无意义

出0入42汤圆

发表于 2012-5-3 14:49:57 | 显示全部楼层
把他们全部define/typedef了,伪造成中文的

出0入0汤圆

发表于 2012-5-3 15:04:31 | 显示全部楼层
易语言就是中文的文字编程

出0入0汤圆

发表于 2012-5-3 15:11:09 | 显示全部楼层
虽然我英文也是一般般,但是我还是喜欢英文编程,更加简单,习惯,就那么几个关键字用中文反而麻烦~~

出0入8汤圆

发表于 2012-5-3 15:45:34 | 显示全部楼层
不是中文的问题 而是输入法的问题。

出0入0汤圆

发表于 2012-5-3 15:54:27 | 显示全部楼层
因为拿诺贝尔奖的人没几个是懂中文的

出0入0汤圆

发表于 2012-5-3 16:06:07 来自手机 | 显示全部楼层
这问题问得可爱啊,你可以先自己写个编译器,让计算机认识“如果”,“否则”等

出0入0汤圆

发表于 2012-5-3 17:59:05 | 显示全部楼层
我也有和楼主类似的想法。
就像可以自编程速带显示屏的PLC

出0入0汤圆

 楼主| 发表于 2012-5-3 20:14:33 | 显示全部楼层
中文的容易看懂,只要学好语文就可以编程岂不更好。

出0入0汤圆

发表于 2012-5-3 20:49:12 | 显示全部楼层
有,还真有,一般人他不知道,(*^__^*) 嘻嘻……

出0入0汤圆

发表于 2012-5-3 20:54:01 | 显示全部楼层
用处不大吧????
关键字就那么几个字,没必要
如果变量和函数名称支持中文倒是不错的!

出0入0汤圆

发表于 2012-5-3 20:59:50 | 显示全部楼层
同意二楼

出0入0汤圆

发表于 2012-5-3 21:02:08 | 显示全部楼层
一共才26个英文字母,有多难么?

出0入0汤圆

发表于 2012-5-3 21:03:51 | 显示全部楼层
最佳创意奖

出0入4汤圆

发表于 2012-5-3 21:14:12 | 显示全部楼层
中文编程的唯一一点好处就是变量、常量、函数名名用中文容易看懂。
但是缺点多多,最大的麻烦就是输入法的切换。
其实MCU编程和易语言可比性不大,易语言的优势在于有很多的库可以直接调用,可MCU要的是效率,低资源占用,大多情况下是裸奔的连OS都不用何况去把那些大多数无用的的库函数集成进去。

出0入0汤圆

发表于 2012-5-4 09:02:49 | 显示全部楼层
编程语言倒是有一两种中文的,有个易语言还有个习语言

出0入0汤圆

发表于 2012-5-4 09:05:11 | 显示全部楼层
我在期待楼主能把这个想法变成现实。。。。。。。

出0入0汤圆

发表于 2012-5-4 09:05:28 | 显示全部楼层
我在期待楼主能把这个想法变成现实。。。。。。。

出0入0汤圆

 楼主| 发表于 2012-5-4 11:39:20 | 显示全部楼层
切换输入发我不觉得麻烦,多按一个按键而已

出0入0汤圆

 楼主| 发表于 2012-5-4 11:41:25 | 显示全部楼层
在此谢谢21楼的支持,还感谢18楼颁发的创意奖,我还想要奖品。

出0入0汤圆

发表于 2012-5-4 12:06:58 | 显示全部楼层
还是学习英语吧,本人的习惯,平时看资料,能看明原版英文的,就不会看翻译过来的中文.一个是可以提高自已的能力,另一个是,英文的资料才是最准确的.

出0入0汤圆

发表于 2012-5-4 12:15:47 | 显示全部楼层
wszyjsw2 发表于 2012-5-3 13:36
没有意义的东西 为什么总有人在幻想?我要你输入“如果”和IF 你更愿意输入哪一个?   我要你输入DJNZ R4, ...

你这么想因为你已经进入了英文编程语言的思维定势,如果使用中文作为编程语言,编程的思想就完全不一样了。比如说,有可能一个中文字代表一系列操作,或者说用于更高级的语言,一个程序一句话就完了(猜测)。
以前看过有个网页介绍很多特殊的编程语言的,有中文的,跟英文的编程方式完全不一样。并不是 if else for while 什么的

出0入0汤圆

发表于 2012-5-4 12:17:19 | 显示全部楼层
易语言~~~

出0入0汤圆

发表于 2012-5-4 12:20:47 | 显示全部楼层
会编程序以后就不会想用中文的了。

出0入0汤圆

发表于 2012-5-4 12:21:53 | 显示全部楼层
成长的路上 发表于 2012-5-3 20:14
中文的容易看懂,只要学好语文就可以编程岂不更好。


你在打瞌睡?编程是逻辑能力。难道还要分析主谓宾。

出0入0汤圆

发表于 2012-5-4 12:53:27 | 显示全部楼层
usingavr 发表于 2012-5-4 12:15
你这么想因为你已经进入了英文编程语言的思维定势,如果使用中文作为编程语言,编程的思想就完全不一样了 ...

不妨  介绍一下你看见的中文编程

出0入0汤圆

发表于 2012-5-4 13:08:16 | 显示全部楼层
拿现在我们所用的ASDFG方式的电脑键盘来说
当年就是为了避免把机械式英文打字机打坏了才搞得这么一套标准,就是让你打不了太快
如今你就是有本事一秒输入100个字符,键盘也坏不了。
可是键盘还是这样的排布,就连手机上的虚拟键盘就是这样子的.

出0入0汤圆

发表于 2012-5-4 13:23:05 | 显示全部楼层
wszyjsw2 发表于 2012-5-4 12:53
不妨  介绍一下你看见的中文编程

找了一下,找到这个
----------------------------------------------
PerlYuYan

PerlYuYan语言是一个能令人使用中文文言文开发程式 Perl 程式的 Perl 模块,由唐凤于2002年一月发表。它是中文编程语言的尝试。作者利用中文的特质,将许多指令改成以一个中国汉字来表示,因而造成了文言语法的感觉。

看看下面的这段代码,相当的文言文啊。有兴趣可以去CPAN上下载回来玩玩。

#!/usr/local/bin/perl

use Lingua::Sinica::PerlYuYan;

用警兮用嚴。

印道
一至一
哉兮

印編曰雜申雜申矣
  又纖曰龍鼠矣
    又曰一矣

亂曰
國無人莫我知兮    又何懷乎故都
既莫足與為美政兮  吾將從彭咸之所居
还有下面这个五言。

# The Sieve of Eratosthenes - 埃拉托斯芬篩法
use Lingua::Sinica::PerlYuYan;

  用籌兮用嚴。井涸兮無礙
。印曰最高矣  又道數然哉。
。截起吾純風  賦小入大合。
。習予吾陣地  並二至純風。
。當起段賦取  加陣地合始。
。陣地賦篩始  繫繫此雜段。
。終陣地兮印  正道次標哉。
。輸空接段點  列終註泰來。

还有很多其他的BT语言,参见
http://coolshell.cn/articles/4458.html
http://esolangs.org/wiki/Main_Page

出0入0汤圆

发表于 2012-5-4 13:26:39 | 显示全部楼层
因为计算机是老外发明的.

出0入0汤圆

发表于 2012-5-4 13:36:36 | 显示全部楼层
usingavr 发表于 2012-5-4 13:23
找了一下,找到这个
----------------------------------------------
PerlYuYan

繁体字 又是 诗词形式的 不便于他人理解

出0入0汤圆

发表于 2012-5-4 14:04:27 | 显示全部楼层
最好能够发明一套语言,比如要控制流水灯:

XX单片机:
你的工作是这样:首先点亮第一个灯,亮1秒钟之后熄灭,然后亮第二个灯,亮3秒钟后熄灭
重复这个过程,直到你跑不动为止

出0入0汤圆

 楼主| 发表于 2012-5-4 14:50:33 | 显示全部楼层
lengshuicha 发表于 2012-5-4 14:04
最好能够发明一套语言,比如要控制流水灯:

XX单片机:

循环、再循环、到死循环

出0入0汤圆

 楼主| 发表于 2012-5-4 14:53:08 | 显示全部楼层
看来我以后要学机器语言了。

出0入0汤圆

发表于 2012-5-4 15:20:36 | 显示全部楼层
应该考虑语音编程。
坐电脑前说话就可以了,不用打字。

出0入0汤圆

发表于 2012-5-4 15:32:58 | 显示全部楼层
adcr 发表于 2012-5-4 13:08
拿现在我们所用的ASDFG方式的电脑键盘来说
当年就是为了避免把机械式英文打字机打坏了才搞得这么一套标准, ...

歪一下楼:请搜一下Dvorak, Colemak等关键字
这是另外的一些键盘布局
Dvorak布局windows有内置支持,可以体验一下

出0入0汤圆

发表于 2012-5-4 15:33:28 | 显示全部楼层
adcr 发表于 2012-5-4 13:08
拿现在我们所用的ASDFG方式的电脑键盘来说
当年就是为了避免把机械式英文打字机打坏了才搞得这么一套标准, ...

汗。。。

那个排列恰恰就是为了打字能快些才那样排列的。

排列的依据也是根据英文单词中字母使用频度来考虑的。

出0入162汤圆

发表于 2012-5-4 15:38:27 | 显示全部楼层
huayuliang 发表于 2012-5-4 15:33
汗。。。

那个排列恰恰就是为了打字能快些才那样排列的。

不是为了快,而是为了减慢速度。

打字机当初发明的时候,键盘是按ABCD顺序排的
结果连续敲击相邻键时经常卡住,所以就把按键位置打散

出0入0汤圆

发表于 2012-5-4 15:39:06 | 显示全部楼层
huayuliang 发表于 2012-5-4 15:33
汗。。。

那个排列恰恰就是为了打字能快些才那样排列的。

在几种说法中我觉得比较靠谱的是
为了“在不搞坏打字机的前提下”尽量提高打字速度

出0入0汤圆

发表于 2012-5-6 13:33:51 | 显示全部楼层
我设计了一个中文编程的语言,编译器基本完工了,下面是一段示例代码。如果真有人对这个感兴趣,我可以再详细介绍下。


**************************************************************************
电子琴程序


//注意,这个程序运行后没有界面,播放一遍音乐之后自动结束
ici cpu = ici cputype pc80x86 ici Wind 开始,

//加载windows内核类
import syslib.windows.kernel32,
//加载MIDI接口类
import syslib.windows_pack.midi,

link vdata code {} = ici Cloud code,

//=======================================
public void 开始()
{
        //打开MIDI设备并设置当前音色为 "风铃" 10为风铃
        midi open[],
        midi set_timbre[ 0, 10 ],
       
        //用当前音色播放一遍曲子,曲子一共有64个音符
        反复执行 初始 i(N8) = 0,每次 i + 1,直到 i == 65,
                //解码器
                节拍(N16) = 乐曲 i >> 4,
                节拍 * 200,
                音阶(N8) = 62 + 音符表(乐曲 i & 0x0f),
               
                //播放器
                midi play[ 0, 音阶, 90 ],
                kernel32 Sleep[ 节拍 ],
                midi stop[ 0, 音阶 ],
                ...
       
        //播放完成,退出程序
        kernel32 ExitProcess[ 0 ],
}
//各个音的频率, 3-4 和 7-1 之间差一个半音,其他的相差一个全音
音符表([code N8*?]) =
[
//        1, 2, 3, 4, 5, 6, 7,    1, 2, 3, 4, 5, 6, 7,    1, 2, 3, 4, 5, 6, 7
        0, 2, 4, 5, 7, 9,11,   12,14,16,17,19,21,23,   24,26,28,29,31,33,35
],
//《敖包相会》的曲子,每个字节的高位表示时值;低位表示音阶,0~f依次对应 67-1234567-1234567
乐曲([code N8*?]) =
[
        0x20,0x48,0x2a,0x2a,0x18,0x17,0x45,0x25,0x47,0x28,0x37,0x18,0x4a,0x88,
        0x20,0x48,0x2a,0x2a,0x18,0x17,0x45,0x25,0x47,0x28,0x27,0x28,0x2a,0x18,0x17,0x85,
        0x25,0x17,0x28,0x2a,0x25,0x24,0x23,0x20,0x44,0x24,0x23,0x34,0x15,0x28,0x27,0x85,
        0x25,0x17,0x28,0x18,0x1a,0x25,0x24,0x23,0x20,0x34,0x17,0x25,0x25,0x23,0x13,0x10,0x24,0x23,0x80
],


******************************************************************
这是AVR流水灯的测试程序



ACI cpu = ACI cputype mega8 ACI Wind 启动,

导入 组件库 avr mega8 chip,
link 组件 芯片 {} = chip,

public void 启动()
{
        芯片 DDRB = 0xff,
        芯片 DDRD = 0xff,
       
        反复执行
                芯片 PORTB = 0xff,
                芯片 PORTD = 0xff,
                反复执行 8 次,
                        芯片 PORTB >> 1,
                        延时100MS[],
                        ...
                反复执行 8 次,
                        芯片 PORTD >> 1,
                        延时100MS[],
                        ...
                ...
}
void 延时100MS()
{
        反复执行 100 次,
                反复执行 100 次,
                ...
        ...
}


********************************************************************
这是一个秒表程序



ACI cpu = ACI cputype mega16 ACI Wind 引擎 启动,

导入 组件库 avr mega16 chip,
引擎 显示屏 = 显示屏,
引擎 键盘 = 键盘,
键盘 芯片 = chip,
显示屏 芯片 = chip,

//==========================================
组件 引擎
{
        public link 组件 显示屏 {}
        public link 组件 键盘 {}
       
        public void 启动()
        {
                键盘 初始化[],
                显示屏 初始化[],
                显示屏 清零[],
               
                开始键之前状态(N1) = 1,
                复位键之前状态(N1) = 1,
                暂停(T) = true,
               
                反复执行
                        //判断是否刚刚按下清零键
                        如果 键盘 复位键 == 0 && 复位键之前状态 == 1,
                                显示屏 清零[],
                                暂停 = true.
                       
                        //判断是否刚刚按下开始/暂停键
                        如果 键盘 开始键 == 0 && 开始键之前状态 == 1, !暂停.
                       
                        开始键之前状态 = 键盘 开始键,
                        复位键之前状态 = 键盘 复位键,
                       
                        如果 !暂停, 显示屏 时间累加[].
                        显示屏 显示[],
                        ...
        }
}
//==========================================
组件 键盘
{
        public link 组件 芯片 {}
       
        public void 初始化()
        {
                开始键_DDR = 0,
                复位键_DDR = 0,
        }
       
        public link 开始键(N1) = 芯片 PIND 7,
        public link 开始键_DDR(N1) = 芯片 DDRD 7,
       
        public link 复位键(N1) = 芯片 PIND 6,
        public link 复位键_DDR(N1) = 芯片 DDRD 6,
}
//==========================================
组件 显示屏
{
        public link 组件 芯片 {}
       
        link 虚拟类型 code {} = ACI Cloud code,
       
        public void 初始化()
        {
                port_dir = 0xff,
                select_dir = 0xff,
        }
       
        public void 清零()
        {
                data0 = 0,
                data1 = 0,
                data2 = 0,
                data3 = 0,
        }
        //改变显示数据,加1,满10进1
        public void 时间累加()
        {
                data0 + 1,
                如果 data0 != 10, 返回.
                data0 = 0,
                data1 + 1,
                如果 data1 != 10, 返回.
                data1 = 0,
                data2 + 1,
                如果 data2 != 10, 返回.
                data2 = 0,
                data3 + 1,
                如果 data3 != 10, 返回.
                data3 = 0,
        }
        public void 显示()
        {
                //显示小数位的数据
                select = 0b0000_0000,
                port = seg data0,
                select = 0b0000_1000,
                延时5ms[],
                //显示个位数据,并消隐十位和百位的零
                select = 0b0000_0000,
                port = seg data1 & 0b0111_1111,
                select = 0b0000_0100,
                延时5ms[],
                如果 data2 == 0 && data3 == 0,
                        延时5ms[],
                        延时5ms[],
                        select = 0b0000_0000,
                        返回.
               
                //显示十位数据,并消隐百位的零
                select = 0b0000_0000,
                port = seg data2,
                select = 0b0000_0010,
                延时5ms[],
                如果 data3 == 0,
                        延时5ms[],
                        select = 0b0000_0000,
                        返回.
               
                //显示百位数据
                select = 0b0000_0000,
                port = seg data3,
                select = 0b0000_0001,
                延时5ms[],
                select = 0b0000_0000,
        }
        void 延时5ms()
        {
                反复执行 10 次,
                        反复执行 100 次,
                        ...
                ...
        }
       
        //全局变量定义
        data0(N8),
        data1(N8),
        data2(N8),
        data3(N8),
       
        //数码管字形表
        seg([code N8*10]) =
        [
                0b1100_0000, 0b1111_1001, 0b1010_0100, 0b1011_0000, 0b1001_1001,//0,1,2,3,4
                0b1001_0010, 0b1000_0010, 0b1111_1000, 0b1000_0000, 0b1001_0000 //5,6,7,8,9
        ],
        //数据端口
        link port(N8) = 芯片 PORTA,
        link port_dir(N8) = 芯片 DDRA,
       
        link select(N8) = 芯片 PORTB,
        link select_dir(N8) = 芯片 DDRB,
}






出0入0汤圆

发表于 2012-5-6 13:39:02 | 显示全部楼层
如果能通过国家自然科学基金项目支持,有人做

出0入0汤圆

发表于 2012-5-6 13:44:41 | 显示全部楼层
非编码式语言遇上计算机的悲哀
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-2 21:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表