yl236数码管adc0809c语言

/
//
//   at89s52 adc0809 数码管显示
//   作者:倪建华 QQ:10772919
//   江苏省南通技师学院
//   2014.5.28
//

sfr P0=0x80; //数码管段码,adc0809数据端
sfr P2=0xa0; //控制脚
//数码管控制脚定义,wr,cs由0变1有效
sbit cs1=P2^0;//段码
sbit cs2=P2^1;//位码
sbit wr=P2^2;//时钟
//adc0809控制脚定义
sbit adc_eoc=P2^3;//转换完成=1,未完成=0
sbit adc_cs=P2^4;//可以直接接地=0
sbit adc_rd=P2^5;//oe=~(rd|cs)
sbit adc_wr=P2^6;//start=ale=~(wr|cs)
//变量定义
unsigned long int v;//电压值
unsigned char v2;//保存adc结果
//延时函数
void ys(unsigned  x)
{
 unsigned char i;
 while(x--)for(i=0;i<120;i++);
}
//adc转换函数
adc()
{
 //准备
 adc_eoc=1;//转换结束标志置位
 adc_rd=1;//禁止总线,防止影响数码管
 adc_wr=1;//禁止写
 adc_cs=0;//cs同时控制wr,rd,可以直接接地
 //启动转换  
 adc_wr=0;//设置通道号,ale高电平锁存通道地址,start上升沿复位
 adc_wr=1;//start下降沿开始转换
 while(adc_eoc==0);//转换结束为高电平
 adc_rd=0;//oe高电平允许输出
 //读取结果
 P0=0xff;//P0作为输入端
 v2=P0;//读取转换结果
 adc_rd=1;//禁止总线,防止影响数码管
}
//8位共阳数码管显示函数
xianshi()
{
 unsigned char code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};//段码
 unsigned char i;
 v=(unsigned long int)v2*5000/255;//一定要时行强制类型转换
 //从右扫描到左,从最低位开始扫描
 for(i=0;i<8;i++)
 {
  //位消陷
  P0=0xff;//关闭
  cs2=0;//位有效
  wr=0;wr=1;//时钟
  cs2=1;//位无效
  //送段码
  P0=DSY_CODE[v%10];//送段码
  cs1=0;//段有效
  wr=0;wr=1;//时钟
  cs1=1;//段无效
  //送位码
  P0=~(1<<i);//送位码
  cs2=0;//位有效
  wr=0;wr=1;//时钟
  cs2=1;//位无效
  v/=10;//将v缩小10倍,时间较长
  ys(1);
 }
}
//主函数
main()
{
 while(1)
 {
  adc();//adc转换
  xianshi();//数码管显示
 }
}

 

下面是仿真原理图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
yl-236单片机控制功能实训考核装置是一种用来测试学生在单片机控制方面的技能和能力的装置。点餐系统设计是为了让学生在实训过程中能够运用单片机控制功能实现一个简单的点餐系统。 该点餐系统设计的目的是模拟真实的餐厅点餐流程,让学生能够通过一个用户界面与系统进行交互,选择所需的菜品和数量,并在系统内完成点餐的整个过程。 在点餐系统设计中,首先需要设计一个用户界面,通过单片机的显示屏和按键进行实现。学生可以通过按键来浏览菜单,并通过特定的按键来选择菜品和数量。选择完成后,系统会将所选信息显示在屏幕上,供用户确认。 其次,需要设计一个菜单库,存储各个菜品的信息,包括名称、价格和库存等。当用户选择菜品时,系统会根据菜单库的信息进行验证,如果菜品库存充足,则将该菜品添加到订单中,并更新菜单库中的库存信息。 最后,需要设计一个订单管理系统,用来统计已下单的菜品和数量,并计算出总金额。学生可以通过界面查看当前订单的详情,并进行确认和提交操作。当订单确认后,系统会生成一个订单号,并将订单信息保存,以供后续查看和管理。 通过设计和实现这个点餐系统,学生可以学习和掌握单片机控制功能的应用,包括界面设计、按键操作、数据处理和存储等方面。同时,也可以提高学生的逻辑思维和解决问题的能力。这个点餐系统设计不仅是一个实训考核装置,更是一个培养学生实际应用能力的平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值