316|0

3251

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

MC9S12X128 [复制链接]

代码:

  • /*---------------------------------------------------------*/
  • #include <hidef.h> /* common defines and macros */
  • #include "derivative.h" /* derivative-specific definitions */
  • #define uchar unsigned char
  • #define uint unsigned int
  • #define LED PORTB
  • #define LED_dir DDRB
  • #define DA_1 PORTB|=1
  • #define DA_0 PORTB&=~1
  • #define WR_1 PORTB|=4
  • #define WR_0 PORTB&=~4
  • #define CS_1 PORTB|=0X10
  • #define CS_0 PORTB&=~0X10
  • #define Smg_a 0x80
  • #define Smg_b 0x40
  • #define Smg_c 0x20
  • #define Smg_d 0x01
  • #define Smg_e 0x02
  • #define Smg_f 0x08
  • #define Smg_g 0x04
  • #define Smg_dp 0x10
  • #define Bmp0Map Smg_a | Smg_b | Smg_c | Smg_d | Smg_e | Smg_f
  • #define Bmp1Map Smg_b | Smg_c
  • #define Bmp2Map Smg_a | Smg_b | Smg_d | Smg_e | Smg_g
  • #define Bmp3Map Smg_a | Smg_b | Smg_c | Smg_d | Smg_g
  • #define Bmp4Map Smg_b | Smg_c | Smg_f | Smg_g
  • #define Bmp5Map Smg_a | Smg_c | Smg_d | Smg_f | Smg_g
  • #define Bmp6Map Smg_a | Smg_c | Smg_d | Smg_e | Smg_f | Smg_g
  • #define Bmp8Map Smg_a | Smg_b | Smg_c | Smg_d | Smg_e | Smg_f | Smg_g
  • #define Bmp9Map Smg_a | Smg_b | Smg_c | Smg_d | Smg_f | Smg_g
  • #define Bmp7Map Smg_a | Smg_b | Smg_c
  • #define BmpAMap Smg_a | Smg_b | Smg_c | Smg_e | Smg_f | Smg_g
  • #define BmpBMap Smg_c | Smg_d | Smg_e | Smg_f | Smg_g
  • #define BmpCMap Smg_a | Smg_d | Smg_e | Smg_f
  • #define BmpDMap Smg_b | Smg_c | Smg_d | Smg_e | Smg_g
  • #define BmpEMap Smg_a | Smg_d | Smg_e | Smg_f | Smg_g
  • #define BmpFMap Smg_a | Smg_e | Smg_f | Smg_g
  • const unsigned char SegCode[] = {Bmp0Map,Bmp1Map,Bmp2Map,Bmp3Map,Bmp4Map,Bmp5Map,Bmp6Map,Bmp7Map,Bmp8Map,Bmp9Map,BmpAMap,BmpBMap,BmpCMap,BmpDMap,BmpEMap,BmpFMap};
  • unsigned char DpyNum[6] = {Smg_g,Smg_g,Smg_g,Smg_g,Smg_g,Smg_g}; //显示缓冲区
  • volatile unsigned int i;
  • void delay(uint z)
  • {
  • uint i,j;
  • for(i=0;i<z;i++)
  • for(j=0;j<10;j++);
  • }
  • void COMMAND_HT1621(unsigned char comm)
  • {
  • //unsigned char i;
  • CS_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • for(i=0;i<3;i++) //写命令
  • {
  • if((0x04<<i)&0x04) DA_1; //100
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • for(i=0;i<9;i++) //写命令数据
  • {
  • if((comm<<i)&0x80) DA_1; //100
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • CS_1;
  • delay(5);
  • }
  • void HT1621_Display(void)
  • {
  • //unsigned char i;
  • CS_0; //片选CS
  • delay(5);
  • WR_0;
  • delay(5);
  • for(i=0;i<3;i++) //写命令
  • {
  • if((0x05<<i)&0x04) DA_1;
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • for(i=0;i<6;i++) //写地址
  • {
  • if((20<<i)&0x20) DA_1; //20对应 SEG地址
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • for(i=0;i<8;i++) //写数据
  • {
  • if((DpyNum[5]<<i)&0x80) DA_1;
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • for(i=0;i<8;i++) //写数据
  • {
  • if((DpyNum[4]<<i)&0x80) DA_1;
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • for(i=0;i<8;i++) //写数据
  • {
  • if((DpyNum[3]<<i)&0x80) DA_1;
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • for(i=0;i<8;i++) //写数据
  • {
  • if((DpyNum[2]<<i)&0x80) DA_1;
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • for(i=0;i<8;i++) //写数据
  • {
  • if((DpyNum[1]<<i)&0x80) DA_1;
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • for(i=0;i<8;i++) //写数据
  • {
  • if((DpyNum[0]<<i)&0x80) DA_1;
  • else DA_0;
  • delay(5);
  • WR_0;
  • delay(5);
  • WR_1;
  • delay(5);
  • }
  • CS_1; //释放CS
  • // delay(5);
  • }
  • void LCD_Init(void)
  • {
  • COMMAND_HT1621(0x01); //SYS EN
  • COMMAND_HT1621(0x03); //LCD ON
  • COMMAND_HT1621(0x29); //4 COM 1/3 BIAS
  • HT1621_Display(); //clear screen
  • }
  • /*************************************************************/
  • /* 延时函数 */
  • /*************************************************************/
  • void delay1(void)
  • {
  • unsigned int i,j;
  • for(j=0;j<2;j++)
  • for(i=0;i<60000;i++)
  • ;
  • }
  • /*************************************************************/
  • /* 主函数 */
  • /*************************************************************/
  • void main(void) {
  • DisableInterrupts;
  • LED_dir=0xff; //设置为输出
  • LED=0x00; //点亮8个灯
  • // EnableInterrupts;
  • LCD_Init();
  • DpyNum[0] = Smg_a|Smg_d|Smg_g; //"三"
  • DpyNum[1] = SegCode[2];
  • DpyNum[2] = SegCode[4];
  • DpyNum[3] = SegCode[6];
  • DpyNum[4] = SegCode[8];
  • DpyNum[5] = SegCode[0];
  • HT1621_Display();
  • for(;;)
  • {
  • }
  • }

效果图:

 

此帖出自NXP MCU论坛
点赞 关注
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【干货上新】电源解决方案和技术第二趴 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 11

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表