标题:
这个是学习51过程中非常经典的一些程序,AD09原理图与pcb,非常适合初学者
[打印本页]
作者:
LIUYONGFEI
时间:
2017-5-5 21:40
标题:
这个是学习51过程中非常经典的一些程序,AD09原理图与pcb,非常适合初学者
这个是学习51过程中非常经典的一些程序,,非常适合初学者
0.png
(49.29 KB, 下载次数: 39)
下载附件
2017-5-5 22:56 上传
AD09原理图与pcb:
0.png
(55.08 KB, 下载次数: 40)
下载附件
2017-5-5 22:57 上传
提取一个状态机按键程序:
#include <STC12C5A60S2.H>
sbit K_OUT4 = P2^7;
sbit K_OUT3 = P2^6;
sbit K_OUT2 = P2^5;
sbit K_OUT1 = P2^4;
sbit K_IN1 = P2^0;
sbit K_IN2 = P2^1;
sbit K_IN3 = P2^2;
sbit K_IN4 = P2^3;
bit KeySta = 1;
void UART_Sent(char dat);
void main()
{
bit backup = 1;
unsigned char cnt = 0;
K_OUT4 = 0;
K_IN1 = 1;
EA=1;
/*第一步:设置串口工作模式*/
SM0 = 0;
SM1 = 1;
/*第二步:设置波特率发生器*/
AUXR |= (1 << 0); //选择:独立波特率发生器
AUXR |= (1 << 2); //每一个时钟计数一次
BRT = 0xE6;
AUXR |= (1 << 4); //开启独立波特率发生器
TMOD = 0x01; //使用定时器0的模式1:即16位计数器,优点:可装载的值较多,计时可较长
TH0 = 0xF8;
TL0 = 0xCD;
ET0=1;
TR0=1;
while(1)
{
if(KeySta != backup)
{
if(backup == 0)
{
cnt++;
if(cnt >= 10)
{
cnt = 0;
}
UART_Sent(cnt+48);
}
backup = KeySta;
}
}
}
void UART_Sent(char dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
void timer_0() interrupt 1
{
static unsigned char keybuf =0xff;
TH0 = 0xF8;
TL0 = 0xCD;
keybuf = (keybuf <<1) |K_IN1;
if(keybuf == 0x00)
{
KeySta = 0;
}
else if(keybuf == 0xFF)
{
KeySta = 1;
}
else
{
}
}
复制代码
下载:
51初学者各个模块程序.zip
(625.45 KB, 下载次数: 19)
2017-5-5 21:38 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
wanwenzhang028
时间:
2017-5-5 23:31
谢谢分享!!!!!!!!
作者:
qtopen
时间:
2017-5-6 08:49
谢谢分享!!收下了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1