- 博客(23)
- 资源 (3)
- 收藏
- 关注
原创 单片机捕捉功能
输入捕捉:具有此功能的一个管脚,定时器在内部时钟的作用下在运行,此时管脚来了个中断,假如上升沿吧。在中断的作用下,定时器停止工作,此时可以读出定时器的数值,读出后再开启定时器,等待下次中断,再读取一次定时器数值,二次相减,就可求出二次中断的间隔时间输出比较:有一寄存器先存放你要定时的数,例如50.定时器在内部时钟下有0开始慢慢向上加,没加一次都会和那个寄存器比较,当等于那个寄存器值时 如50,...
2018-08-20 22:20:30 5795
原创 C语言数组,指针小案例
/* ============================================================================ Name : hello.c Author : liming Version : Copyright : Your copyright notice Description : Hello ...
2018-08-19 15:11:33 239
原创 C语言——enum
#include<stdio.h>enum Season{ spring, summer=100, fall=96, winter};typedef enum{ Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}Weekday;int main(void){ ...
2018-08-19 15:05:12 238
原创 C语言——杂实例
#include <stdio.h>#include <stdlib.h>#include <string.h>void f (int **p);void change(int *tmp_t){ *tmp_t =1; return;}/*这个函数才是真正的交换*/void real_swap(int *real_a,...
2018-08-19 15:03:44 156
原创 pc上用C语言模拟51多任务的案例程序
#include <stdio.h>#include <stdlib.h>//任务槽个数.在本例中并未考虑任务换入换出,所以实际运行的任务有多少个,//就定义多少个任务槽,不可多定义或少定义#define MAX_TASKS 5//任务的栈指针unsigned char *task_sp[MAX_TASKS];//最大栈深.最低不得少于2个,保守值为...
2018-08-19 14:58:51 370
原创 C语言结构体实例-创建兔子
参考裸编程思想。 #include <stdio.h>//#include "ycjobject.h"// 颜色定义#define CL_BLACK 0#define CL_WHITE 1#define CL_GRAY 2// 物种身份ID定义#define ID_GRASS 0x0001#define ID_CARROT 0x...
2018-08-19 14:56:51 1839
原创 C语句模拟多任务实例
#include <stdlib.h>#include <stdio.h>// 任务类型定义typedef struct _myTask{ struct _coefficient { unsigned char a; unsigned char b; unsigned char c; } co; struct _variable { ...
2018-08-19 14:55:09 415
原创 malloc,free实验
#include <stdio.h>#include <stdlib.h>int main(){ char a = 0; //int * p = (int * ) malloc (4 * sizeof(int)); int * p = (int * ) malloc (4); char * cp = (char * ) malloc (4 * sizeof...
2018-08-19 14:52:33 273
原创 C语言之——__attribute__
__attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关 。 __attribute__((aligned(4)));设置4字节对齐方式,和#pragma pack(4) 效果一样可以参考:https://blog.csdn.net/zhangxiong25...
2018-08-19 14:46:51 254
原创 字符串操作——C语言实现
代码如下: #include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>char ch1[]={ 'c', '+', '+'};char ch2[]={ 'c', '+', '+', '\0'};char ch3[] = "myC++";c...
2018-08-19 14:45:37 1121
转载 notepad++中设置python运行
1. Notepad++ ->"运行"菜单->"运行"按钮2. 在弹出的窗口内输入以下命令:cmd /k python "$(FULL_CURRENT_PATH)" & ECHO. & PAUSE & EXIT然后点击“保存”,随意取一个名字,比如“RunPython”,为方便,配置一下快捷键(比如 Ctrl + F5),点OK即可。之后运行Pyt...
2018-08-17 10:01:49 196
原创 51多任务系统,可以运行
根据网上的资料,采用定时器2自动装载模式。每10ms进一次中断。图中可以看出,调用rtos_wait(100)后,PC=PC+3=0x0163,SP=SP+2;把PC值压栈,可以参考LCALL addr16这条汇编指令PC是16位,所以需要两个8位的空间,因此SP需要加2。/*使用keil4可运行8个任务任务从rtos_wait()处切换,在定时时间到后从定...
2018-08-14 13:44:23 605 2
原创 函数指针数组指针+结构体数组
/*****************结构体数组计算一个班学生四门课程平均分************************/#include <stdio.h>#include <string.h>char *fun1(char *p){ printf("%s\n",p); return p;}char *fun2(ch...
2018-08-13 10:13:45 1464
转载 复杂指针的定义(含复杂函数指针)
转摘自:https://blog.csdn.net/chenguanchi/article/details/15336859 指针是C/C++语言中很重要的机制,一些C语言高级用法基本都需要指针的参与。一些复杂指针可能理解起来有点难度,但只要你掌握相应的技巧,这一切都能迎刃而解。本文从定义的角度,解析复杂指针。 具体解析过程int p;定义普通变量pint ...
2018-08-12 21:44:00 998
原创 使用KEIL C51实现的简单合作式多任务操作系统内核(单片机实现版本)
基于网上网友的代码,自己在单片机上实现, 特此记录分享之。基于https://blog.csdn.net/yyx112358/article/details/78877523//使用KEIL C51实现的简单合作式多任务操作系统内核#include <regx52.H>#include <INTRINS.H>typedef unsigned char u...
2018-08-12 10:56:54 1155
原创 简单的51单片机多任务操作系统(C51)
在网上看到这段代码,所以自己尝试了,可以跑起来,但是没有精确的定时功能,仅仅是任务的调度而已。数组中是11,而不是12。这里写错了。。。/*简单的多任务操作系统其实只有个任务调度切换,把说它是OS有点牵强,但它对于一些简单的开发应用来说,简单也许就是最好的.尽情的扩展它吧.别忘了把你的成果分享给大家.这是一个最简单的OS,一切以运行效率为重,经测试,切换一次任务仅20...
2018-08-12 09:41:42 18642 8
转载 在scite编辑器中使用astyle格式化c代码
用 vc6 很喜欢 alt+F8 的功能. 能够格式化代码. scite 没有这个功能. 今天看它的配置文件发现这么两行:command.name.0.*.cxx=Indentcommand.0.*.cxx=astyle -tapO $(FileNameExt)用来缩进的? 查了一下 astyle, 原来就是这个功能. 下载了 astyle 1.19, 修改了一下配置文件 cpp.pro...
2018-08-11 23:42:58 604
转载 51单片机查表指令
51单片机具有两条查表指令,用于从 ROM 中读出预存的数据: MOVC A, @A + PC MOVC A, @A + DPTR 问题:在“MOVC A,@A+DPTR”和“MOVC A,@A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?使用中有何不同? 答案: 使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A...
2018-08-04 12:17:19 12084
原创 51单片机PC程序计数器
PC是一个16位的计数器。用于存放和指示下一条要执行的指令的地址。寻址范围达64KB。PC有自动加1功能,以实现程序的顺序执行。PC没有地址,是不可寻址的,无法用指令对它进行读写。但在执行转移、调用、返回等指令时能自动改变其内容,以改变程序的执行顺序。 16bit,这是重点。...
2018-08-04 12:16:41 9488
原创 51单片机汇编程序实例二
ORG 0000H MOV 20H, #9 MOV DPTR, #BCDTAB MOV A, 20H MOVC A, @A+DPTR MOV 21H, A ANL A, #0fh ;逻辑与“按位逻辑与” SJMP $BCDTAB: DB 00H, 01H, 04H, 09H, 16H, 25HDB 36H, 49H, 64H, 81H END ...
2018-08-04 12:13:19 1480
原创 51单片机汇编程序——查表
;利用MOVCA,@A+PC指令编写一查平方表程序,;将片内30H~31H内的数查平方后送入40H~49H单元,;30H~39H预先存入数据为1,3,5,7,9,2,4,6,8,10. org 0000h mov 30h, #1 mov 31h, #2 mov 32h, #3 mov 33h, #4 mov 34h, #5 mov 35h, #6 mov 36h, #7 m...
2018-08-04 12:11:25 7643
原创 51单片机汇编程序实例一
;已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=aaH. ORG 0000H MOV A, #02H MOV 51H, #0xFF MOV 52H, #0xaa MOV SP, #52H POP DPH ;SP=51H POP DPL ;SP=50H mov dpl, #0xfe mov dph, #0x21 inc dptr in...
2018-08-04 12:09:34 11563 4
原创 51单片机外部中断INT0实例(汇编程序)
;普中51开发板;单片机的P3.2(INT0)引脚与按键K3脚连接;用汇编语言实现:按一次K1外部中断INT0响应一次,LED显示值加1(十进制),;前提是共阴数码LED第一位,需要设定,由P0口控制。 ORG 0000H LJMP START ORG 0003H LJMP INTT0 ORG 0600HSTART: SETB EA SETB EX0 ; 打开外...
2018-08-04 12:07:38 29490 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人