AVR 1-99秒1602启停显示

发布者:WhisperingLight最新更新时间:2015-06-23 来源: 51hei关键字:AVR  1-99秒1602  启停显示 手机看文章 扫描二维码
随时随地手机看文章
#include
#include
#define uchar unsigned char
#define uint unsigned int
uint sec=0;           //秒变量
uint cnt=0;          //计数变量
uint on=0;            //启停状态变量
uchar str1[16]="The time:   sec";          //这里所有字符串长度一定 ,以便消除不确定显示码指针跑偏导致显示异常
uchar start[16]="     start     ";
uchar stop[16]="      stop     ";
#include "1602.h"
void port_init()
{
  PORTA=0xff;
  DDRA=0xff;
  PORTB=0xff;
  DDRB=0xff;
  PORTD=0xff;
  DDRD=0xff;
}
void init()
{
  MCUCR=0x0a;
  GICR=0xc0;
  SREG=0x80;
}

void time0_init()
{
  TCCR0=0x03;
  TIMSK=0x01;
  TCNT0=0x83;
}
void showtime(uint time)
{
  displayonechar(10,0,(time/10)+48);
  displayonechar(11,0,(time%10)+48);
}

 
void main()
{
  
  port_init();
  //1602设备初始化
   delay(15);
writecmd(0x38);
delay(5);
writecmd(0x38);
delay(5);
writecmd(0x38);
writecmd(0x80);
writecmd(0x01);
writecmd(0x06);
writecmd(0x0c);
delay(500);
  //初始化结束

      init();
  time0_init();
  while(1)
  { 
   
   displaychar(0,0,str1);
   showtime(sec);                //显示时间值(秒)  重复覆盖这2位 达到显示效果
   delay(20);
  }
}

#pragma vector = 0x24            //定时器0 溢出 (定时秒)
__interrupt void time0()
{
 TCNT0=0x83;
 if(on==1)                 //启动标志
 {
 cnt++;
 if(cnt==1000)
 {
   sec++;cnt=0;
 }
 if(sec>100)sec=0;
}
}
#pragma vector = 0x04           //INT0中断服务程序
__interrupt void int0()
{
  on=1;
 writecmd(0x01);                 // 清屏
 displaychar(0,1,start);         //显示启动字符
 displaychar(0,0,str1);          //显示原来字符
   showtime(sec);
 
}
#pragma vector = 0x08          //INT1中断服务程序
__interrupt void int1()
{
  on=0;
  writecmd(0x01);                 //清屏
  displaychar(0,1,stop);          //显示停止字符
  displaychar(0,0,str1);          //显示原来字符
   showtime(sec);
  
}
关键字:AVR  1-99秒1602  启停显示 引用地址:AVR 1-99秒1602启停显示

上一篇:基于AVR单片机的上下课自动打铃系统的实现
下一篇:AVR单片机PCF8591AD-DA实验

推荐阅读最新更新时间:2024-03-16 14:04

基于AVR及MTURTU的无线电遥测系统设计
一、引言 基于AVR单片机及专用MODEM芯片的MTU(Master Terminal Unit中心调度机)、RTU无线电遥测系统。 分散地分布在全市的管网监测点上的远端RTU(系统可带256个RTU)采集数据,进行数据处理后通过无线电台向中心调度端发送数据,中心调度端接收到数据后进行数据处理,数据存储,并送给模拟屏显示。 二、设计思想 原有系统的使用中,主要存在以下几个问题:1. 无线通信波特率低(300bps),误码率高,巡测速度慢,最多带32个RTU终端;2. 当某一远程RTU端的无线电台一直处于长时间误发射状态时(简称“长发” )一直占用系统频点,由于系统共用一组无线电频点,这将使系统其他所有电台无法通信,整个系统瘫
[单片机]
AVR单片机的DS1302操作程序
file://---by 变成浪子 //mega16 7.3728MHz石英晶体 iCCavr6.31a //相关定义: #define uint unsigned int #define uchar unsigned char #define DS1302_RST 0 //pc0 #define DS1302_SDA 1 //pc1 #define DS1302_SCLK 6 //pc6 //ds1302相关 //DS1302_RST=1 #define Set_DS1302_RST() PORTC|=1 #define Clr_DS1302_RST() PORTC&=~(1 #d
[嵌入式]
畅学AVR多功能实验箱串口通讯测试
简介:硬件准备:1P杜邦线4根,串口线1根 程序下载:正确下载对应的测试hex 软件准备:打开串口调试助手软件,为了大家测试方便,在测试hex文件夹中放了一个串口调试助手软件,直接打开就可以了。 (友情提示:笔记本无串口需要使用USB-232串口线,晶振使用12兆晶振 ) 接线说明:用2根1P杜邦线连接核心板PD0~PD1口和底板JP75,分别为: PD0-RX1,PD1-TX1。用2根1P杜邦线将底板JP71的PCR1接底板JP8的RX,底板JP71的PCT1接 底板JP8的TX (串口线接DB1串口母座) 跳线说明:无 具体接法: PD0-RX1,PD1-TX1。 具体接法:底板JP71的PCR1接 底板JP8
[单片机]
畅学<font color='red'>AVR</font>多功能实验箱串口通讯测试
AVR 的 IO 端口特性与应用
AVR的IO端口特性分析: 分析IO引脚Pxn。DDRxn 只有为1时,可控单向开关才工作,PORTxn 的数值才能通过可控单向开送到 Pxn. 结论:DDRxn=1 时,为输出状态。输出值等于PORTxn。所以,DDRxn 为方向寄存器。PORTxn 为数据寄存器。 分析上拉电阻。E的电位为0时,即D为1时,上拉电阻有效。 从与门的输入分析,只有以下的条件同时满足时,上拉电阻才有效 1、PUD 为0 2、DDxn 为0 3、PORTxn 为1 结论是:只有DDRxn = 0 即管脚定义为输入状态,并且 PORTxn=1, 而且UPD设置为0时,上拉电阻才生效。 分析 Pxn 及 SLEEP。只有当 S
[单片机]
<font color='red'>AVR</font> 的 IO 端口特性与应用
AVR单片机 ds18b20 gcc 源程序
//mega8 7.3728M Hz g CC 编译通过,_delay_us(us) _delay_ms(ms)调用库函数 //初始化把dq设置为输出 #define ds18b20_dq PC5 #define set_ds18b20_dq_ddr() DDRC|=1 ds18b20_dq #define set_ds18b20_dq() PORTC|=1 ds18b20_dq #define clr_ds18b20_dq() PORTC&=~(1 ds18b20_dq) #define clr_ds18b20_dq_ddr() DDRC&=~(1 ds18b20_dq) #define in_ds18b20_dq() PIN
[单片机]
AVR单片机的CAN总线分析仪设计
引言   国内基于CAN总线的工程应用也越来越多,但是在CAN现场总线产品开发前期和后期测试中缺乏有效的现场监测和排错手段,从而延长了开发周期,增加了开发成本。同时,国内CAN总线教学实验也同样缺乏成本低,功能强,操作简单的CAN分析仪器。   目前CAN总线的监测主要是通过CAN适配卡与计算机相连,利用计算机软件来分析总线状况。高端CAN适配卡价格高昂,而低端CAN适配卡如CAN转232卡,由于232总线传输速度有限,很难做到准确监测。另外,计算机也不便于在现场进行监测。本文设计了一种造价低廉、操作简单的便携CAN总线分析仪,能够适应各种总线传输速度。 1 CAN分析仪的组成和功能   主要由4个部分组成:MCU、液晶
[单片机]
<font color='red'>AVR</font>单片机的CAN总线分析仪设计
AVR单片机三路PWM程序+仿真电路
#include mega8.h #include delay.h #define key1 PINC.0 #define key2 PINC.1 #define key3 PINC.2 #define key4 PINC.3 #define key5 PINC.4 #define key6 PINC.5 void main(void) { unsigned char a=0; unsigned char b=0; unsigned char c=0; PORTB=0x00; DDRB=0xFF; PORTC=0xff; DDRC=0x00; PORTD=0x00; DDRD=0x00; TCC
[单片机]
<font color='red'>AVR</font>单片机三路PWM程序+仿真电路
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved