这里记录一些我的新玩具:51单片机
的基础常识,作为初学者,下文必然是错误百出。
很久没更新博客了,毕竟很久没写程序了。数学类的嵌套的定义又太多,很不好写。
新玩具
这次淘宝买的新玩具是:HC6800-ES V2.0 开发版,内部单片机是STC89C52。见下图
作为小白看了一下视频,但是呢,感觉视频什么的太慢,还是看书看手册来的爽。安装好单片机版C语言的IDE Keil4 以及烧录软件之后,装一下开发版驱动,就可以在不知道单片机原理的情况下轻松的控制单片机了。例如什么 LED灯闪烁,跑马灯,等等很基础的程序。
下面是单片机的管脚图和说明:
从图上看知道P0,P1,P2,P3是重要的I/O口,例如我们把P2接到LED灯,那么给低电平0,就可以使灯亮。还有P0,P1不仅可以作为I/O口,还可以作为地址,计时器、计数器来用。还有P3,等等。由于我用的是开发版,每个口接什么基本上已经固定了,用的时候查相应的官方资料就行了。它也提供了很多程序例子,因此还是很好掌握的,只是要记点东西才能灵活操作它。
HC6800-ES-VS2.0 常见管脚接法。
- P2口8个位接了8个LED灯,至0灯亮。
- P1.5接了蜂鸣器。循环至0至1发声。
- P3.0 ~ P3.3 接了独立键盘(不过开发版上竟然接反了K1和K2),使用按键的时候要软件消除抖动,一般延迟10ms来完成。
- 通过P1的数据,来判断矩阵键盘按的键。(见下图)
- 数码管使用P0, 通过 LSA=P2.2, LSB=P2.3, LSB=P2.4 的0-1指来控制显示的地方。
- 常用定时器和中断标程。
1602 液晶显示
这个虽然很复杂,但是生产该显示屏的会提供lcd.h
和lcd.c
然后我们只要先初始化LCD:LcdInit()
再执行字节输出函数:LcdWriteData(char c)
即可。
程序示例
程序功能: 按下k1键LED跑马灯,K2蜂鸣器发生,K3数码管显示1-8。由于不会中断,所以跑马灯写的很挫。
1 | #include <reg52.h> |