- 2025-03-05
-
回复了主题帖:
被辞退找工作说什么理由好
谢谢各位
- 2025-03-04
-
发表了主题帖:
被辞退找工作说什么理由好
我被辞退了。重新找工作,说离开原来的工作什么理由好呢?谢谢
- 2025-02-18
-
发表了主题帖:
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(;;)
{
}
}
效果图:
-
发表了主题帖:
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}; //显示缓冲区
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 delay(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(;;)
{
DA_1;
WR_1;
CS_1;
delay();
DA_0;
WR_0;
CS_0;
delay();
}
}
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);
}
最后一个大括号有错误,
请问高手,如何解决?谢谢
- 2025-02-15
-
发表了主题帖:
MC9S12XS128读取DS18B20的文题
代码:
#include "derivative.h" /* derivative-specific definitions */
#include "18B20.h"
extern void delay1us() ;
/*************************************************************/
/* 延时函数1 */
/*************************************************************/
void delay8us(unsigned int n)
{
unsigned int i;
for(i=0;i<n;i++)
{
TFLG1_C1F = 1; //清除标志位
TC1 = TCNT + 2; //设置输出比较时间为8us
while(TFLG1_C1F == 0); //等待,直到发生输出比较事件
}
}
/*************************************************************/
/* 初始化18B20 */
/*************************************************************/
void init18b20(void)
{
DSDDR=1;
DSO = 1;
delay8us(1);
DSO = 0; //拉低数据线,复位总线;
delay8us(63); //延时504us
DSO = 1; //提升数据线;
//delay8us(4); //延时32us;
delay8us(8); //延时32us;
DSDDR=0;
while(DSI) //等待从器件器件应答信号;
{asm("nop");}
DSDDR=1;
delay8us(30); //延时128us;
DSO = 1; //提升数据线,准备数据传输;
}
/*************************************************************/
/* 向18B20写入数据 */
/*************************************************************/
void WR18b20(byte cmd)
{
unsigned char k;
for(k=0;k<8;k++)
{
if(cmd & 0x01) //低位在前;
{
DSO = 0;
delay1us();
DSO = 1; //发送数据;
}
else
{
DSO = 0;
delay1us();
}
delay8us(8); //延时64us等待从器件采样;
DSO = 1; //拉高总线
delay8us(1);
cmd >>= 1;
}
}
/*************************************************************/
/* 由18B20读取数据 */
/*************************************************************/
unsigned char RD18b20(void)
{
unsigned char k;
unsigned char tmp=0;
DSO = 1;
delay8us(1); //准备读;
for(k=0;k<8;k++)
{
tmp >>= 1; //先读取低位
DSO = 0; //Read init;
delay1us();
DSO = 1; //必须写1,否则读出来的将是不预期的数据;
asm("nop");asm("nop");asm("nop"); //延时9us?
DSDDR=0;
asm("nop");
if(DSI) //在12us处读取数据;
tmp |= 0x80;
delay8us(8);
DSDDR=1;
DSO = 1;
delay8us(1);
//恢复One Wire Bus;
}
return tmp;
}
/*************************************************************/
/* 由18B20读取温度 */
/*************************************************************/
unsigned int read_T(void)
{
unsigned int t;
unsigned char temp[2];
init18b20();
WR18b20(0xcc);
WR18b20(0x44);
init18b20();
WR18b20(0xcc);
WR18b20(0xbe);
temp[0]=RD18b20();
temp[1]=RD18b20();
init18b20();
t=(temp[1]<<8)|temp[0];
return(t);
}
我用MC9S12XS128读取DS18B20,读书不稳定。
高手看看哪里有问题
谢谢
- 2025-02-12
-
回复了主题帖:
找工作的问题
lcofjp 发表于 2025-2-12 14:40
主要是年龄大了,受歧视
是的,况且我还没结婚
-
回复了主题帖:
找工作的问题
Nubility 发表于 2025-2-12 09:28
是啊,特别是纯硬件的人,越来越难找到工作,现在硬件都是方案化的了,硬件工程师只是相当于一个简单的实施 ...
我是搞软件的,一样不好找
- 2025-02-11
-
发表了主题帖:
找工作的问题
现在找工作越来越难,什么都要会,什么都要懂,真是没有活路了。
我找了好长时间也没找到
- 2025-01-28
-
回复了主题帖:
你们家允许放鞭炮了吗?
允许
- 2025-01-24
-
回复了主题帖:
画PCB出错好多
lkh747566933 发表于 2025-1-23 16:57
别着急慢慢改,好多错误其实都是一样的或者一个错误引起的,改一个就相当于改好多。
谢谢
- 2025-01-13
-
回复了主题帖:
起早了,5点就行了,6点半就到公司了
起的好早
- 2025-01-12
-
回复了主题帖:
2024年12月份,我健走128公里,俯卧撑637个。
身体真不错,我是不行了
- 2025-01-01
-
发表了主题帖:
树莓派的问题
这段程序貌似实现按下一个按键两秒钟自动关机
可是我运行程序,回到命令行。
我运行程序命令是sudo python3 gpio10.py,文件名是gpio10.py。
请高手指教,谢谢
-
回复了主题帖:
ML307A如何复位
搞不清楚
-
回复了主题帖:
cJSON能用在STM32工程里吗
谢谢
- 2024-12-30
-
回复了主题帖:
离职感言
最好在一个公司干的久点,才好找下家,否则会给公司一个不好的印象,觉得你干不长久。
-
发表了主题帖:
ML307A如何复位
我现在是这样做的:
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
HAL_Delay(1000);
编译,烧写。
然后在把这几行注释掉,编译烧写,指示灯就慢闪了,表示连上服务器了。
如果不这样就不行。
大神看看,怎么回事?如何解决?谢谢
-
回复了主题帖:
第一节游泳课
我生在农村,那时候河里的水还很请,我上小学时就学会游泳了
-
发表了主题帖:
cJSON能用在STM32工程里吗
请问高手,cJSON能用在STM32工程里吗?
怎么使用?最好举个例子,谢谢
-
回复了主题帖:
一年又到尾声了
我刚换了工作,应该没有年终奖