学习日志
姓名:唐小玲 日期:2018.7.19
今日学习任务
|
|
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) |
|
今日开发中出现的问题汇总
| 个人单片机这一部分知识点学的不好,掌握程度不够,编写程序的时候有很多问题,需要重新多加练习编写代码。 |
今日未解决问题
| 依旧不会独立编写难度稍高的代码。 |
今日开发收获
| 1.中断定义 CPU在执行一个程序时,对系统发生的某个事件(程序自身或外界的原因)作出的一种反应:CPU暂停正在执行的程序,保留现场后自动转去处理相应的事件,处理完该事件后,到适当的时候返回断点,继续完成被打断的程序。(如有必要,被中断的程序可以在后来某时间恢复,继续执行。) 2.与中断有关的寄存器 中断允许控制寄存器IE 定时器控制寄存器TCON 定时器工作方式控制寄存器TMOD 定时器初值赋予寄存器(TH0/TH1,TL0/TL1) 3.利用定时器及中断使三个数码管的数字以10ms的间隔增长 #include<reg51.h>
unsigned char code table[] = {0x3f, 0x06 , 0x5b , 0x4f , 0x66 , 0x6d, 0x7d , 0x07 , 0x7f , 0x6f };
int flag = 0, display_flag = 0;
void display(int m, int n) { if(display_flag % 3 == 0) { P2 = 0xfe; P1 = table[m]; } else if(display_flag % 3 == 1) { P2 = 0xfd; P1 = table[n / 10]; } else if(display_flag % 3 == 2) { P2 = 0xfb; P1 = table[n % 10]; } }
int main() { int miao = 0, num = 0; EA = 1; ET0 = 1; TMOD = 0x01; TH0 = (65535 - 5000) / 256; TL0 = (65535 - 5000) % 256; TR0 = 1;
while(1) { if(flag == 2) { num++; if(num == 100) { miao++; num = 0; if(miao == 10) { miao = 0; } } flag = 0; } display(miao, num); } return 0; }
void timer_0() interrupt 1 { TH0 = (65535 - 5000) / 256; TL0 = (65535 - 5000) % 256; display_flag++; flag++; } |
自我评价 (是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等) | 一些简单的练习能够做出,但是有一些小知识点遗忘了,不够熟练,需要多多实践练习! |
作业 | 无 |