低电频亮 1111(高位) 1110(低位) 0xFE 只亮P0.0一个,低位开始算灯(右边为第一个灯)
11脚是控制端,8421码, 点亮,逐个点亮,给0;灭,逐个灭,给1
74HC02有四路2输入或非门 WR与GND相连输出低电平
C B A 低
0 0 0 Y0
0 0 1 Y1
0 1 0 Y2
0 1 1 Y3
1 0 0 Y4 ~或非门Y4C 低
1 0 1 Y5
1 1 0 Y6
1 1 1 Y7
led的代码:
#include“单片机型号.H”
#include"intrins.h "
#define uint unsigned int //0-65535
#define uchar unsigned char //0-255
void main()
{
while(1)
{
P2=((P2&0x1f)|0x80);为什么要与,因为要保证P2^7,P2^6,P2^5为0,
//Y4为0 u6锁存器开;
P0=0x55;//2 4 6 8位的亮;
P2&=0x1f;//关闭锁存器;
}
}
如何新建工程建立H文件
打开keil 5 先建立文件夹,后打开软件-打开下载stc-ISP-keil仿真设置-添加型号到keil下载的地方 管理员身份运行keil
project-close project-new uvision project-在建立的文件夹打tect-选择型号-File里新建NEW-保存xxxx.c文件-在Source group添加
.H大写,管理员身份运行STC-ISP软件,头文件。单片机系列STC15Wxx/STC15Fxx,后复制STC15F2K60S2,保存文件,ctrl+v粘贴,加.H就保存好了
延时与数组
软件延时计算器 有需要的延时,订多少都可以
100us 1000us=1ms 1000ms=1s
for循环(次数的循环) 在循环语序i,j下, 定义z unsigned int z;
for(z=30;z>0;z--) 把循环放进for{}中 在主函数调用Delay100us()
有一种方法 带参函数void Delay100us(unsigned int m) for(z=m;z>0;z--)
在主函数调用Delay100us(100) 10ms,改变数字
数组
0开始算
做流水灯
数码管
先打开段选,数据,关闭锁存器,打开位选,数据,关闭
U6 U7段选(a b c d e f g dp) U8位选(com1) U9
573锁存器()共阳
1.打开数码管的段选控制,必须要使Y7C为高电平1;(打开)
2.送数码管段选数据,到P0口
3.关闭数码管段选控制,使Y7C为0;
4.打开位选控制,使Y6C为1;
5.送位选数据到P0口
6.关闭数码管位选,使Y6C为0
dp g f e d c b a
低电平亮0
0xc0 0xf9 0xa4 0xb0 0x99 0x92 0x82 0xf8 0x80 0x90(0 1 2 3 4 5 6 7 8 9)