/*
* "Hello World" example.
*
* This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
* the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
* designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
* device in your system's hardware.
* The memory footprint of this hosted application is ~69 kbytes by default
* using the standard reference design.
*
* For a reduced footprint version of this template, and an explanation of how
* to reduce the memory footprint for a given application, see the
* "small_hello_world" template.
*
*/
#include <stdio.h>
#include<alt_types.h>
#include<system.h>
#include<altera_avalon_pio_regs.h>
#include<sys/alt_sys_wrappers.h>
#include<sys/alt_irq.h>
#include<io.h>
/*********************************************************************************************
按键开关start
********************************************************************************************/
volatile int key=0;
volatile int temp=0;
int init_keyup(void );
void ISR_keyup(void*contextup,alt_u32 idup);
void ISR_keyup(void*contextup,alt_u32 idup)
{
ALT_USLEEP(20000);
if(IORD_ALTERA_AVALON_PIO_DATA(PIO_POINTER_BASE))
{
key=key-1;
}
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_POINTER_BASE,0);
}
int init_keyup(void)
{
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_POINTER_BASE,1);
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_POINTER_BASE,1);
return alt_ic_isr_register (
PIO_POINTER_IRQ_INTERRUPT_CONTROLLER_ID,
PIO_POINTER_IRQ,
ISR_keyup,
NULL,
NULL
);
}
/*********************************************************************************************
按键开关start
********************************************************************************************/
int init_key(void );
void ISR_key(void*context,alt_u32 id);
void ISR_key(void*context,alt_u32 id)
{
ALT_USLEEP(20000);
if(IORD_ALTERA_AVALON_PIO_DATA(PIO_KEY_BASE))
{
key=key+1;
}
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_KEY_BASE,0);
}
int init_key(void)
{
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_KEY_BASE,1);
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_KEY_BASE,1);
return alt_ic_isr_register (
PIO_KEY_IRQ_INTERRUPT_CONTROLLER_ID,
PIO_KEY_IRQ,
ISR_key,
NULL,
NULL
);
}
/*********************************************************************************************
水银开关start
********************************************************************************************/
volatile int key_flag_2=0; //全局变量
volatile int temp_2 = 0;
alt_u8 sig=0;
alt_u8 sigcnt=0;
int init_key_2(void); //中断初始化函数
void ISR_key_2(void * context_2,alt_u32 id_2); //中断服务函数
void ISR_key_2(void * context_2,alt_u32 id_2) //中断服务函数
{
//usleep(20000); //延时二十毫秒,消抖
if(IORD_ALTERA_AVALON_PIO_DATA(PIO_SHAKEKEY_BASE))//!!!!!!!!!!
//输入仍然为1,执行后面语句
{
sig=1;
sigcnt++;//!!!!!!!!!!!!!!!!!!!!
}
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_SHAKEKEY_BASE, 0); //清出边沿捕获。。。
}
int init_key_2(void) //注册中断函数
{
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_SHAKEKEY_BASE, 1); //允许中断
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_SHAKEKEY_BASE, 1); //清出边沿捕获寄存器
return alt_ic_isr_register(
PIO_SHAKEKEY_IRQ_INTERRUPT_CONTROLLER_ID,
PIO_SHAKEKEY_IRQ,
ISR_key_2,
NULL,
NULL
); //注册成功,返回0,
//否则返回非0
}
/*********************************************************************************************
水银开关end
********************************************************************************************/
void displaysmall()
{
char small_1[36]=
{
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xFF,0x0F,0xFE,0x0F,0xFC,0x1F,
0xF8,0x3F,0xF0,0x1F,0xF8,0x0F,0xFC,0x0F,0xFE,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF/*"超小心",0*//* (18 X 16 ) */
};
alt_u8 i;
for(i=0;i<18;i++)
{
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE,small_1[i*2]);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_BASE,small_1[i*2+1]);
sig=0;
ALT_USLEEP(2000);
}
}
void displaybig()
{
char big[36]={
0x87,0xFF,0x03,0xFF,0x01,0xFE,0x01,0xFC,0x01,0xF8,
0x01,0xF0,0x01,0xE0,0x03,0xC0,0x07,0x80,0x03,0xC0,
0x01,0xE0,0x01,0xF0,0x01,0xF8,0x01,0xFC,0x01,0xFE,
0x03,0xFF,0x87,0xFF,0xFF,0xFF
};
/*"大心",0*/
/* (18 X 16 ) */
alt_u8 i;
for(i=0;i<18;i++)
{
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE,big[i*2]);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_BASE,big[i*2+1]);
sig=0;
ALT_USLEEP(2000);
}
}
void display1()
{
char hust[128]={0xF7,0xDF,0x07,0xC0,0xF7,0xDE,0xFF,0xFE,0xFF,0xFE,0xF7,0xDE,0x07,0xC0,0xF7,0xDF,/*"H"*/
0xF7,0xFF,0x07,0xE0,0xF7,0xDF,0xFF,0xDF,0xFF,0xDF,0xF7,0xDF,0x07,0xE0,0xF7,0xFF,/*"U"*/
0xFF,0xFF,0x8F,0xC7,0x77,0xDF,0xF7,0xDE,0xF7,0xDE,0xF7,0xDD,0xC7,0xE3,0xFF,0xFF,/*"S"*/
0xE7,0xFF,0xF7,0xFF,0xF7,0xDF,0x07,0xC0,0xF7,0xDF,0xF7,0xFF,0xE7,0xFF,0xFF,0xFF,/*"T"*/
0xFF,0xFF,0xFF,0xCF,0xFF,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"."*/
0xFF,0xFF,0x8F,0xC7,0x77,0xDF,0xF7,0xDE,0xF7,0xDE,0xF7,0xDD,0xC7,0xE3,0xFF,0xFF,/*"S"*/
0xE7,0xFF,0xF7,0xFF,0xF7,0xDF,0x07,0xC0,0xF7,0xDF,0xF7,0xFF,0xE7,0xFF,0xFF,0xFF,/*"T"*/
0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,0x07,0xC0,0xF7,0xDF,0xF7,0xDF,0xFF,0xFF,0xFF,0xFF/*"I"*/};
alt_u16 i;
for(i=0;i<64;i++)
{
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE,hust[i*2]);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_BASE,hust[i*2+1]);
sig=0;
ALT_USLEEP(900);
}
}
void displaymidautumn()
{
char midautumn[128]={
0xFF,0xFF,0xFF,0xFF,0x0F,0xF0,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0x00,0x00,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0x0F,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"中" (16 X 16 , 宋体 ) */
0xDB,0xF7,0xDB,0xF9,0x5B,0xFE,0x01,0x00,0xDC,0xFE,0xDD,0x79,0x7F,0xBF,0x8F,0xCF,0xFF,0xF1,0x00,0xFE,0xFF,0xF9,0x7F,0xE7,0xBF,0xDF,0xCF,0xBF,0xFF,0x7F,0xFF,0xFF,/*"秋" (16 X 16 , 宋体 ) */
0xFF,0xFE,0x1F,0xFF,0xFF,0xFF,0x00,0x00,0xEF,0xFF,0xDF,0x7E,0xF7,0xBE,0xF7,0xCE,0xF7,0xF2,0x00,0xFC,0xF7,0xF2,0xF7,0xCE,0x07,0xBE,0xFF,0x7E,0xFF,0x7E,0xFF,0xFF,/*"快" (16 X 16 , 宋体 ) */
0xFF,0xFF,0xFF,0xDF,0x1F,0xEF,0x63,0xF7,0x7B,0xF9,0x7B,0xBF,0x7B,0x7F,0x0B,0x80,0x7D,0xFF,0x7D,0xFF,0x7C,0xFD,0x7D,0xFB,0x7F,0xF7,0x7F,0xCF,0xFF,0xFF,0xFF,0xFF/*"乐" (16 X 16 , 宋体 ) */};
alt_u8 i;
for(i=0;i<64;i++)
{
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE,midautumn[i*2]);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_BASE,midautumn[i*2+1]);
sig=0;
ALT_USLEEP(900);
}
}
void guoqing()
{
char a[]={0xFF,0xFF,0x01,0x00,0xFD,0xBF,0xED,0xB7,0x6D,0xB7,0x6D,0xB7,0x6D,0xB7,0x0D,0xB0,0x6D,0xB7,0x6D,0xB5,0x6D,0xB3,0xED,0xB7,0xFD,0xBF,0x01,0x00,0xFF,0xFF,0xFF,0xFF,/*"国" */
0xFF,0xBF,0xFF,0xCF,0x03,0xF0,0xFB,0x7F,0x7B,0xBF,0x7B,0xDF,0x7B,0xE7,0x7A,0xF9,0x09,0xFE,0x7B,0xF9,0x7B,0xE7,0x7B,0xDF,0x7B,0xBF,0x7B,0x7F,0xFB,0x7F,0xFF,0xFF,/*"庆 */
0xFF,0xFE,0x1F,0xFF,0xFF,0xFF,0x00,0x00,0xEF,0xFF,0xDF,0x7E,0xF7,0xBE,0xF7,0xCE,0xF7,0xF2,0x00,0xFC,0xF7,0xF2,0xF7,0xCE,0x07,0xBE,0xFF,0x7E,0xFF,0x7E,0xFF,0xFF,/*"快" */
0xFF,0xFF,0xFF,0xDF,0x1F,0xEF,0x63,0xF7,0x7B,0xF9,0x7B,0xBF,0x7B,0x7F,0x0B,0x80,0x7D,0xFF,0x7D,0xFF,0x7C,0xFD,0x7D,0xFB,0x7F,0xF7,0x7F,0xCF,0xFF,0xFF,0xFF,0xFF};/*"乐"*/
alt_u8 i;
for(i=0;i<64;i++)
{
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE,a[i*2]);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_BASE,a[i*2+1]);
hello_world.rar_world
版权申诉
112 浏览量
2022-09-23
17:10:56
上传
评论
收藏 3KB RAR 举报
林当时
- 粉丝: 101
- 资源: 1万+