淘宝上山东芯腾电子的店买了一块55元(运费不含)的学习板来玩。因为本科的时候没报这个方向,但是想试试看搞板子是什么一种感觉,于是自己花钱去弄了来。外加从图书馆搞了两本书对着学。
电路是现成的,主要是怕自己焊又没人指导搞不起来,花太多时间。
51单片机开发初学感觉不是很难,它芯片有很多很多脚,然后其中8个脚对应p0输出端口,8个对应p1,以此。因为一个字节是8位嘛,然后它就按照这8位的具体内容,往脚上送电,1代表没电0代表有电(反过来的……),在汇编程序里也就
mov p0, #0
p0上如果连着led,那么8个led就全亮了。如果
mov p0, #0xf0
就是其中四个亮了。
就是这么简单的mov语句而已,电路上看网上说直接连led同时串联1k电阻即可,引脚的输出的电可以直接推动led,不用搞三极管啥的。
烧程序它有一个宏晶公司的烧录程序,通过串口烧程序。板子上也都弄好了什么串口转usb的部分,usb连了板子装了驱动电脑上就能识别出一个com口。要不然现在笔记本电脑都没有串口位置了(怀疑这年头台式机可能也没)
然后接下来就玩了稍微复杂一些的,64个led组成的方阵来显示汉字。方法虽然说不是很难不过中途掉坑里了花了一点时间。因为它64个点阵实际上才接16根腿,8根表示行8根表示列,然后我上网找了一下方法说是一次显示一行,显示出一行后延时一下,然后显示下一行。最后实现也是这样做,所说的“坑”是指显示一行跳到下一行之前,没有把显示的内容清空(全灭),这样效果很恶心……还有就是什么时候0是亮什么时候0是灭这个有点混淆。
暂时玩过的部分还有一个就是字幕滚动,在上面那个的基础上使用定时器中断,让显示的内容每次移动一点。技巧是把字转个90度,然后每次从最上方减少一行,最下方补充一行,这样整体就移动了一行。
没玩过这种cpu只执行我的代码、完全对裸机编程的。感觉比较新鲜