##江科大51单片机学习
1.智能仪表 2.实时工控 3.通讯设备 4.导航系统 5.家用电器
在加上单片机之后,该设备由单片机控制,从而变的更加智能。
1.Kell uVision5---用于底层代码编写
2.STC-ISP ---用于代码安装以及调试

可以看到它整个为STC89C52RC 40I-PDIP 40 后面的为出厂编码



对此有:VCC为正极 Gnd为负极---这个图我们是要去记忆的
我有一个记忆法:左为1,3往下增;右为 0,2--0下加,2上加。
在了解单片机的初始构造后,我们来进行第一次的编辑吧。
首先,我们了解一下,何为LED?

(画的图有点丑哈)
这里我们可以看到,中间的为D1-D8的LED灯就为下图所示

在左边我们可以看到,有P20-P27这些引脚,它们其实与MCU对应处相连接。
在LED灯左边的为VCC---正极。
那么,为何我要讲这个呢?
因为,LED其实是一个会发光的二极管,那么正极接正极时,负极接负极时则LED便可以发光;那么如果我们将一处接反了,则LED不可能再发光了。是的,这个就是我们的理论基础。
对单片机来说,是TTL型即 5V为正极 高电频 0V 为负极 低电频。
MCU(单片机)里面有CPU(中央处理器)--->寄存器--->驱动器--->引脚
寄存器(8位)里面可以存储二进制数,1可以被驱动器为高电频,0可以被驱动器为低电频;寄存器控制驱动器,来增大驱动能力。那么,我们想要二极管发光,只需要在我们想要发光的二极管所对应的寄存器的对应空间来设置为0,即可让对应的二极管发光,其它的二极管设置为1即可为熄灭。
Tips:CPU通过控制配置寄存器,来控制硬件电路来执行我们想要完成的功能。
首先在桌面创建一个文件夹称为Keilproject,然后再创建一个文件夹叫为1-1点亮一个LED。
具体细节,请观看Keil uVision的文件创建和使用
- #include
- //引入头文件,使得P2该寄存器被定义
-
- void main()
- {
- P2=0xFE;// 1111 1110
- while(1){
-
- }
- /*这里P2 的P大写,并且0x是16进制的前缀,不可省略。
- FE 转化为二进制为 1111 1110 可以看到最后一个为0
- 它对应着第一个LED灯,可以亮,其他是熄灭的状态。
- }
只要while中()的不为0,其他整数都为真。
当我们码完了这些行代码,便可以进行下一步保存文件。

最后记得调试一下再下载给单片机。
这个软件是SCT公司针对其产品开发使用的。
那么,我们来具体使用。
后面,单片机可以的LED区的第一个灯便开始闪亮。至此,我们的第一个MCU(单片机)的第一次开发便成功了。
(Tips:一定要确定好型号,否则,单片机与我们的主机握手失败,单片机不能下载代码)
基本创建流程和上图相同,便不再赘述。
我们来讲讲具体实现,相对于自己去写一个时缓代码,STC-ISP友好地提供了相应的代码,我们就不用再自己去造轮子了。
那么,我们来具体看看吧。

注意:8051指令集必须是STC-Y1,应为使用的型号适配这个。
- #include
- #include
//引入该头文件,为的是nop()合法化 - void Delay500ms() //@12.000MHz
- {
- unsigned char i, j, k;
-
- _nop_();
- i = 4;
- j = 205;
- k = 187;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
-
-
- void main(){
-
- while(1){
- P2=0xFE;
- Delay500ms();
- P2=0xFF;
- Delay500ms();
- }
- }
最后,按照以上的顺序再次执行即可看到反复闪烁的LED灯了。
最后,感谢你的观看,谢谢。