设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 4094|回复: 9
收起左侧

用STC单片机制作万能的或非门逻辑处理器-可处理所有的门电路组合复杂运算-全球首发!

[复制链接]
发表于 2017-6-14 17:50:08 | 显示全部楼层 |阅读模式

        用STC单片机制作万能的或非门逻辑处理器-可处理所有的门电路组合复杂运算-全球首发!
        可将世界上所有的数字电路转换成或非门电路线路连接组合使用该模拟器完成。
        是目前世界上制作原理最简单的,功能最强大的CPU处理器。
        只要世界上任意一种编程语言支持数组、循环、判断、计算功能即可100%成功移植。
        世界上所有的数字电路都是由大量的逻辑门 包括与门、或门、非门3种基本逻辑门组成。
        世界上所有的复杂运算功能都是通过大量的逻辑门组合运算自动完成。
        可修改为更高位的地址宽度,但需要容量更大容量的存储器。
        使用纯与非门、或非门电路即可组成与门、或门、非门。
        所有CPU内部逻辑门组合数据转换成或非门组合数据即可移植到该模拟器里。
        使用或非门组成的数字电路对每一根接线进行编号并且写入ROM即可完成编程功能。
        8051指令集单片机型号任意直接编译即可,其余指令集可能需要修改头文件以及程序源码或者根据该CPU指令执行过进行移植与编写,支持世界上任何平台指令集的CPU模拟,只要容量足够就可以准确无误的模拟。


        与门:全1出1,有0出0  灯座上有个开关,插线板上有另一个开关,两个开关必须打开灯泡即可点亮,否则无法点亮。
        或门:有1出1,全0出0  两个并联的开关打开其中一个后灯泡就能点亮,两个开关全部关闭后则无法点亮。
        非门:进1出0 进0出1   灯泡并联开关,开关打开后由于电源短路的电阻小于灯泡电阻,灯泡熄灭,否则就能点亮。
        使用以上三种基本逻辑门组合即可实现世界上各种复杂的运算。

        异或门:相异出1,相同出0,全0出0,全1出0,否则出1。
        同或门:异或门输出串联非门,相同出1,相异出0,全0出1,全1出1,否则出0。
        与非门:与门输出串联非门,全1出0 有0出1。
        或非门:或门输出串联非门,有1出0 全0出1。

        世界上所有的数据的计算、存储、传输、等在数纳秒的时间内自动完成的事件都是由无数个基本逻辑门组合而实现。
        逻辑电路分为两大类:分别是组合逻辑电路和时序逻辑电路。
        组合逻辑电路不包含记忆存储功能,具有固定的真值表。
        例如:全加器、全减器、乘法器、除法器、译码器、数据选择器、数据分配器、数字大小比较器、BCD代码转换器等。
        时序逻辑电路是一种具有记忆储存功能的逻辑电路。
        例如:计数器、锁存器、触发器、寄存器、存储器等。

        P0~P7口直接与RAM地址0~7(字节)连接。
        ROM共768字节,RAM共256位(32字节)。
        每条指令共3字节(共256条指令)。
        指令格式:输入地址1 输出地址 输入地址2。
        指令执行过程:
        从输入地址1和输入地址2,送入RAM的地址线,根据地址找到RAM位数据。
        经过或非比较后将结果写入输出地址,结果1位位值经过该地址写回并覆盖RAM。
                触发程序计数器加3,继续根据以上方法执行下面的指令。
                程序计数器大于等于768或遇到0xFF指令则清零,从头执行指令。
                可改成16位或更高位宽度以支持更大规模或非门运算。
                        1条指令的字节数=位数/8*3
                        需要的RAM字节数=2^位数/8
                        需要的ROM字节数=1条指令的字节数*2^位数
                        8位需要32B的RAM和786B的ROM。
                        16位需要8KB的RAM和384KB的ROM。
                        24位需要2MB的RAM和144MB的ROM。
                        32位需要512MB的RAM和48GB的ROM。
                        48位需要32TB的RAM和4.5PB的ROM。

                        以此类推。
                以32位为例,每秒循环执行1次所有指令则为1Hz的指令循环周期。
                每秒执行1条指令的时间为指令周期,指令周期约为4.3Ghz,循环执行所有指令的周期为1Hz。
                若循环周期需要达到1Mhz,指令周期判断器,RAM和ROM的响应频率必须达到4.3Phz左右即可。

                ROM门电路原理:

                非门: 0x00 0x01 0x00 0xFF 0xFF 0xFF
                0x00与0x00的值进行了或非比较,结果写入0x01 或非门的两个输入端接在一起就是非门 地址0x01的输出与0x00相反。
                非门高频振荡器:0x00 0x00 0x00 0xFF 0xFF 0xFF
                0x00与0x00的值进行了或非比较,结果放入0x00中,由于原有值与写入的值相反,即可形成高频振荡信号,具体输出频率与指令执行时间有关。
                以下所有2进1出门电路全是0x00 和0x01是输入端,0x02是输出端 。



                或非门:0x00 0x02 0x01 0xFF 0xFF 0xFF
                0x00 与0x01的值进行或非比较,结果写入0x02

                与门:0x00 0x03 0x00 0x01 0x04 0x01 0x03 0x02 0x04 0xFF 0xFF 0xFF

                0x00 的 反向值写入0x03,0x01的反向值写入0x04,0x03与0x04经过或非比较,结果写入0x02地址。
                与门是或非门输入两端各自串联两个非门,用两个或非门两端接在一起代替非门。

                或门:0x00 0x03 0x01 0x03 0x02 0x03 0xFF 0xFF 0xFF
                        0x00 与0x01 的值进行了或非比较,结果写入0x03,再与0x03和0x03的值进行比较,结果写入0x02地址。
                        或门是或非门输出端串联一个非门而组成。
                与非门:0x00 0x03 0x00 0x01 0x04 0x01 0x03 0x05 0x04 0x05 0x02 0x05 0xFF 0xFF 0xFF

                与非门是与门输出串联非门组成。
                异或门:0x00 0x03 0x00 0x01 0x04 0x01 0x03 0x05 0x04
                        0x05 0x06 0x05 0x06 0x07 0x06 0x00 0x08 0x01
                        0x08 0x09 0x08 0x09 0x0A 0x09 0x07 0x02 0x0A
                        0xFF 0xFF 0xFF


                异或门是与非门和或门并联,两个输出端再接入与门而组成。

                同或门:0x00 0x03 0x00 0x01 0x04 0x01 0x03 0x05 0x04
                        0x05 0x06 0x05 0x06 0x07 0x06 0x00 0x08 0x01
                        0x08 0x09 0x08 0x09 0x0A 0x09 0x07 0x0B 0x0A
                        0x0B 0x02 0x0B 0xFF 0xFF 0xFF

                同或门是异或门输出端串联一个非门而组成。

                以上0xFF是清零PC指针的指令,一但有指令访问该地址进行读写操作,该地址的数据不但不能被写入,而且PC指针就会清零重头执行,不会清除RAM数据。
                程序加密执行方法:
                        
                        内部运算数据可以写在任何地址,将读写数据的地址全部随机交换打乱即可,不包含主要输入输出地址以及0xFF,不影响正常的执行。


                                        比如将0x12地址变成0x34,0x34地址变成0x12,0x12与0x34进行交换,以此类推。
                                        ROM中的原有的0x12变成了0x34,0x34变成了0x12,不能直接替换否则所有0x34会变成0x12而导致程序无法执行。

                手工执行指令方法:
画1张16x16的表格并且打印,并且行列标上0~F,里面用铅笔写满0,表示RAM。
画1张ROM图纸并且标注通过PC指针找到指令的方法。
指令执行方法:
比如取到1条指令:0xAB 0xCD 0xEF
在RAM中指定0xAB坐标找到数字0
在RAM中指定0xEF坐标找到数字0
通过或非门全0出1,有1出0的判断后。
将数字1放回RAM的0xCD的坐标地址中,如果值不同则使用橡皮擦除该值并且重新写入新值。
所有指令循环执行多遍后,这张表示RAM的纸会被橡皮擦除无数次。
在特定地址的值是输入或输出值,改变这些值,指令执行完毕后,输出的值也会改变。
其余地址的值不能随意改变避免计算出错。
遇到指令中包含0xFF则从头执行指令,不清除RAM数据即可。


若软硬件存在bug以及意见建议请在楼下回复谢谢合作!

根据以上门电路组合设计实现的8位全加器:

这些地址由ROM数据决定,修改地址入口需要修改ROM。
8位全加器 输入地址入口:
其余地址的值不可修改,否则计算可能会出错。
执行前先修改以下地址的值:

0x00~0x07 (P0.0~P0.7) 被加数
0x08~0x0F (P1.0~P1.7) 加数
0x19 (P3.1) 进位输入
所有指令执行完毕后从以下地址读取计算结果:

0x10~0x17 (P2.0~P2.7) 和
0x18 (P3.0) 进位输出


C51硬件源码(用keil编译后可直接烧写到单片机内):



  1. #include "reg51.h" //定义头文件reg51.h
  2. #include "intrins.h" //定义头文件intrins.h

  3. sfr P4=0xC0; //定义P4口寄存器
  4. sfr P5=0xC8; //定义P5口寄存器
  5. sfr P6=0xE8; //定义P6口寄存器
  6. sfr P7=0xF8; //定义P7口寄存器



  7. unsigned char code rom[768] = { //ROM数据 8位全加器 带进位输入输出 只读数组 固定768字节
  8.         0x00, 0x31, 0x00, 0x08, 0x33, 0x08, 0x00, 0x34, 0x08, 0x31, 0x35, 0x33, 0x35, 0x36, 0x34, 0x08,
  9.         0x37, 0x08, 0x00, 0x38, 0x00, 0x37, 0x39, 0x38, 0x19, 0x3B, 0x19, 0x36, 0x3C, 0x36, 0x19, 0x3D,
  10.         0x36, 0x3B, 0x3E, 0x3C, 0x3E, 0x10, 0x3D, 0x36, 0x40, 0x36, 0x19, 0x41, 0x19, 0x40, 0x42, 0x41,
  11.         0x39, 0x43, 0x42, 0x43, 0x44, 0x43, 0x01, 0x60, 0x01, 0x09, 0x62, 0x09, 0x01, 0x63, 0x09, 0x60,
  12.         0x64, 0x62, 0x64, 0x65, 0x63, 0x09, 0x66, 0x09, 0x01, 0x67, 0x01, 0x66, 0x68, 0x67, 0x44, 0x69,
  13.         0x44, 0x65, 0x6A, 0x65, 0x44, 0x6B, 0x65, 0x69, 0x6C, 0x6A, 0x6C, 0x11, 0x6B, 0x65, 0x6E, 0x65,
  14.         0x44, 0x6F, 0x44, 0x6E, 0x70, 0x6F, 0x68, 0x71, 0x70, 0x71, 0x72, 0x71, 0x02, 0x74, 0x02, 0x0A,
  15.         0x76, 0x0A, 0x02, 0x77, 0x0A, 0x74, 0x78, 0x76, 0x78, 0x79, 0x77, 0x0A, 0x7A, 0x0A, 0x02, 0x7B,
  16.         0x02, 0x7A, 0x7C, 0x7B, 0x72, 0x7D, 0x72, 0x79, 0x7E, 0x79, 0x72, 0x7F, 0x79, 0x7D, 0x80, 0x7E,
  17.         0x80, 0x12, 0x7F, 0x79, 0x82, 0x79, 0x72, 0x83, 0x72, 0x82, 0x84, 0x83, 0x7C, 0x85, 0x84, 0x85,
  18.         0x86, 0x85, 0x03, 0x88, 0x03, 0x0B, 0x8A, 0x0B, 0x03, 0x8B, 0x0B, 0x88, 0x8C, 0x8A, 0x8C, 0x8D,
  19.         0x8B, 0x0B, 0x8E, 0x0B, 0x03, 0x8F, 0x03, 0x8E, 0x90, 0x8F, 0x86, 0x91, 0x86, 0x8D, 0x92, 0x8D,
  20.         0x86, 0x93, 0x8D, 0x91, 0x94, 0x92, 0x94, 0x13, 0x93, 0x8D, 0x96, 0x8D, 0x86, 0x97, 0x86, 0x96,
  21.         0x98, 0x97, 0x90, 0x99, 0x98, 0x99, 0x9A, 0x99, 0x04, 0x9C, 0x04, 0x0C, 0x9E, 0x0C, 0x04, 0x9F,
  22.         0x0C, 0x9C, 0xA0, 0x9E, 0xA0, 0xA1, 0x9F, 0x0C, 0xA2, 0x0C, 0x04, 0xA3, 0x04, 0xA2, 0xA4, 0xA3,
  23.         0x9A, 0xA5, 0x9A, 0xA1, 0xA6, 0xA1, 0x9A, 0xA7, 0xA1, 0xA5, 0xA8, 0xA6, 0xA8, 0x14, 0xA7, 0xA1,
  24.         0xAA, 0xA1, 0x9A, 0xAB, 0x9A, 0xAA, 0xAC, 0xAB, 0xA4, 0xAD, 0xAC, 0xAD, 0xAE, 0xAD, 0x05, 0xB0,
  25.         0x05, 0x0D, 0xB2, 0x0D, 0x05, 0xB3, 0x0D, 0xB0, 0xB4, 0xB2, 0xB4, 0xB5, 0xB3, 0x0D, 0xB6, 0x0D,
  26.         0x05, 0xB7, 0x05, 0xB6, 0xB8, 0xB7, 0xAE, 0xB9, 0xAE, 0xB5, 0xBA, 0xB5, 0xAE, 0xBB, 0xB5, 0xB9,
  27.         0xBC, 0xBA, 0xBC, 0x15, 0xBB, 0xB5, 0xBE, 0xB5, 0xAE, 0xBF, 0xAE, 0xBE, 0xC0, 0xBF, 0xB8, 0xC1,
  28.         0xC0, 0xC1, 0xC2, 0xC1, 0x06, 0xC4, 0x06, 0x0E, 0xC6, 0x0E, 0x06, 0xC7, 0x0E, 0xC4, 0xC8, 0xC6,
  29.         0xC8, 0xC9, 0xC7, 0x0E, 0xCA, 0x0E, 0x06, 0xCB, 0x06, 0xCA, 0xCC, 0xCB, 0xC2, 0xCD, 0xC2, 0xC9,
  30.         0xCE, 0xC9, 0xC2, 0xCF, 0xC9, 0xCD, 0xD0, 0xCE, 0xD0, 0x16, 0xCF, 0xC9, 0xD2, 0xC9, 0xC2, 0xD3,
  31.         0xC2, 0xD2, 0xD4, 0xD3, 0xCC, 0xD5, 0xD4, 0xD5, 0xD6, 0xD5, 0x07, 0xD8, 0x07, 0x0F, 0xDA, 0x0F,
  32.         0x07, 0xDB, 0x0F, 0xD8, 0xDC, 0xDA, 0xDC, 0xDD, 0xDB, 0x0F, 0xDE, 0x0F, 0x07, 0xDF, 0x07, 0xDE,
  33.         0xE0, 0xDF, 0xD6, 0xE1, 0xD6, 0xDD, 0xE2, 0xDD, 0xD6, 0xE3, 0xDD, 0xE1, 0xE4, 0xE2, 0xE4, 0x17,
  34.         0xE3, 0xDD, 0xE6, 0xDD, 0xD6, 0xE7, 0xD6, 0xE6, 0xE8, 0xE7, 0xE0, 0xE9, 0xE8, 0xE9, 0x18, 0xE9,
  35.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  36.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  37.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  38.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  39.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  40.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  41.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  42.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  43.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  44.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  45.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  46.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  47.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  48.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  49.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  50.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  51.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  52.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  53.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  54.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  55.         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF

  56. };

  57. unsigned char ram[32];  //32字节RAM 共256位
  58. unsigned int pc=0; //程序指针 取值范围:0~768
  59. //由于C51不能直接定义位数组,所以这里只能通过移位处理实现位数组。
  60. bit read_ram(unsigned char a){ //RAM读数据
  61.         unsigned char b=a>>3;  //获取该位对应的字节
  62.         unsigned char c=a&7;   //获取该字节对应的位
  63.         return (1<<c&ram[b])>>c; //返回位数据
  64.         
  65. }


  66. void write_ram(unsigned char a,bit d){  //RAM写数据
  67.         unsigned char b=a>>3;   //获取该位对应的字节
  68.         unsigned char c=a&7;    //获取该字节对应的位
  69.         bit e=(1<<c&ram[b])>>c; //获取该位数据

  70.         if(d == 0){ //要写的位为0
  71.                 if(e==1){ //位读取到1
  72.                 ram[b]-=1<<c; //该位数据置0
  73.                 }

  74.         } else { //要写的位为1
  75.                 if(e==0){ //位读取到0
  76.                 ram[b]+=1<<c; //该位数据置1

  77.                 }

  78.         }

  79.                



  80.         
  81. }

  82. void cpu_reset(){ //cpu复位

  83.         P0=0;P1=0;P2=0;P3=0; //P0~P3口全置低电平
  84.         P4=0;P5=0;P6=0;P7=0; //P4~P7口全置低电平
  85.         for(pc=0;pc<32;pc++){ //循环32次清零所有RAM
  86.                 ram[pc]=0; //RAM字节清零
  87.         }
  88.         pc=0; //pc指针清零

  89.         }
  90. void main(){ //主函数
  91. cpu_reset(); //cpu复位
  92. while(1){ //死循环
  93.         //将IO口数据写入RAM
  94.         ram[0]=P0;ram[1]=P1;ram[2]=P2;ram[3]=P3; //将P0~P3口数据送入RAM地址0~3字节
  95.         ram[4]=P4;ram[5]=P5;ram[6]=P6;ram[7]=P7; //将P4~P7口数据送人RAM地址4~7字节
  96.                 if(rom[pc] == 0xFF || rom[pc+1] == 0xFF || rom[pc+2] == 0xFF){ //指令中遇到0xFF则清零pc指针
  97.                 pc=0;

  98.                 }

  99.                 if(read_ram(rom[pc]) == 0 && read_ram(rom[pc+2]) == 0){ //全0出1
  100.                         write_ram(rom[pc+1],1); //将数值1写入RAM
  101.                         } else { //有1出0
  102.                         write_ram(rom[pc+1],0); //将数值0写入RAM
  103.                         }


  104.         pc+=3; //pc指针加3


  105.         if(pc%3 != 0){ //pc指针取余3不等于0
  106.         cpu_reset();//cpu复位,避免出现错误
  107.         }

  108.         if(pc >= 768){ //pc指针大于等于768
  109.         pc=0; //pc指针清零
  110.         }


  111.         //将RAM数据写入IO口
  112.         P0=ram[0];P1=ram[1];P2=ram[2];P3=ram[3]; //将RAM数据0~3字节送入IO口P0~P3
  113.         P4=ram[4];P5=ram[5];P6=ram[6];P7=ram[7]; //将RAM数据4~7字节送入IO口P4~P7
  114.         }
  115. }
复制代码


相关帖子

发表于 2017-7-3 17:55:48 | 显示全部楼层
感谢分享。路过暖(水)贴。消灭零回复。
发表于 2017-9-18 21:25:37 来自手机 | 显示全部楼层
好像在哪里见过。
发表于 2017-9-18 21:26:06 来自手机 | 显示全部楼层
好像在哪里见过类似的。
发表于 2017-9-18 21:27:48 来自手机 | 显示全部楼层



好像在哪里见过类似的。
发表于 2017-9-22 17:10:25 来自手机 | 显示全部楼层
可以啊 ctrl+c然后ctrl+v过来的吧???
发表于 2017-10-16 22:10:11 来自手机 | 显示全部楼层
Kuni7wa 发表于 2017-9-22 17:10
可以啊 ctrl+c然后ctrl+v过来的吧???

度娘结果数量很少,有可能不太是一样的。
发表于 2019-3-10 17:03:29 | 显示全部楼层
你标题已经违法广告法了
发表于 2019-3-21 10:48:31 | 显示全部楼层
单片机本身就是逻辑门组成的,这样搞有啥实际用途吗?
发表于 2019-4-13 00:10:39 | 显示全部楼层
cainiao4414 发表于 2019-3-21 10:48
单片机本身就是逻辑门组成的,这样搞有啥实际用途吗?

移植性强 指令集简单
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-25 09:29 , Processed in 1.574090 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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