随笔分类 -  单片机

摘要:---------------------------------Freaduino mega 2560rc522 & arduino lib 下载地址:https://github.com/miguelbalboa/rfid----------------------------------现象:... 阅读全文
posted @ 2014-11-13 19:24 Alimy 阅读(2903) 评论(2) 推荐(1)
摘要:4、Arduino_呼吸灯(PWM):(2014年11月5日 13:02:17)http://note.youdao.com/share/?id=dc2adc1a5f06e4df5aa525abc296e9d5&type=note3、Arduino_1302 RTC模块简单例程:(2014年11月5... 阅读全文
posted @ 2014-10-31 15:09 Alimy 阅读(662) 评论(2) 推荐(0)
摘要:原问题地址http://www.amobbs.com/thread-5565900-1-1.htm已知 (sp)=32H (32H)=50H 执行 pop sp之后(sp)= ?到底是50H呢还是4FH呢?查询了下指令集:照此分析,(sp)应该等于4F。不过用代码,keilc51 4 ,89C51单片实物仿真后发现答案不是4F。。。奇怪的说。。。一、KEIL4C51 仿真。仿真代码:org 0000 jmp main main: mov a,#50H mov 32H,a mov sp,#32H ... 阅读全文
posted @ 2014-01-10 11:04 Alimy 阅读(595) 评论(0) 推荐(0)
摘要:应用在某些硬件资源不够用的情况下,不是很精确,频率的话也不是很好调节;原理就是“J满则溢”。1.中断1服务程序不改变占空比:2.终端1服务程序改变占空比:(明显可以看到波形随时间变化推移)例程代码如下: 1 #include 2 // CPU STC89C52RC 12T 11.0592M的晶振 3 #define LED_PORT P0 4 sbit P0_0 = LED_PORT^0; 5 sbit P0_1 = LED_PORT^1; 6 sbit P0_2 = LED_PORT^2; 7 sbit P0_3 = LED_PORT^3; 8 sbit P0_4 = LED_PORT^.. 阅读全文
posted @ 2013-12-22 15:37 Alimy 阅读(1193) 评论(0) 推荐(0)
摘要:Zhouzhi童鞋的作业,大家的思路差不多。。 1 #include 2 3 4 void delay(unsigned int var){ 5 while(var--); 6 } 7 void main(){ 8 char idx1,idx2; 9 unsigned char temp_P0 ;10 unsigned char Onthego ;11 unsigned char stack;12 temp_P0 = 0x00;13 stack = 0x00;14 for(idx1=7;idx1>=0;idx1--){15 ... 阅读全文
posted @ 2013-12-15 14:59 Alimy 阅读(431) 评论(0) 推荐(0)
摘要:KeilC51中测试可行,其他编译环境没有测试过就不做保证能不能用了。。1:在c语言中实现2进制数字的表示原始出处:http://hi.baidu.com/chenjihuang/item/11df5bb78d7a2276254b09e0原作者:被遗忘的废墟我们知道在汇编语言中,16进制的数可以表示为0FH,2进制的数可以表示为00001111B在c语言中,16进制的数可以表示为0x0F,但是无法直接表示00001111二进制数。可以用这个宏来代替,可以用在单片机给IO口赋值什么的,一目了然。。注意:x必须填满八位(一个字节),而且必须是常数不要填变量,宏中的“1x”的‘1’不能去掉,否则就有 阅读全文
posted @ 2013-06-28 15:42 Alimy 阅读(878) 评论(0) 推荐(1)
摘要:---恢复内容开始---大端与小端:1: 51单片机的指令集是大端的。example011 ;汇编代码:2 lcall 0x34563 ;对应机器码4 12 34 562: KeilC51编译器数据结构是大端的。example02 1 void main(void){ 2 long i = 0x12345678; 3 return; 4 } 5 6 //对应反汇编代码 7 /* 8 * mov A, #0x12 9 * mov 0x61, A10 * mov A, #0x3411 * mov 0x62, A12 * mov A, #0x5613 * mov ... 阅读全文
posted @ 2013-03-23 10:23 Alimy 阅读(432) 评论(0) 推荐(1)
摘要:如何解决keil c51编译器不支持匿名结构体的问题。。。-----------------不使用匿名结构体撒。。人家都说了不支持。。。To01: 测试代码。。 阅读全文
posted @ 2013-03-13 17:29 Alimy 阅读(752) 评论(0) 推荐(0)
摘要:当 51单片机工作模式寄存器 设置为 TMOD.M1M0 = 00 工作方式0 TMOD.C/T = 0 定时工作模式定时器/计数器0 将工作在 13bit 定时器模式。。与想当然的 13 bit = 5bit(TH0 ) + 8bit (TL0)的搞法不同的是。。(谁让你不看规格)13bit = 8bit(TH0) + 5bit(TL0) TL0的高三位没有用到。。假设定时器工作频率为2M,那么中断服务程序定长1ms的写法应该是。。 1 /* 2 * @Func: void TIMER0_IRQHandler(void) interrupt 1 3 * @Usage: ... 阅读全文
posted @ 2013-03-07 11:41 Alimy 阅读(949) 评论(0) 推荐(1)
摘要:问题提出:本来是想看看,MCS-51在进中断前会不会将psw入栈保存起来,查了下指令集,却发现:ret ((sp))-->PCH (sp)-1-->sp ((sp))-->PCL (sp)-1-->spreti ((sp))-->PCH (sp)-1-->sp ((sp))-->PCL (sp)-1-->sp发现reti和ret 做了同样的事情 --- 出栈PC指针,都没有将psw出栈的过程,所以系统在响应中断前,只将程序指针PC保存起来 psw却没有保护起来。所以,以后在中断服务程序中首先应该把psw保存在栈中或者寄存器中,在中断服务程序结束前 阅读全文
posted @ 2013-02-22 09:57 Alimy 阅读(3271) 评论(0) 推荐(0)