打印
[AVR单片机]

proteus实现3X4键盘模拟,请指教

[复制链接]
1876|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shencai555|  楼主 | 2009-12-18 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 shencai555 于 2009-12-18 14:05 编辑

file:///e:/ppp.jpg 这是我画的图,但在运行时发现有电平冲突,请指教


代码(ICCAVR7.14)
//ICC-AVR application builder : 2009-12-14 15:17:18
// Target : M8
// Crystal: 6.0000Mhz
#include <iom8v.h>
#include <macros.h>
unsigned char key;
void port_init(void)
{
PORTB = 0x00;
DDRB  = 0x00;
PORTC = 0xf8; //m103 output only
DDRC  = 0x07;//端口C的低三位输出0,配合74LS20产生中断
PORTD = 0xF0;
DDRD  = 0xF0;//端口D的高四位输出1,配合74LS20产生中断
}
#pragma interrupt_handler int0_isr:iv_INT0
void int0_isr(void)
{
CLI();
DDRC&=0xf8;//端口C的低三位输入
if(PINC&0x01)key=0;
else if(PINC&0x02)key=4;
else if(PINC&0x04)key=8;
DDRC|=0x07;
PORTC|=0x07;
DDRD&=0x0f;
PORTD&=0x0f;
if(PIND&0x10)key+=0;
else if(PIND&0x20)key+=1;
else if(PIND&0x40)key+=2;
else if(PIND&0x80)key+=3;
DDRC=0x07;
PORTC&=0xf8;
DDRD|=0xf0;
DDRD|=0xf0;
putchar(key);
SEI();
//external interupt on INT0
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
MCUCR = 0x02;
GICR  = 0x40;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
//UART0 initialize
// desired baud rate: 9600
// actual: baud rate:9615 (0.2%)
void uart0_init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = 0x26; //set baud rate lo
UBRRH = 0x00; //set baud rate hi
UCSRB = 0x98;
}
#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
void uart0_rx_isr(void)
{
putchar(UDR);
//uart has received a character in UDR
}
void putchar(unsigned char ch)
{
while(!(UCSRA & (1<<UDRE) ) );
UDR=ch;
}
void main(void)
{
init_devices();
uart0_init();
while(1);
}

不知道是原理图有问题还是程序有问题?或者都有问题?请知道的指教一下,谢谢!

相关帖子

沙发
shencai555|  楼主 | 2009-12-18 14:06 | 只看该作者
自己顶,不知道图片上传是不是没有成功?

使用特权

评论回复
板凳
god_like| | 2009-12-19 00:53 | 只看该作者
帮顶

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

36

帖子

0

粉丝