- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.
..
1基础部分
1.1设计任务
按照给定电路原理图,进行单片机最小系统的焊接:包括单片机、开关、插排、复位电路和晶振电路,正确焊接后,电路可以进行程序的下载。设计并焊接简单外围电路,包括:LED 与独立按键、蜂鸣器、双位数码管。?
使用汇编或 C 语言编写程序,使本电路完成以下功能:?
LED 跑马灯、双位数码管对应计数?,方式一(始终一个方向) 、方式(左右循环),可准确确定周期 T。每次第一个 LED 亮起的时候蜂鸣器响一声(t 秒)提示?。
按键控制:一共三个按键分别实现以下功能?
暂停:检测该按键有效按下后,LED 和数码管暂停,再次检测按键按下后,继续执行当前循环;?
复位:检测该按键有效按下后,LED 和数码管归零重新开始以当前模式循环?;
模式转换:正常运行状态,检测该按键有效按下后,数码管显示不变,LED 显示从当前方式转换成另一方式继续执行。
1.2设计思路
先设计好外围电路模块的原理图。根据自己的板子的实际情况安排布线并依据原理图进行焊接。再设计程序流程图,分别编写简单程序调试各个外围电路是否可以正常工作。学习使用单片机程序开发环境,编译下载程序等。?
比如:单独的跑马灯;双位数码管按秒计数;蜂鸣器 1s 一响;按键控制 LED 点亮(8 个按键对应 8 个 LED)。设计程序运行的状态图以及程序流程图,编写程序代码并调试。
1.3原理图
1.4PCB图
器件名称
实物图片
数量
器件名称
实物图片
数量
单片机STCS90C52RC
1
四角按键开关
4
单排插针(4针)
1
六角自锁开关
1
30pF瓷片电容
2
10KΩ电阻
1
晶振11.0592M
1
导线
若干
10uf电解电容
1
万能版
1
编程接口板
1
杜邦线
4
40脚IC座
1
LED(红色)
8
双位数码管
1
三极管8050
3
1KΩ电阻
14
排阻
1
1.5器件清单
表1-1 器件清单(1)
1.6程序流程图
图 主程序流程图 图 数码管子程序
1.7程序代码
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code leds1[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f}; //P0口控制8位LED
uchar code leds2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,
0xef,0xf7,0xfb,0xfd};
sbit le1=P3^5; //左边数码管位选
sbit le2=P3^4; //右边数码管位选
sbit feng=P3^7; //蜂鸣器控制位
sbit key1=P2^0; //模式切换
sbit key2=P2^1; //暂停和开始
sbit key3=P2^2; //功能复位
uint ti,count,shi1,ge1,k;
uint flag=1;
void delay() //延时固定时间
{ int i,j;
for(i=500;i0;i--)
for(j=100;j0;j--);
}
void delayms(uint ms) //延时ms毫秒
{
int i,j;
for(i=ms;i0;i--)
for(j=110;j0;j--);
}
void keyscan()
{
if(key2==1)
{
delayms(10);
if(key2==1)
{
while(key2) ;
TR0=!TR0;
P2=0x00;
}
}
if(key1==1)
{
delayms(10);
if(key1==1)
{
while(key1) ;
flag=!flag; //flag=1为默认模式1,为0为模式2
P2=0x00;
}
}
if(key3==1)
{
delayms(10);
if(key3==1)
{
w
文档评论(0)