收藏 分销(赏)

飞思卡尔8位单片机MC9S0813程序接口编程实例.doc

上传人:pc****0 文档编号:7815821 上传时间:2025-01-19 格式:DOC 页数:3 大小:39KB 下载积分:10 金币
下载 相关 举报
飞思卡尔8位单片机MC9S0813程序接口编程实例.doc_第1页
第1页 / 共3页
飞思卡尔8位单片机MC9S0813程序接口编程实例.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
(1) LED编程汇编语言例 实例编号:A08 路径:\ASM\A08_数码管LED (LEDMain.asm) *------------------------------------------------------* *文 件 名:LEDMain.asm * *硬件连接:PTA 7-0 分别接LED的数据线 h g f e d c b a * * PTB 3-0 分别接各LED的位选线(自左到右) * *程序描述:在4连排数码管上从左至右显示3568 * *目的:实现数码管的显示 * *说明:SD-HC08实验仪器未提供LED的固定接线,也未提供LED,可 * * 自行购买,在IC扩展区接线,同时注意LCD及键盘的可能影响 * *-------《嵌入式应用技术基础教程》教学实例-------------* *[头文件] $include "GP32ASM.H" ;包含GP32的头文件 *[两个起始地址名] RAMstartAddr equ $0040 ;RAM的起始地址 FlashStartAddr equ $8000 ;程序开始地址 *[LED相关信号口] LEDdata equ PTA ;LED数据线接口 LEDdata_D equ DDRA ;数据线相应方向寄存器 LEDcs equ PTB ;位选线接口 LEDcs_D equ DDRB ;位选线相应方向寄存器 *[内存变量] org RAMstartAddr ;RAM的起始地址 CS rmb 1 ;位选信号 LEDbuf rmb 4 ;LED显示缓冲区 I1 rmb 1 ;临时变量 I2 rmb 1 ;临时变量 *====================================================== *[主程序] org FlashStartAddr ;程序起始地址 start: ;复位后程序从此开始执行 ;[堆栈初始化] SEI LDHX #$023F TXS JSR GP32Init ;调系统初始化子程序GP32Init ;[LED口初始化] LDA #%11111111 STA LEDdata_D ;数据口为输出到LED STA LEDcs_D ;位选口为输出到LED MainLoop: ;LEDbuf[0-3]中放入要显示的数字 MOV #!3,LEDbuf MOV #!5,{LEDbuf+1} MOV #!6,{LEDbuf+2} MOV #!8,{LEDbuf+3} ;在4位共阴极LED上显示LEDbuf中的4个数据(只允许0-9) MOV #%11110111,I1 ;初始位选信号(共阴极情况) MOV #!4,I2 ;显示个数 LDHX #LEDBuf LEDShow: PSHH ;保护数据地址 PSHX LDX ,X ;数据 LDA I1 ;位选信号 JSR LEDshow1 ;显示一个数据 LDA I1 ;变动位选信号 SEC RORA STA I1 ;延时 LDHX #!10 JSR Delay_ms PULX ;恢复数据地址 PULH AIX #!1 ;指向下一个数据 DBNZ I2,LEDShow JMP MainLoop *LEDshow1:在1个LED上显示数字---------------------------* *功 能:在第A个LED上显示数字X(本处转码) * *入 口:A(LED信号,决定位选) X(要显示的数字) * *出 口:无 * *------------------------------------------------------* LEDshow1: PSHH ;保护HX CLRH STA LEDcs ;送位选信号 LDA Table,X ;取显示码 STA LEDdata ;送到LED数据线 PULH ;恢复H RTS *[显示码表] 0 1 2 3 4 5 6 7 8 9 Table: FCB $3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F *[外部子程序存放处,这些子程序都在当前目录中] $INCLUDE "GP32init.asm" $INCLUDE "Delay.asm" *[中断向量] ORG $FFFE DW start ;复位向量 (2) LED编程C语言例 实例编号:C08 路径:\C\C08_数码管LED (LEDTest.prj) /*-----------------------------------------------------* *工 程 名:LEDTest.prj * *硬件连接:PTA 7-0 分别接LED的数据线 h g f e d c b a * * PTB 3-0 分别接各LED的位选线(自左到右) * *程序描述:在4连排数码管上从左至右显示1234 * *目的:实现数码管的显示 * *说明:SD-HC08实验仪器未提供LED的固定接线,也未提供LED,可* * 自行购买,在IC扩展区接线,同时注意LCD及键盘的可能影响* *-------《嵌入式应用技术基础教程》教学实例------------*/ /*[头文件]*/ #include "GP32C.h" //MCU头文件 //LED相关接线 #define LEDdata PTA //LED数据线接口 #define LEDdata_D DDRA //数据线相应方向寄存器 #define LEDcs PTB //位选线接口 #define LEDcs_D DDRB //位选线相应方向寄存器 //[内部变量定义] unsigned char LEDbuf[4],CS; //LED显示缓冲区及位选信号 void LEDshow1(unsigned char cs,unsigned char num); /*[主程序]*/ void main() { unsigned char i; unsigned int j; LEDdata_D=0xFF; //数据口为输出 LEDcs_D=0xFF; //位选口为输出 //LEDbuf[0-3]中放入要显示的数字 LEDbuf[0]=3; LEDbuf[1]=5; LEDbuf[2]=6; LEDbuf[3]=8; //在4位共阴极LED上显示LEDbuf中的4个数据(只允许0-9) CS=0b11110111; //初始位选信号(共阴极情况) while(1) { for(i=0;i<=3;i++) { LEDshow1(CS,LEDbuf[i]); //显示一个数据 CS=CS>>1; //变动位选信号 for(j=0;j<5;j++); //延时 } } } //显示码表 const unsigned char Table[10]={0x3F,0x06,0x5B,0x4F,0x66,\ 0x6D,0x7D,0x07,0x7F,0x6F}; /*LEDshow1:在1个LED上显示数字-------------------------* *功 能:在第cs个LED上显示数字num(本处转码) * *参 数:cs(LED信号,决定位选) num(要显示的数字) * *返 回:无 * *----------------------------------------------------*/ void LEDshow1(unsigned char cs,unsigned char num) { LEDcs=cs; //送位选信号 LEDdata=Table[num]; //取显示码并送到LED数据线 }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服