p30控制喇叭c语言程序,《C语言编程实训》实训指导书三.doc

6 -

《C语言编程实训》

实训指导书三

适应专业:应用电子技术

广州康大职业技术学院自动化系

二0 一0年十一月

《C语言编程实训》

实训三八红旗手 单片机时钟程序设计

一、实训目的

1.掌握LED显示、键盘、定时/计数器综合应用程序的设计方法;

2.熟悉运用PROTEUS ISIS仿真调试单片机时钟程序的基本操作。

二、实训设施

PROTEUS计算机软件、PC机

三、实训要求

1.使用C语言编程,实现由单片机控制LED数码管显示时、分、秒的电子时钟,并具有用按键修改时钟参数的功能(采用2个按键)。

2.写出1000字以上的实训总结报告(内容以单片机时钟程序设计及源程序清单为主)。

四、实训内容

1.设计单片机时钟硬件系统

(1)学习单片机时钟工作原理

① 6位七段LED显示器(共阳极数码管), 采用动态扫描的方法进行显示, 即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短(不超过10毫秒),且人眼具有视觉残留效应,因此看起来与全部显示器持续点亮效果完全一样。

② 动态扫描时, 单片机芯片的P1口(P1.0~P1.5)输出段控信号, P3口(P3.0~P3.5)输出位控信号, 当两口为高电平时,该字段就不显示;当两口为低电平时,就显示相应字段。

③ 时间校正的操作方法:两按键串联,接在单片机芯片的P2.4与P2.5之间, 按下按键K1,可调整“分”; 按下按键K2,可调整“时”。

(2)使用PROTEL绘制电路原理图

·从PROTEUS库中选取以下元器件:

7SEG-MPX2-CA(或7SEG-MPX6-CA):六位数码管

AT89C51:单片机

BUTTON:按键

CAP、CAP-ELEC:电容、电解电容

CRYSTAL:晶振

RES:电阻

·放置元器件

·放置电源和地(终端)

·连线

·元器件属性设置

·电气检测

绘制完全的电路原理如图3-1所示

图3-1 单片机电子时钟电路原理图

2.学习识读单片机时钟程序

程序清单:

#include

#define uint unsigned int

#define uchar unsigned char

void keys();

sbit P30=P3^0;

sbit P31=P3^1;

sbit P32=P3^2;

sbit P33=P3^3;

sbit P34=P3^4;

sbit P35=P3^5;

sbit key=P2^4;

sbit key1=P2^5;

uchar code table[10]={

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

uchar hour=23,minute=59,second=0;

uint a,b,dd,ee,gg,hh;

static char count=0;

void delay(uint z)

{

int x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void int1() interrupt 1 using 2

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

}

void main()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

for(;;)

{

a=hour/10;

b=hour%10;

dd=minute/10;

ee=minute%10;

gg=second/10;

hh=second%10;

keys();

P3=0X00;

P1=table[a];

P30=1;

delay(1);

P3=0X00;

P1=table[b];

P31=1;

delay(1);

P3=0X00;

P1=table[dd];

P32=1;

delay(1);

P3=0X00;

P1=table[ee];

P33=1;

de

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值