松翰SN 汇编语言与开发工具
- 格式:pdf
- 大小:282.01 KB
- 文档页数:13
松翰单片机SONIXSN8P2511程序模板#define MAIN_GLOBAL#include "..\inc\config.h"#include "..\inc\SN8P2501B.h"//************************************************************* ***//// 主函数 //// 功能: 调用各个主函数 ////************************************************************* ***//void main(void){InitCPU();Ram_init();while(1){if(TimeFlag){TEST = !TEST;TimeFlag=0;Time_Fun();}_clrwdt();}}//************************************************************* ***//// 继电器输出 //// 功能: 工作输出 ////************************************************************* ***//void Work_Fun(void){;}//************************************************************* ***//// 硬件初始化 //// 功能: 硬件初始化输入输出定时器开关 AD初始化 ////************************************************************* ***//void InitCPU(void) //单片机初始化{FGIE=0; //关总中断//------------------------------I/O口输出--------------------------//---------------P0---------------FP00M=0;//// FP01M=1;//// FP02M = 0;// FP03M = 0;// FP04M=0;//P0UR = _0000_0001b;//---------------P1---------------FP10M=0;//// FP11M=0;//FP12M=1;// 输出FP13M=0;// 按键// FP14M=1;//// FP16M=1;//// FP15M=1;//// FP17M=1;//P1UR = _0000_1001b;//---------------P2---------------FP20M=0;//FP21M=0;//FP22M=0;//FP23M=0;//FP24M=0;//FP25M=0;//// FP26M=0;//// FP27M=1;//P2UR = _0011_1111b;//---------------P5---------------// FP50M=1;//// FP51M=1;//// FP52M=1;//// FP53M=0;//FP54M=1;//// P5UR = _0000_0000b;//------------------------------T0--------------------------------FT0ENB = 0;FT0IEN = 0;FT0IRQ = 0;T0M = 0X60;//时钟为FCPU/4T0C=7; //T0 间隔250uSFT0ENB = 1;FT0IEN = 1;FGIE=1; //开总中断}//************************************************************* ***//// 变量初始化函数 //// 功能: 对程序中的变量进行赋初值 ////************************************************************* ***//void Ram_init(void){_nop();_nop();Move_Key = 0x70;// Open_FLAG = 1;}//************************************************************* ***//// 走时函数 //// 功能: 对程序中计时功能进行计数和赋值 ////************************************************************* ***//void Time_Fun(void){static uchar Time_5ms_Cnt = 0,Time_10ms_Cnt =0,Time_200ms_Cnt = 0,Time_1S_Cnt = 0;static uchar Leave_Out_ID = 0,Leave_Out_Time_Cnt = 0,YiWei_ID = 0,Leave_Out_Cnt = 5;static uchar Move_IN_Cnt = 0;uchar tmp1;if(Leave_Data_Out_Flag){if(!Leave_Out_ID){Leave_Out_Time_Cnt ++;LEAVE_DATA_OUT_ON();if(Leave_Out_Time_Cnt > 8){Leave_Out_Time_Cnt = 0;Leave_Out_ID = 1;}}else if(Leave_Out_ID == 1){Leave_Out_Time_Cnt ++;LEAVE_DATA_OUT_OFF();if(Leave_Out_Time_Cnt > 5){Leave_Out_Time_Cnt = 0;Leave_Out_ID = 2;}}else if(Leave_Out_ID == 2){if(!Leave_Out_Time_Cnt){tmp1 = Leave_ID;tmp1 |= Move_Key;tmp1 >>= YiWei_ID;tmp1 &= 1;if(tmp1)Leave_Out_Time_Cnt = 0;elseLeave_Out_Time_Cnt = 2; YiWei_ID ++;if(YiWei_ID >= 9){Leave_Out_ID = 0;YiWei_ID = 0;Leave_Out_Time_Cnt = 0; Leave_Data_Out_Flag = 0;}}if(Leave_Data_Out_Flag){Leave_Out_Time_Cnt ++;if(Leave_Out_Time_Cnt <= 4) LEAVE_DATA_OUT_ON();else if(Leave_Out_Time_Cnt < 6) LEAVE_DATA_OUT_OFF();elseLeave_Out_Time_Cnt = 0;}}}Time_5ms_Cnt ++;if(Time_5ms_Cnt >= 5) //接收5ms去扫描{Time_5ms_Cnt = 0;if(MOVE_IN) //倾倒了{Move_IN_Cnt ++;if(Move_IN_Cnt >= 10){Move_IN_Cnt = 15;Move_Key = 0x80;Leave_ID = 0;}}else{if(!K8_IN)Leave_ID = 8;else if(!K7_IN)Leave_ID = 7;else if(!K6_IN)Leave_ID = 6;else if(!K5_IN)Leave_ID = 5;else if(!K4_IN)Leave_ID = 4;else if(!K3_IN)Leave_ID = 3;else if(!K2_IN)Leave_ID = 2;else if(!K1_IN)Leave_ID = 1;Move_IN_Cnt = 0;Move_Key = 0x70;}}Time_10ms_Cnt ++;if(Time_10ms_Cnt >= 10) //发送10MS去扫描{Time_10ms_Cnt = 0;}Time_200ms_Cnt ++;if(Time_200ms_Cnt >= 200){Time_200ms_Cnt = 0;if(!Leave_Data_Out_Flag){Leave_Out_Cnt ++;if(Leave_Out_Cnt >= 10){Leave_Out_Cnt = 0;Leave_Data_Out_Flag = 1;}}}}__interrupt isr1(void) //TC0定时器中断入口{static uchar Time1MS = 0;if(FT0IRQ) //TC0 //定时0.125ms{T0C=6; //T0 间隔250uSTime1MS ++;if(Time1MS >= 4) //1MS中断函数{Time1MS = 0;TimeFlag = 1;}}FT0IRQ = 0;}。
汇编语言的编程步骤与调试方法汇编语言是一种底层的程序设计语言,直接操作计算机硬件。
在编写汇编语言程序时,需要经过一系列的编程步骤和调试方法,以确保程序的正确性和可靠性。
下面是关于汇编语言的编程步骤和调试方法的一些详细介绍。
一、编程步骤:1.定义程序目标:明确程序的功能、输入和输出。
2.设计算法和逻辑:将目标转化为汇编语言指令,设计算法和逻辑流程。
3.选择寄存器和指令:根据算法和逻辑需求,选择合适的寄存器和指令。
4.编写指令:根据算法和逻辑需求,使用正确的指令来编写汇编语言程序。
5.汇编编译:使用汇编编译器将汇编代码翻译成机器代码。
6.汇编连接:使用链接程序将机器代码和其他必要的文件(如库文件)连接成可执行文件。
7.调试和测试:进行调试和测试,确保程序的正确性和可靠性。
8.优化和改进:根据测试结果,对程序进行优化和改进。
二、调试方法:1.插入调试指令:在程序中插入一些特定的调试指令,可以输出一些关键的变量或标志位,以便观察程序的执行路径和结果。
2.单步执行:逐条执行程序代码,并观察每条指令的执行结果和影响,以及寄存器和存储器的变化情况。
3.观察寄存器和存储器:利用调试器观察程序执行过程中的寄存器和存储器的变化情况,以确定代码逻辑是否正确。
4.打印和日志输出:通过在程序中插入打印和日志输出的语句,可以观察关键变量和代码的执行情况,以帮助调试。
5.内存和寄存器状态检查:检查程序执行过程中的内存和寄存器状态,特别是对一些关键变量和标志位进行监视,以便发现问题所在。
6.脱机调试:将程序转储至仿真器或虚拟机,并在其中进行无风险的调试,以排查错误。
三、汇编程序调试常见问题及解决方法:1.程序崩溃或死循环:检查程序中循环和分支语句的逻辑判断条件是否正确,以及循环内的寄存器和内存操作是否正确。
2.内存访问错误:查看程序访问的内存地址和存储器的范围是否正确,并检查程序中的指针操作是否正确。
3.寄存器使用错误:检查程序中使用的寄存器是否正确选择和使用,尤其是在多个函数调用的情况下,需要注意寄存器的保存和恢复。
SN 仿真器汇编软件V138 简体中文汉化版本台湾松翰的 8 位单片机 SN 仿真器汇编软件 V138 已经发布,该版本支持芯片型号如下:支持最新芯片 :SN8F25E27, SN8F25E27L, SN8F25E28, SN8F25E28L, SN8F26E67, SN8F26E67L, SN8F26E68, SN8F26E68L,SN8P2623, SN8P2723, SN8P2929, SN8FMD25A, SN8FMD24A, SN8FMD24AL, SN8FMD25A, SN8FMD25AL, SN8P25234,支持仿真全部真实功能的下列芯片列表:SN8P2501A, SN8P2602A, SN8P2604, SN8P2606, SN8P2608, SN8P270XA, SN8P2711, SN8P2714,SN8P27142, SN8P27143, SN8P2715, SN8P2308, SN8P26042, SN8P2612, SN8P2613, SN8P2624,SN8P2603A, SN8P2611, SN8P2622, SN8P2501B, SN8P2602B, SN8PC13, SN8P2201, SN8P2202,SN8P2203, SN8P2204, SN8A2617, SN8P2604A, SN8P2614, SN8P2808, SN8P2212, SN8P2213,SN8P22121, SN8P26L32, SN8P26L321, SN8P26L34, SN8P2722, SN8P2807, SN8P2234, SN8P2236,SN8P2238, SN8P2711A, SN8P26L38, SN8PC20, SN8P26042A, SN8P22021, SN8P26L31, SN8P2522,SN8P2732, SN8P2733, SN8P2734, SN8P2735, SN8P2754, SN8P2755, SN8P2758, SN8F2251, SN8F2253, SN8F2255, SN8F22511, SN8F22521, SN8F22531, SN8F2251B, SN8F2253B, SN8F2255B,SN8F22511B, SN8F22521B, SN8F22531B, SN8F22721, SN8F2271, SN8F2277, SN8F22711, SN8F2271B,SN8F2277B, SN8F22711B, SN8F22721B, SN8F2288, SN8P2267, SN8PC21, SN8P2233, SN8P2242,SN8P22421, SN8P2521, SN8P26L37, SN8P2708B, SN8F27E62, SN8F27E62L, SN8F27E64, SN8F27E64L,SN8F27E65, SN8F27E65L, SN8P2742, SN8P2743, SN8P2318, SN8P2501B1, SN8P2501C, SN8P2602C,SN8P2712, SN8P2523, SN8P2241, SN8P2317, SN8P2602C1, SN8P2711A1, SN8F27E93, SN8F27E93L,SN8F27E94, SN8F27E94L, SN8P25231, SN8PC22, SN8F26E61, SN8F26E61L, SN8F27E61, SN8F27E61L,SN8F26E611, SN8F26E611L,SN8F27E611, SN8F27E611L,SN8P2267B, SN8P2839, SN8P2947, SN8PC2014,SN8PC2016, SN8P2704B, SN8P2524, SN8P27411, SN8P2267C, SZK671, SN8P2949, SN8P2711A2, SN8P27122, SN8P2511, SN8FMD24, SN8FMD24L, SN8FMD25, SN8FMD25L, SN8F26E64, SN8F26E64L,SN8F26E65, SN8F26E65L, SN8F25E24, SN8F25E24L, SN8F25E25, SN8F25E25L, SN8FMD21, SN8FMD21L,SN8FMD22, SN8FMD22L, SN8FMD23, SN8FMD23L, SN8P2711B, SN8F25E27, SN8F25E27L, SN8F25E28,SN8F25E28L, SN8F26E67, SN8F26E67L, SN8F26E68, SN8F26E68L, SN8P2623, SN8P2723, SN8P2929,SN8FMD25A, SN8FMD24A, SN8FMD24AL, SN8FMD25A, SN8FMD25AL, SN8P25234,提示:a. M2IDE V1.00 或更新的版本仅支持SN8ICE_2K.b. SN8IDE V1.99L ~ V1.99Z 仅支持 SN8ICE_1K(旧名称是 S8KD-2 ICE).c. 停止支持 Writer V3.0 烧写器.由于软件的菜单,对话框,提示语句....全部为英文,因为英文底子差,感觉使用不方便,于是又抽时间给汉化了.主要是对 8 位单片机普通应用部分的菜单,对话框,提示... 进行汉化.部分语音应用之处忽略了而没有汉化.有一些受软件内部保护的地方不够水平也没有汉化.汉化后的主界面:汉化后的菜单:汉化后的对话框:汉化后的提示语句:欢迎爱好使用中文软件界面的朋友下载使用!不足之处,欢迎指正!请下载: HH_M2Asm138.rar (去掉文件名的前面"HH_"字符,覆盖原英文同名文件即可!-----覆盖前请备份英文软件! 以便快速恢复.)。
单片机的软件开发工具与环境介绍单片机是指集成在单个芯片上的微型计算机系统。
它具备较小的体积、低功耗、低成本以及较强的功能等特点,被广泛应用于各个领域。
在单片机的开发过程中,选择合适的软件开发工具和环境非常关键。
本文将介绍几种常用的单片机软件开发工具与环境。
一、Keil μVisionKeil μVision是一款由Keil Software公司推出的嵌入式系统开发工具。
它是一套集成开发环境(IDE),包含了编译器、调试器、仿真器等功能模块,可以实现单片机程序的编写、编译以及调试。
KeilμVision支持多种芯片系列,如STMicroelectronics的STM32系列、NXP的LPC系列等。
其可视化界面友好,功能强大,被广泛应用于单片机软件开发领域。
二、IAR Embedded WorkbenchIAR Embedded Workbench是由IAR Systems推出的单片机开发工具。
它提供了完整的软件开发流程,包括编写、编译、调试和优化等环节。
IAR Embedded Workbench支持多种单片机系列,如Texas Instruments的MSP430系列、Renesas的RL78系列等。
该工具具有较高的代码生成效率和卓越的调试功能,可以帮助开发者提高开发效率和代码质量。
三、MPLAB X IDEMPLAB X IDE是由Microchip公司开发的一款集成开发环境。
它主要用于开发与Microchip单片机相关的应用程序。
MPLAB X IDE支持多种编程语言,如C、C++以及汇编语言。
该工具提供了丰富的调试功能和模拟器功能,并能够与硬件调试器(如PICkit)结合使用,使得开发者可以更加方便地进行单片机程序的开发和调试。
四、Arduino IDEArduino IDE是一款面向Arduino单片机的开发工具。
Arduino是一种开源的电子原型平台,广泛应用于各个领域的快速原型开发。
松翰(SONIX)烧录器作业指导书
文件名称六芯片读取及烧录2.所选择程序读取正常后,将烧录器连接机台进行芯片烧录,注意事项1.取对应转接板插入所烧写程序,注意丝印上所印有型号,如C020配备2501B转接板,使用错误将无法烧录。
2.对所选择程序必须截图存档,方便每日程序点检及日后异常追溯。
4.将烧录器连接机台后,注意LED灯显示,黄色为烧录中,绿色为烧录完成,红色为不良.
作成部门
③编写/日期
②审核/日期
①批准/日期修订次数修订日期审核日期文件编号:XDD/SMT-0001
版本:A.1
松翰(SONIX)烧录器作业指导书第 3 页共 3 页
1 点击“读取OTP”按钮,会将芯片中的信息读出(如果芯片有加密则只能读出部分数
据),并显示在信息框中.
3.程序选取正确后必须读取1PCS芯片,点检芯片是否正确,并如实填写<烧录点检表>.。
单片机的编程语言选择与开发工具推荐随着科技的不断发展,单片机已经成为了现代电子产品中不可或缺的核心部件。
单片机的编程语言选择和开发工具的使用对于开发者来说至关重要。
本文将简要介绍几种常见的单片机编程语言,并推荐一些优秀的开发工具供开发者选择。
一、单片机编程语言选择1. C语言C语言是目前最常用的单片机编程语言之一。
它具有良好的可移植性、强大的数据处理能力和丰富的编程库。
C语言使用简单且易于学习,适合初学者入门。
许多著名的单片机制造商都提供了针对C语言的开发工具和库。
2. C++C++语言在C语言的基础上进行了扩展,为单片机编程提供了更多的功能和特性。
C++语言支持面向对象的编程,使得程序结构更加清晰,代码更易于维护。
然而,由于C++语言对内存的使用较为复杂,对于资源有限的单片机来说,需要仔细调试和优化。
3. PythonPython语言在近年来在单片机编程领域中日益流行。
Python语言具有清晰简洁的语法,易于学习和使用。
它支持丰富的库和模块,使得开发人员能够快速实现各种功能。
然而,由于Python解释器的消耗较大,对于对资源要求严格的嵌入式系统来说,需要权衡性能和效率。
二、单片机开发工具推荐1. Keil MDKKeil MDK是一款功能强大、易于使用的开发工具。
它支持多种单片机架构,包括ARM Cortex-M系列和8位STC系列等。
Keil MDK具有直观的用户界面、强大的调试功能和稳定的编译器,可以帮助开发者高效地进行单片机程序开发。
2. MPLAB X IDEMPLAB X IDE是Microchip公司推出的一款开源免费的集成开发环境。
它支持多种编程语言和单片机系列,包括PIC和dsPIC等。
MPLAB X IDE具有友好的用户界面和丰富的功能,包括源代码编辑、调试、仿真等,非常适合微控制器的开发。
3. Arduino IDEArduino IDE是一款适用于Arduino系列单片机的开发工具。
松翰 SN8 C Studio 使用教程(一步一步完整教程)1.到松翰官网下载SN8 C Studio软件,并安装。
2.安装后,点击打开
3.新建工程,建立你自己的工程项目
4. 新建工程,选择1,然后再选择你的芯片系列,先选择你工程的放置地址,然后再写工程名称。
5.在工程里面添加你的.C文件和.H头文件
6.设置工程配置
7.选择芯片
8.工程项目配置
9.编译程序,直到程序编辑完成,并且没有错误(警告一般没有关系)
10.程序仿真(需要你有自己的仿真器,并且和电脑连接好)仿真界面的退出运行复位。
1为变量实时查看,查看的时候需要暂停程序。
2为芯片里面寄存器查看。