单片机简单应用系统制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
个人:单片机简单应用系统制作
1功能:单片机硬件和软件设计、制作和调试,实现单片机简单输出输入。
2电路原理图:
3源程序:
#include
#define uchar unsigned char //定义宏uchar为unsigned char
类型
#define uint unsigned int //定义宏uint为unsigned int类型sbit P1_0=P1^0; //位定义,定义变量P1_1为P1.0位uchar k; //利用宏uchar定义变量k为unsigned char 类型
uchar n=1; //利用宏uchar定义变量n,且赋值为1 void DelayMS(uint ms) //延时函数
{
uchar i;
while(ms--) for(i=0;i<120;i++);
}
//键扫描函数,利用宏uchar定义而不用void,表示该函数有返回值uchar Key_Scan( )
{
P0=0xFF; //使用P0作为输入口检测按键状态,需先送高电平k=P0; //读入P0口的按键状态,送入变量k中
if(k!= 0xFF) //如果k不等于0xFF,表示有按键按下
{
DelayMS(10); //延时10ms,作用是按键去抖动
if (k!=P0) k=0xFF;
while(P0!=0xFF); //如果k不等于P0,则k=0xFF }
return(k); //函数返回值为k值,调用本函数,则会返回k
值
}
void main( ) //主函数
{
P1=0x00; //初始化P1口,输出0x00,所有继电器断开while(1)
{
Key_Scan(); //调用Key_Scan函数,扫描键盘
PD: switch(k) //开关语句,判断k值,此处设置标号PD {
case 0xFE: P1=P1&0x01;
P1_0=~P1_0;
P3=0x06;
break;
case 0xFD: P1=n; //若k=0xFD,表示按下S2
n<<=1;
if(n==0) n=1;
P3=0x5B;
break;
case 0xFB: while(1) //若k=0xFB,表示按下S3
{
for(n=1;n!=0;n<<=1)
{
P1=n;
DelayMS(500);
P3=0x4F;
Key_Scan();
if (k!=0xFF) break;
}
if(k!=0xFF) goto PD;
}
break;
case 0xF7: P1=0x00;
P3=0x66;
}
}
}
4完成情况:结果除了按键出了点意外,一切都好。从画图,布线,打印,到腐蚀电路板,再到焊元件,一步步完成。
每步都有成果。然后调试,按照现象,检查电路,纠
正电路本身的错误,或由于虚焊、腐蚀过度、元器件
放置错误等。最后保证系统能运行…
Sch电路图
Pcb布线图
单片机简单应用系统电路板
单片机装载跑马程序的单个led跑马显示
电路板背后布置
说明:以上皆是个人原图,第一次制作电路板
扩展1;s51下载线制作方法
1功能:下载源程序到单片机内
2电路原理图;
3完成情况:没有做。