⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idkq.txt

📁 这是52单片机串口调试程序
💻 TXT
字号:
(所有两字节以上的数字都是前低后高)
FLASH容量为512KB, 分为32KB*16块, 0-7块为汉字,第1块汉字的0x2800-0x2FFF为英文ASC码
FLASH的使用方法:
  1. FLASH必须先擦除后才能写入,擦除时间为2ms,以256字节为一个扇区单位进行擦除,每一块
     (32KB)FLASH分为128个扇区,擦除后可随时写入(每个字节只可写入一次)
  2. FLASH的字节写入时间为35us,因此不必延时
  3. PC的软件在需要修改FLASH的数据时,有必要先读入整个扇区(256字节)进缓冲区,再擦除扇区,
     然后修改缓冲区的内容,最后把整个缓冲区写入FLASH中.

第1块汉字的保留区域:
  (1)0x2300-0x23FF(256B) 用于存放公司名称和语音分段数据(暂时未用)
       0-15 公司名称(16B)(目前未用)
      16-47 语音分段(开始(1B)+长度(1B)), 最多16段, 具体含义如下:(开始=0xFF表示不放音)
            0 - 欢迎
            1 - 再见
            2 - 上班
            3 - 下班
            4 - 加班上
            5 - 加班下
            6 - 外进
            7 - 外出
  (2)0x2400-0x24FF(256B) 用于存放系统设置数据
      00    通讯格式(101-132为RS485方式,其它为RS232,此时Machine_ID=0x53)(初始化为FF)
      01-06 密码(全部数字'0'-'9',必须写满6B,初始化为'888888'),如数据为'0'-'9'以外,
            则任意数字都被当作正确密码.
     例:(将机器地址设置为0xFF(255),密码设为“888888”)
      首先擦除0x2400所在扇区命令: 
        53 53 53 05 FA 01 00 24 55 AA 00 00 00 00 00 00 00 00 00 00 00 00 DC
                 擦    块 地址  标志                                      校验和
      写入通讯格式和密码:
        53 53 53 04 FB AA 55 01 00 24 07 FF 38 38 38 38 38 38 00 00 00 00 86
                 写    标志  块 地址 长度 通讯格式和密码('888888')        校验和
  (3)0x2500-0x27FF(768B) 保留

第8块为用户记录, 格式:ID_NO(7B)+NAME(8B)+ID(2B)共17B,用户总数=1927(软件设定为1900)
ID_NO:卡号
NAME:用户名
ID:工号
第9-15块为考勤记录,格式:ID(2B)+YEAR(1B)+STAT(4b)+MON(4b)+DAY(5b)+HOUR(5b)+MIN(6b)共6B,
ID:工号
YEAR:年
STAT:状态,即上班、下班、加班上、加班下、外出、外入等
MON:月
DAY:日
HOUR:时
MIN:分
每块考勤记录数=32768/6=5461,多余的两个字节不用,考勤记录总数=5461*7=38227,软件设定为38000

RS232通讯格式: (9600,N,8,1)
采用定长方式,收发都是23字节,前面3字节为机器编号,第4字节为命令,第5字节为命令的反码,
6-22字节(共17B)为发送的命令或返回的内容,最后的字节为校验和,令6-23字节的和为0(mod 256)
整数存放位置采用前低后高的方式
带*号的命令为必须实现的命令,其它的可有可无

RS485多机通讯方式: (9600,9,1)(需要控制器的支持)
机器编号(TB8=1)(1B),其它(TB8=0)(20B),通讯命令同RS232
上位机采用轮询方式,下位机只有在接收到自己的机器编号后,才能继续接收下面的数据,
并将发送缓冲区中的数据发送出去,平时不能主动发送数据

0. 显示用户总数
发送  53 53 53 00 FF 00 00  00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00
返回  53 53 53 00 FF 01 00  02 00  56 31 2E 30 00 00 00 00 00 00 00 00 00 18 
                    用户数 记录数 版本号(V1.0)

1. 读用户资料(默认为读第八区的数据,可以用命令4替代)
发送  53 53 53 01 FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  User 1
                     |地址|                     
返回  53 53 53 01 FE 3F CF FC E8 CA 39 55 FF FF FF FF FF FF FF FF FF 03 BC
                     |  ID 卡号(7B)     | |  姓名(8B)           | |工号|
举例:
读用户2的资料
发送  53 53 53 01 FE 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF  User 2
读用户3的资料
发送  53 53 53 01 FE 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DE  User 3
读用户4的资料
发送  53 53 53 01 FE 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CD  User 4

*2. 重新计算用户数和考勤记录数(在修改用户或考勤记录后必须调用)
发送  53 53 53 02 FD 00 00  00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 00
返回  53 53 53 02 FD 01 00  07 00  56 31 2E 30 00 00 00 00 00 00 00 00 00 13
                    用户数 记录数 版本号(V1.0)

3. 写用户资料(默认为写第八区的数据,可以用命令4替代)
53 53 53 03 FC 3F CF FC E8 B7 D0 DF D6 D0 B9 FA C8 CB C3 F1   01 00   07
53 53 53 03 FC 3F CF FC F5 39 16 B6 B0 EB C9 BD BB A8 D4 B0   02 00   F2
53 53 53 03 FC 3F CF FC F5 3D 8E 2D BF D5 D6 D0 C2 A5 B8 F3   03 00   BA
               | 1-7ID卡号 -------| |姓名8-15位             |工号2位|

*4. 指定扇区写入
53 53 53 04 FB AA 55 07 00 7F      0B     20 20 20 B1 B1 BE A9 D6 D0 BF D8 0A
         写 反码
53 53 53 04 FB AA 55 07 0B 7F      04     BF C6 BC BC 00 00 00 00 00 00 00 6F
               |标志|块 地址(2B)+长度(1B)+数据(1-11B)+校验和
53 53 53 04 FB AA 55 07 16 7F 08 37 32 41 32 02 28 0A 46 00 00 00 07
53 53 53 04 FB AA 55 07 1E 7F 08 13 37 1C 3E 26 46 30 41 00 00 00 D4

53 53 53 04 FB AA 55 08 07 00 08 D6 D0 B9 FA C8 CB C3 F1 00 00 00 4A 写user1 name

*5. 擦除指定扇区(以256B为单位)
53 53 53 05 FA 09 00  00       55 AA 00 00 00 00 00 00 00 00 00 00 00 00 F8
               块(2B) 页(0-7F) |标志|
擦除第8块第0扇区的记录
53 53 53 05 FA 08 00  00       55 AA 00 00 00 00 00 00 00 00 00 00 00 00 F9 
擦除第7块最后一扇区的记录
53 53 53 05 FA 07 00  7F       55 AA 00 00 00 00 00 00 00 00 00 00 00 00 7B 

*6. 读指定扇区(读用户数据和考勤数据都可以通过这条命令执行)
发送  53 53 53 06 F9 09   00 00   00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
                     块 |开始地址|
发送  53 53 53 06 F9 0A   00 00   00 00 00 00 00 00 00 00 00 00 00 00 00 00 F6

返回  53 53 53 06 F9 FF 03 02 1C 41 85 FF 03 02 1C 41 85 FF 03 02 1C 41 D3
                     |****************返回数据(17B)*******************|
举例:
读第9块地址0006开始的数据
      53 53 53 06 F9 09 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F1
读第9块地址003c开始的数据
      53 53 53 06 F9 09 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7

*8. 设置时间
发送  53 53 53 08 F7 00 05 16 20 12  05  02 00 00 00 00 00 00 00 00 00 00 AC
                     秒 分 时 日 月 星期 年

举例:
将时间设置为:2003年12月18日星期四23点09分02秒
      53 53 53 08 F7 02 09 17 12 0c  04  03 00 00 00 00 00 00 00 00 00 00 38
*9. 读取时间
发送  53 53 53 09 F6 00 00 00 00 00  00  00 00 00 00 00 00 00 00 00 00 00 00
返回  53 53 53 09 F6 24 14 08 08 12  07  02 80 00 00 00 00 00 00 00 00 00 1D
                     秒 分 时 日 月 星期 年

*10. 写LCD
发送  53 53 53 0A F5   01       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF
                     行数(1-4)  |*****************显示字符(16B)***************|
      若行数=1-4,则PC取得该行LCD的控制权
      若行数=0x81-0x84,则PC取消该行LCD的控制权
返回  53 53 53 0A F5 4F 4B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  (OK)
      53 53 53 0A F5 4E 4F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  (NO)
目前只允许第4行(最下一行)由PC控制

*11. 系统暂停1秒
      53 53 53 0B F4 55 AA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
返回  53 53 53 0B F4 AA 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01

*12. 读上次卡号
      53 53 53 0C F3 55 AA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
返回  53 53 53 0C F3 XX XX XX XX XX XX XX 00 00 00 00 00 00 00 00 00 00 01
                     | ID卡号           |

打卡返回数据
53 53 53 13 EC 3F CF FC E8 B7 D0 DF 00 00 00 00 00 00 00 00 00 00
               | 1-7ID卡号 -------|

考勤机的密码必须通过PC软件来设置,出厂密码为888888
考勤记录数超过3万有提示

功能菜单:
1. 增加用户
2. 设置时间
3. 通讯格式
4. 删除用户

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -