/*********************************************************************/
// BH1415F调频台控制C程序
// 使用keil C51
// 2005.3.16通过调试
/*********************************************************************/
//使用AT89C52单片机,12MHZ晶振,用共阳四位LED数码管
//P0口输出段码,P2口扫描
//#pragma src(d:\aa.asm)
#include "reg52.h"
#include "intrins.h" //_nop_();延时函数用
#define Disdata P0 //段码输出口
#define discan P2 //扫描口
#define keyio P1 //键盘接口
#define uchar unsigned char
#define uint unsigned int
sbit DA=P3^0; //数据输出
sbit CK=P3^1; //时钟
sbit CE=P3^2; //片选
sbit DIN=P0^7; //LED小数点控制
sbit monolamp=P3^3; //立体声指示灯
uint h; //延时参量
//
//扫描段码表
uchar code dis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};
/* 共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" */
uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; // 列扫描控制字
uint data f_data={0x00},f_data1; // 频率数据,数据运算时暂存用
uchar data display[4]={0x00,0x00,0x00,0x00}; //显示单元数据,共4个数据
uchar bdata condata=0x08; //1415控制字高5位,开机为立体声状态
sbit mono=condata^3; //单声道/立体声控制位
uchar data concommand[2],keytemp; //合成后的2个控制字,键值存放
//
/**********************************************************************/
//
//
/***********11微秒延时函数**********/
//
void delay(uint t)
{
for(;t>0;t--);
}
//
/***********LED显示动态扫描函数**********/
scan()
{
char k;
for(k=0;k<4;k++) //四位LED扫描控制
{
Disdata=dis_7[display[k]];
if(k==1){DIN=0;}
discan=scan_con[k];delay(90);discan=0xff;
}
}
//
//
/***********频率数据转换为显示用BCD码函数**********/
turn_bcd()
{
display[3]=f_data/1000;if(display[3]==0){display[3]=10;}//最高位为0时不显示
f_data1=f_data%1000;
display[2]=f_data1/100;//求显示十位数
f_data1=f_data1%100;
display[1]=f_data1/10; //求显示个位数
display[0]=f_data1%10; //求显示小数位
}
/***********控制字合成函数**********/
command()
{
concommand[1]=f_data/256;
concommand[0]=f_data%256;
concommand[1]=concommand[1]+condata;
}
/***********写入1个字节函数**********/
write(uchar val)
{
uchar i;
CE=1;
for(i=8;i>0;i--)
{
DA=val&0x01;//
_nop_();_nop_();_nop_();_nop_();
CK=1;
_nop_();_nop_();_nop_();_nop_();
CK=0;
val=val/2;
}
CE=0;
}
/***********控制字写入1415函数**********/
w_1415()
{
write(concommand[0]);
write(concommand[1]);
}
//
//*************频率涮新*****************//
fup()
{
turn_bcd(); //显示BCD码转换
command(); //合成控制字
w_1415(); //写入1415
}
//
/***********查键函数**********/
read_key()
{
keyio=0xf0;
keytemp=(~keyio)&0xf0;
if(keytemp!=0)
{
keytemp=keyio;
keyio=0x0f;
keytemp=keytemp|keyio;
while(((~keyio)&0x0f)!=0); //
switch(keytemp)
{
case 238:{f_data++;if(f_data>1099){f_data=1099;}fup();break;}//加0.1MHZ
case 222:{f_data--;if(f_data<800){f_data=800;}fup();break;} //减0.1MHZ
case 190:{mono=~mono;if(mono){monolamp=0;}else monolamp=1;fup();break;}//立体声/单声道转换
case 126:{f_data=1090;fup();break;}//预置109.0MHZ
case 237:{f_data=1070;fup();break;}//预置107.0MHZ
case 221:{f_data=1050;fup();break;}//预置105.0MHZ
case 189:{f_data=1030;fup();break;}//预置103.0MHZ
case 125:{f_data=1000;fup();break;}//预置100.0MHZ
case 235:{f_data=970;fup();break;}//预置97.0MHZ
case 219:{f_data=950;fup();break;}//预置95.0MHZ
case 187:{f_data=930;fup();break;}//预置93.0MHZ
case 123:{f_data=900;fup();break;}//预置90.0MHZ
case 231:{f_data=870;fup();break;}//预置87.0MHZ
case 215:{f_data=850;fup();break;}//预置85.0MHZ
case 183:{f_data=830;fup();break;}//预置83.0MHZ
case 119:{f_data=800;fup();break;}//预置80.0MHZ
default:{break;}//
}
}
keyio=0xff;
}
//
//
//
/**************主函数****************/
main()
{
Disdata=0xff; //初始化端口
discan=0xff;
keyio=0xff;
DA=0; //bh1415禁止
CK=0; //
CE=0; //
for(h=0;h<4;h++){display[h]=8;}//开机显示"8888"
for(h=0;h<500;h++)
{scan();} //开机显示"8888"2秒
f_data=1000; //预置1000MHZ
monolamp=0; //开机立体声灯点亮
fup(); //频率送入BH1415
while(1)
{
read_key(); //查键按纽
scan(); //显示4ms
}
}
//
//*********************结束**************************//
没有合适的资源?快使用搜索试试~ 我知道了~
51系列单片机设计实例:光盘
共202个文件
lst:33个
bak:30个
hex:24个
需积分: 9 16 下载量 9 浏览量
2009-09-23
15:50:59
上传
评论 1
收藏 493KB RAR 举报
温馨提示
51系列单片机设计实例:光盘51系列单片机设计实例:光盘51系列单片机设计实例:光盘51系列单片机设计实例:光盘51系列单片机设计实例:光盘51系列单片机设计实例:光盘51系列单片机设计实例:光盘51系列单片机设计实例:光盘51系列单片机设计实例:光盘
资源推荐
资源详情
资源评论
收起资源包目录
51系列单片机设计实例:光盘 (202个子文件)
8vod 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
12Load.asm 74KB
13.asm 25KB
11.ASM 19KB
7.asm 15KB
2.asm 14KB
6T.ASM 14KB
5.ASM 13KB
8.asm 13KB
6R.asm 12KB
10.ASM 12KB
3.asm 10KB
12.ASM 8KB
9T.asm 8KB
4.asm 7KB
9R.asm 7KB
1.asm 4KB
13.BAK 25KB
11.BAK 19KB
7.BAK 15KB
2.BAK 14KB
6T.BAK 14KB
5.BAK 13KB
8.BAK 13KB
6R.BAK 12KB
10.BAK 12KB
3.BAK 10KB
12.BAK 8KB
9T.BAK 8KB
4.BAK 7KB
9R.BAK 7KB
remote_Uv2.Bak 2KB
LEDDISP_Uv2.Bak 2KB
incept_Uv2.Bak 2KB
send_Uv2.Bak 2KB
8vod_Uv2.Bak 2KB
bh1415_Uv2.Bak 2KB
lamp_Uv2.Bak 2KB
time_Uv2.Bak 2KB
time_Opt.Bak 1KB
bh1415_Opt.Bak 1KB
remote_Opt.Bak 1KB
LEDDISP_Opt.Bak 1KB
8vod_Opt.Bak 1KB
send_Opt.Bak 1KB
incept_Opt.Bak 1KB
lamp_Opt.Bak 1022B
bh1415 9KB
12LOAD.BIN 4KB
13.BIN 2KB
11.BIN 874B
7.BIN 765B
6T.BIN 501B
2.BIN 484B
8.BIN 482B
5.BIN 417B
12.BIN 416B
10.BIN 400B
6R.BIN 377B
3.BIN 375B
9T.BIN 299B
9R.BIN 257B
4.BIN 247B
1.BIN 208B
bh1415.c 5KB
time.c 4KB
remote.c 3KB
send.c 3KB
8vod.c 2KB
incept.c 2KB
LEDDISP.C 2KB
display.c 2KB
lamp1.c 2KB
单片机与嵌入式系统图书书目--2005年第3期.doc 1000KB
readme.doc 27KB
12LOAD.HEX 9KB
13.HEX 5KB
bh1415.hex 3KB
11.HEX 2KB
time.hex 2KB
remote.hex 2KB
7.HEX 2KB
incept.hex 2KB
6T.HEX 1KB
2.HEX 1KB
8.HEX 1KB
8vod.hex 1KB
send.hex 1KB
LEDDISP.hex 1KB
5.HEX 1KB
12.HEX 1015B
10.HEX 983B
6R.HEX 924B
共 202 条
- 1
- 2
- 3
资源评论
shenyuanzhao
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功