/******************************************************************
* 实验名称:IO特性(MSP430F249)
*
* 实验说明:
* 通设置系统主时钟(MCLK=8Mhz ) 、辅助时钟(ACLK=8Mhz )、
* 子系统时钟(SMCLK=8Mhz )
* 编译软件:Embedded Workbench 5.3
*
*仿真软件:proteus7.7 sp 2
*
*作者:hameyou QQ:385434903
*
*日期:2010-7-31
******************************************************************/
#include <MSP430x24x.h>
#define uchar unsigned char
#define uint unsigned int
#define LCK_SET P1OUT|=0x10
#define LCK_CLR P1OUT&=~0x10
#define E_SET P1OUT|=0x20
#define E_CLR P1OUT&=~0x20
const uchar Num[]=
{0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"0",0*/
0x00,0x00,0x00,0x08,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,/*"1",1*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x20,0x20,0x10,0x08,0x04,0x42,0x7E,0x00,0x00,/*"2",2*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x20,0x18,0x20,0x40,0x40,0x42,0x22,0x1C,0x00,0x00,/*"3",3*/
0x00,0x00,0x00,0x20,0x30,0x28,0x24,0x24,0x22,0x22,0x7E,0x20,0x20,0x78,0x00,0x00,/*"4",4*/
0x00,0x00,0x00,0x7E,0x02,0x02,0x02,0x1A,0x26,0x40,0x40,0x42,0x22,0x1C,0x00,0x00,/*"5",5*/
0x00,0x00,0x00,0x38,0x24,0x02,0x02,0x1A,0x26,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"6",6*/
0x00,0x00,0x00,0x7E,0x22,0x22,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,/*"7",7*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,/*"8",8*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x64,0x58,0x40,0x40,0x24,0x1C,0x00,0x00,/*"9",9*/
};
void delayms(uint t)
{
uint i;
while(t--)
for(i=5000;i>0;i--);//进过参数的调整 1330
}
void SPI_Init()
{
P3SEL |= 0x11; // P3.0,4 USCI_A0 option select
UCA0CTL0 |= UCCKPH + UCMSB + UCMST + UCSYNC; // 3-pin, 8-bit SPI master
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 |= 0x02;
UCA0BR1 = 0;
UCA0MCTL = 0;
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
}
void Init_Timer_A(void)
{
CCTL0 = CCIE; // 使能CCR0 中断
TAR=0xFC18; // 计数装入初值
TACTL=TASSEL_2+MC_2+TAIE+ID_3;//设置时钟源和计数模式 采用SMCLK/8 =1Mhz
}
void SendSpi(uchar Data)
{
while (!(IFG2 & UCA0TXIFG));
UCA0TXBUF = Data;
}
void main(void)
{
WDTCTL=WDTPW + WDTHOLD; // 关闭看门狗
SPI_Init();
Init_Timer_A();
P1SEL=0; // 设置为普通I/O 口
P1DIR=0x3f; // 设置方向
P1OUT=0xFF; // 设置初始值
P4DIR=0x01;
P4SEL=0;
_BIS_SR(LPM0_bits+ GIE);//进入低功耗睡眠模式
while(1)
{
//_BIS_SR(LPM0_bits+ GIE);//进入低功耗睡眠模式
}
}
#pragma vector=TIMERA0_VECTOR //定时器A 中断服务程序
__interrupt void Timer_a(void)
{
static uchar i,timer;
static uint count;
switch(TAIV) //TAIV 表示中断向量号
{
case 2:break;
case 4:break;
case 10: //TAIV=10 表示中断计数器溢出中断
TAR=65536-1000; // (65536-1000)
if(++count==100)
{
count=0;
if(++timer==100)
timer=0;
}
SendSpi(~Num[i+(timer%10)*16]);
SendSpi(~Num[i+(timer/10)*16]);
E_SET;
LCK_CLR;
LCK_SET;
P1OUT=i;
E_CLR;
P4OUT^=0x01;
//delayms(1);
if(++i==16)
i=0;
}
//LPM0_EXIT;
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于MSP430F249的点阵仿真(源码+仿真)
共23个文件
jpg:4个
emf:3个
r43:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 8 浏览量
2024-04-26
12:17:09
上传
评论
收藏 576KB 7Z 举报
温馨提示
基于MSP430F249的点阵仿真(源码+仿真) 基于MSP430F249的点阵仿真(源码+仿真) 基于MSP430F249的点阵仿真(源码+仿真) 基于MSP430F249的点阵仿真(源码+仿真) 基于MSP430F249的点阵仿真(源码+仿真) 基于MSP430F249的点阵仿真(源码+仿真) 基于MSP430F249的点阵仿真(源码+仿真) 基于MSP430F249的点阵仿真(源码+仿真)
资源推荐
资源详情
资源评论
收起资源包目录
基于MSP430F249的点阵仿真(源码+仿真).7z (23个子文件)
基于MSP430F249的点阵仿真(源码+仿真)
dot1.emf 536KB
dot1.JPG 122KB
dot2.JPG 120KB
Dot.ewp 46KB
Dot.dep 2KB
Dot.DSN 215KB
Dot.eww 157B
Dot.PWI 2KB
dot3.JPG 140KB
dot3.emf 566KB
Last Loaded Dot.DBK 215KB
dot4.JPG 286KB
main.c 3KB
Debug
List
Obj
main.r43 15KB
Dot.pbd 122B
Exe
Dot.d90 13KB
Dot.hex 2KB
dot2.emf 544KB
Dot.pdsprj.DESKTOP-L4T3F68.xl.workspace 3KB
settings
Dot.dbgdt 63B
Dot.dni 179B
Dot.wsdt 3KB
Dot.cspy.bat 3KB
共 23 条
- 1
资源评论
森旺电子
- 粉丝: 7068
- 资源: 263
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功